关于python:在scikit-learn中了解DictVectorizer?

Understanding DictVectorizer in scikit-learn?

我正在探索scikit-learn提供的不同特征提取类。 在阅读文档时,我不太了解DictVectorizer可以做什么? 其他问题浮现在脑海。 例如,DictVectorizer如何用于文本分类?即该类如何帮助处理带标签的文本数据? 除了我已经在文档网页上阅读的示例之外,有人可以提供一个简短的示例吗?


说您的特征空间是长度,宽度和高度,并且您有3个观察值; 即您测量3个对象的长度,宽度和高度:

1
2
3
4
       length  width  height
obs.1       1      0       2
obs.2       0      1       1
obs.3       3      2       1

另一种显示方式是使用词典列表:

1
2
3
[{'height': 1, 'length': 0, 'width': 1},   # obs.2
 {'height': 2, 'length': 1, 'width': 0},   # obs.1
 {'height': 1, 'length': 3, 'width': 2}]   # obs.3

DictVectorizer相反。 即给定词典列表可构建顶部框架:

1
2
3
4
5
6
7
8
9
10
>>> from sklearn.feature_extraction import DictVectorizer
>>> v = DictVectorizer(sparse=False)
>>> d = [{'height': 1, 'length': 0, 'width': 1},
...      {'height': 2, 'length': 1, 'width': 0},
...      {'height': 1, 'length': 3, 'width': 2}]
>>> v.fit_transform(d)
array([[ 1.,  0.,  1.],   # obs.2
       [ 2.,  1.,  0.],   # obs.1
       [ 1.,  3.,  2.]])  # obs.3
   # height, len., width