DictVectorizer使用场景

  • 字典特征提取器:
    1. 将字典数据结构抽取和向量化
    2. 类别类型特征借助原型特征名称采用0 1 二值方式进行向量化
    3. 数值类型特征保持不变
  • 在一些模型数据整理前使用
1
2
3
4
5
6
7
8
9
10
11
12
from sklearn.feature_extraction import DictVectorizer

# 定义一个字典列表 用来表示多个数据样本
measurements = [
{"city": "Dubai", "temperature": 33.0},
{"city": "London", "temperature": 12.0},
{"city": "San Fransisco", "temperature": 18.0},
]

import pandas as pd
df = pd.DataFrame(measurements)
df

image.png

1
2
3
4
5
6
7
# 初始化字典特征抽取器
vec = DictVectorizer()

# data = vec.fit_transform(df.to_dict(orient='records'))
data = vec.fit_transform(df.to_dict(orient='records')).toarray()
# 查看提取后的特征值
print(data)
1
2
3
[[ 1.  0.  0. 33.]
[ 0. 1. 0. 12.]
[ 0. 0. 1. 18.]]
1
2
3
# 查看提取后特征的含义
print(vec.get_feature_names())
# print(vec.feature_names_)
1
['city=Dubai', 'city=London', 'city=San Fransisco', 'temperature']