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=True, sort=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
必须是由这个DictVectorizer
的transform
或fit_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, [0, 1])
>>> 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} 特征向量;总是二维。 |