sklearn.feature_extraction.DictVectorizer

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

[源码]

将特征值映射列表转换为向量。

这个转换器将特性名称到特性值的映射列表(类似于dict的对象)转换为Numpy数组或scipy。稀疏矩阵用于scikit-learn估计量。

当特征值是字符串时,这个转换器将执行二进制单热(即one-of- k)编码:为该特征可能获得的每个字符串值构造一个布尔值特征。例如,具有“ham”和“spam”值的特性“f”将成为输出中的两个特性,一个表示“f=ham”,另一个表示“f=spam”。

但是,请注意,当特性值的类型为string时,这个转换器将只执行二进制单热编码。如果分类特征表示为数值,比如int,那么可以在DictVectorizer后面跟着 sklearn.preprocessing.OneHotEncoder 完成二进制独热编码。

没有出现在示例(映射)中的特性将在结果数组/矩阵中具有零值。

用户指南中阅读更多内容。

参数 说明
dtype dtype, default=np.float64
特性值的类型。传递给Numpy array/scipy。稀疏矩阵构造函数作为dtype参数。
separator str, default=”=”
Separator string used when constructing new features for one-hot coding.
sparse bool, default=True
变换是否应产生scipy。稀疏矩阵。
sort bool, default=True
在拟合时是否对feature_names_和vocabulary_进行排序。
属性 说明
vocabulary_ dict
将功能名称映射到功能索引的字典。
feature_names_ list
包含特征名称的长度n_features列表(例如,“f=ham”和“f=spam”)。

另见: FeatureHasher 仅使用散列函数执行向量化。

sklearn.preprocessing.OrdinalEncoder 处理被编码为任意数据类型列的名义/分类特性。

示例

>>> 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.]])

方法

方法 说明
fit(self, X[, y]) 学习功能名称->索引映射列表。
fit_transform(self, X[, y]) 学习一组特性名称->索引映射和转换X。
get_feature_names(self) 返回特征名称列表,按其索引排序。
get_params(self[, deep]) 获取这个估计器的参数。
inverse_transform(self, X[, dict_type]) 将数组或稀疏矩阵X转换回特征映射。
restrict(self, support[, indices]) 将特性限制为那些支持使用特性选择的特性。
set_params(self, **params) 设置的参数估计量。
transform(self, X) 转换特征->值dicts到数组或稀疏矩阵。
__init__(self, *, dtype=<class 'numpy.float64'>, separator='=', sparse=Truesort=True)[source]

[源码]

初始化self. See 请参阅help(type(self))以获得准确的说明。

fit(self, X, y=None)

[源码]

学习功能名称->索引映射列表。

参数 说明
X Mapping or iterable over Mappings
从特性名称(任意Python对象)到特性值(字符串或可转换为dtype)的Dict或映射。
y (ignored)
返回值 说明
self -
fit_transform(self, X, y=None)

[源码]

学习一组特性名称->索引映射和转换X。

比如fit(X)和transform(X),但不需要在内存中具体化X。

参数 说明
X Mapping or iterable over Mappings
从特性名称(任意Python对象)到特性值(字符串或可转换为dtype)的Dict或映射。
y (ignored)
返回值 说明
Xa {array, sparse matrix}
特征向量;总是二维。
get_feature_names(self)[source]

[源码]

返回按索引排序的特征名称列表。

如果对分类特征应用k - one编码,这将包括构造的特征名称,而不是原始的特征名称。

get_params(self, deep=True)

[源码]

获取这个估计器的参数。

参数 说明
deep bool, default=True
如果为真,将返回此估计器的参数以及包含的作为估计器的子对象。
返回值 说明
params mapping of string to any
参数名称映射到它们的值。
inverse_transform(self, X, dict_type=<class 'dict'>)

[源码]

将数组或稀疏矩阵X转换回特征映射。

X必须是由这个DictVectorizertransformfit_transform方法产生的;它可能只通过了那些保留了特性数量和顺序的变形金刚。

在一个热点一个k编码的情况下,返回构造的特征名称和值,而不是原始的。

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
样本矩阵。
dict_type type, default=dict
特性映射的构造函数。必须符合集合。绘图API。
返回值 说明
D list of dict_type objects of shape (n_samples,)
参X中样本的特征映射。
restrict(self, support, indices=False)

[[源码]]

将特性限制为那些支持使用特性选择的特性。

这个函数在适当的位置修改估计器。

参数 说明
support array-like
布尔掩码或索引列表(由特性选择器的get_support成员返回)。
indices bool, default=False
支持是否是索引列表。
返回值
self

示例

>>> from sklearn.feature_extraction import DictVectorizer
>>> from sklearn.feature_selection import SelectKBest, chi2
>>> v = DictVectorizer()
>>> D = [{'foo'1'bar'2}, {'foo'3'baz'1}]
>>> X = v.fit_transform(D)
>>> support = SelectKBest(chi2, k=2).fit(X, [01])
>>> v.get_feature_names()
['bar''baz''foo']
>>> v.restrict(support.get_support())
DictVectorizer()
>>> v.get_feature_names()
['bar''foo']
set_params(self, **params)

[源码]

设置这个估计器的参数。

该方法适用于简单估计量和嵌套对象。后者具有形式为<component>_<parameter>的参数,这样就让更新嵌套对象的每个样本成为了可能。

参数 说明
**params dict
估计器参数。
返回值 说明
self object
估计器实例。
transform(self, X)

[源码]

转换特征->值dicts到数组或稀疏矩阵。

在fit或fit_transform期间未遇到的命名特性将被静默地忽略。

参数 说明
X Mapping or iterable over Mappings of shape (n_samples,)
从特性名称(任意Python对象)到特性值(字符串或可转换为dtype)的Dict或映射。
返回值 说明
Xa {array, sparse matrix}
特征向量;总是二维。