字典特征提取器DictVectorizer

字典特征提取器DictVectorizer
DictVectorizer的作用:

  • 利用0 1矩阵将字典数据结构向量化
#定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)
measurements = [{'city':'Beijing','temperature':33.},{'city':'London','temperature':12.},{'city':'San Fransisco','temperature':18.}]
'''
     city        temperature
     Beijing        12
     London         33
     SanFransisco   18
'''
#从sklearn.feature_extraction导入DictVectorizer
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer()
#输出转化后的特征矩阵
print(vec.fit_transform(measurements).toarray())
#输出各个维度的特征含义
print(vec.get_feature_names())

运行结果:

[[ 1.  0.  0. 33.]
 [ 0.  1.  0. 12.]
 [ 0.  0.  1. 18.]]
['city=Beijing', 'city=London', 'city=San Fransisco', 'temperature']

可以看出来,DictVectorizer做的处理就是利用类似于独热编码的方式为每个特征j进行向量化

  • 为了使结果更加明显,我们在原有字典中再添加国家特征,country
#定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)
measurements = [{'city':'Beijing','country':'CN','temperature':33.},{'city':'London','country':'UK','temperature':12.},{'city':'San Fransisco','country':'USA','temperature':18.}]
#从sklearn.feature_extraction导入DictVectorizer
from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer()
#输出转化后的特征矩阵
print(vec.fit_transform(measurements).toarray())
#输出各个维度的特征含义
print(vec.get_feature_names())

运行结果:

[[ 1.  0.  0.  1.  0.  0. 33.]
 [ 0.  1.  0.  0.  1.  0. 12.]
 [ 0.  0.  1.  0.  0.  1. 18.]]
['city=Beijing', 'city=London', 'city=San Fransisco', 'country=CN', 'country=UK', 'country=USA', 'temperature']

运行结果一目了然,对于矩阵的第一行,由于有三个城市和三个国家则共需要6个二值(0 1),前[1 0 0]代表北京,后面[1 0 0]表示的则是中国,最后就是剩下的都存在的共同特征温度的值了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值