当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn DictVectorizer用法及代码示例


本文简要介绍python语言中 sklearn.feature_extraction.DictVectorizer 的用法。

用法:

class sklearn.feature_extraction.DictVectorizer(*, dtype=<class 'numpy.float64'>, separator='=', sparse=True, sort=True)

将feature-value 映射列表转换为向量。

该转换器将特征名称到特征值的映射列表(类似字典的对象)转换为 Numpy 数组或 scipy.sparse 矩阵,以便与 scikit-learn 估计器一起使用。

当特征值是字符串时,此转换器将执行二进制 one-hot(又名 one-of-K)编码:为该特征可以采用的每个可能的字符串值构造一个布尔值特征。例如,可以采用值 “ham” 和 “spam” 的特征 “f” 将成为输出中的两个特征,一个表示 “f=ham”,另一个表示 “f=spam”。

如果特征值是一个序列或一组字符串,则此转换器将遍历这些值并计算每个字符串值的出现次数。

但是,请注意,当特征值的类型为字符串时,此转换器只会执行二进制 one-hot 编码。如果分类特征表示为数值,例如int或字符串的可迭代,则DictVectorizer后面可以跟上 OneHotEncoder 来完成二进制one-hot编码。

样本中未出现的特征(映射)将在结果数组/矩阵中具有零值。

在用户指南中阅读更多信息。

参数

dtypedtype,默认=np.float64

特征值的类型。作为 dtype 参数传递给 Numpy array/scipy.sparse 矩阵构造函数。

separator字符串,默认=”=”

为one-hot 编码构建新函数时使用的分隔符字符串。

sparse布尔,默认=真

变换是否应生成scipy.sparse 矩阵。

sort布尔,默认=真

feature_names_vocabulary_在拟合时是否要排序。

属性

vocabulary_dict

将特征名称映射到特征索引的字典。

feature_names_列表

包含特征名称的长度为 n_features 的列表(例如,“f=ham” 和 “f=spam”)。

例子

>>> from sklearn.feature_extraction import DictVectorizer
>>> v = DictVectorizer(sparse=False)
>>> D = [{'foo': 1, 'bar': 2}, {'foo': 3, 'baz': 1}]
>>> X = v.fit_transform(D)
>>> X
array([[2., 0., 1.],
       [0., 1., 3.]])
>>> v.inverse_transform(X) == [{'bar': 2.0, 'foo': 1.0},
...                            {'baz': 1.0, 'foo': 3.0}]
True
>>> v.transform({'foo': 4, 'unseen_feature': 3})
array([[0., 0., 4.]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.feature_extraction.DictVectorizer。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。