sklearn.feature_extraction.FeatureHasher?

class sklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)

[[源碼]]

實現特性哈希,又名哈希技巧。

這個類將一系列符號特性名稱(字符串)轉換為scipy。稀疏矩陣,使用哈希函數來計算與名稱對應的矩陣列。使用的哈希函數是Murmurhash3的有符號32位版本。

字節字符串類型的特性名按原樣使用。首先將Unicode字符串轉換為UTF-8,但不進行Unicode規范化。特征值必須是(有限的)數字。

這個類是對DictVectorizer和CountVectorizer的低內存替代,用于大規模(在線)學習和內存緊張的情況,例如在嵌入式設備上運行預測代碼。

用戶指南中閱讀更多內容。

新版本 0.13 。

參數 說明
n_features int, default=2**20
輸出矩陣中的特征數(列)。在線性學習中,特征數小容易引起哈希沖突,而特征數大則系數維數大。
input_type {“dict”, “pair”}, default=”dict”
“dict”(默認值)接受字典(feature_name, value);“pair”接受對(feature_name, value);或“字符串”來接受單個字符串。feature_name應該是字符串,而value應該是數字。對于“string”,默認值為1。將對feature_name進行散列,以找到適合該特性的列。值的符號可能會在輸出中反轉(但是請參閱下面的non_negative)。
dtype numpy dtype, default=np.float64
特性值的類型。傳遞給scipy。稀疏矩陣構造函數作為dtype參數。不要將此設置為bool, np。布爾或任何無符號整數類型。
alternate_sign bool, default=True
當為真時,將向特性添加一個交替符號,以便即使對于較小的n_features,也能在散列空間中大約保留內積。這種方法類似于稀疏隨機投影。
versionchanged:0.19
alternate_sign替換現在不贊成使用的non_negative參數。

另見: DictVectorizer 使用哈希表向量化字符串值特征。

sklearn.preprocessing.OneHotEncoder 處理名義/分類特性。

示例

>>> from sklearn.feature_extraction import FeatureHasher
>>> h = FeatureHasher(n_features=10)
>>> D = [{'dog'1'cat':2'elephant':4},{'dog'2'run'5}]
>>> f = h.transform(D)
>>> f.toarray()
array([[ 0.,  0.-4.-1.,  0.,  0.,  0.,  0.,  0.,  2.],
       [ 0.,  0.,  0.-2.-5.,  0.,  0.,  0.,  0.,  0.]])

方法

方法 說明
fit(self[, X, y]) 無操作。
fit_transform(self, X[, y]) 擬合數據,然后轉換它。
get_params(self[, deep]) 獲取這個估計器的參數。
set_params(self, **params) 設置的參數估計量。
transform(self, raw_X) 將一系列實例轉換為一個scipy。稀疏矩陣。
__init__(self, n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)

[[源碼]]

初始化self. 請參閱help(type(self))以獲得準確的說明。

fit(self, X, y=None)

[[源碼]]

無操作。

這個方法不做任何事情。它的存在純粹是為了與scikit-learn transformer API的兼容性。

參數 說明
X ndarray
返回值 說明
self FeatureHasher
fit_transform(self, X, y=None, **fit_params)

[源碼]

擬合數據,然后轉換它。

使用可選參數fit_paramstransformerXy匹配,并返回X的轉換版本。

參數 說明
X {array-like, sparse matrix, dataframe} of shape (n_samples, n_features)
y ndarray of shape (n_samples,), default=None
目標的價值。
**fit_params dict
其他合適的參數。
返回值 說明
X_new ndarray array of shape (n_samples, n_features_new)
改變數組。
get_feature_names(self)

[源碼]

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

如果對分類特征應用k - one編碼,這將包括構造的特征名稱,而不是原始的特征名稱。

get_params(self, deep=True)

[源碼]

獲取這個估計器的參數。

參數 說明
deep bool, default=True
如果為真,將返回此估計器的參數以及包含的作為估計器的子對象。
返回值 說明
params mapping of string to any
參數名稱映射到它們的值。
set_params(self, **params)

[源碼]

設置這個估計器的參數。

該方法適用于簡單估計量和嵌套對象。后者具有形式為<component>_<parameter>的參數,這樣就讓更新嵌套對象的每個樣本成為了可能。

參數 說明
**params dict
估計器參數。
返回值 說明
self object
估計器實例。
transform(self, X)

[源碼]

將一系列實例轉換為一個scipy。稀疏矩陣。

參數 說明
raw_X iterable over iterable over raw features, length = n_samples
樣本。每個示例必須是可迭代的(例如,列表或元組),包含/生成將被散列的特性名稱(以及可選的值,請參閱input_type構造函數參數)。raw_X不需要支持len函數,所以它可以是生成器的結果;n_samples是動態確定的。
返回值 說明
X sparse matrix of shape (n_samples, n_features)
特征矩陣,用于估計器或進一步的轉換。

示例sklearn.feature_extraction.FeatureHasher?