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}
特征向量;總是二維。

示例sklearn.feature_extraction.DictVectorizer?