sklearn.feature_extraction 中 DictVectorizer类的使用

from sklearn.feature_extraction import DictVectorizer

DictVectorizer: 字典向量化
举例一,键值全部为数字的字典:

v = DictVectorizer(sparse=False)
D = [{'foo': 1, 'bar': 2}, {'foo': 3, 'baz': 1}]

sparse:布尔值,可选。
变换是否应该产生scipy.sparse矩阵,默认为True。

X = v.fit_transform(D)

输出结果为:

array([[2., 0., 1.],
       [0., 1., 3.]])
v.get_feature_names()

输出结果为:

['bar', 'baz', 'foo']

结合上述所示,字典向量化后表示的含义为:

‘bar’ ‘baz’ ‘foo’
2 0 1
0 1 3

举例二:
对于键值非数值的字典,进行向量化:

v = DictVectorizer(sparse=False)
D = [{'city': 'Dubai', 'temperature': 33.},  
     {'city': 'London', 'temperature': 12.},  
     {'city': 'San Fransisco', 'temperature': 18.}]

sparse:布尔值,可选。
变换是否应该产生scipy.sparse矩阵,默认为True。

X = v.fit_transform(D)

输出结果为:

array([[ 1.,  0.,  0., 33.],
       [ 0.,  1.,  0., 12.],
       [ 0.,  0.,  1., 18.]])
v.get_feature_names()

输出结果为:

['city=Dubai', 'city=London', 'city=San Fransisco', 'temperature']

结合上述所示,字典向量化后表示的含义为:

‘city=Dubai’ ‘city=London’ ‘city=San Fransisco’ ‘temperature’
1 0 0 33
0 1 0 12
0 0 1 18

对于键值为非数值的字典,需要对其进行编码操作。

你可能感兴趣的:(机器学习,python,sklearn)