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