當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。