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_params
將transformer
與X
和y
匹配,并返回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) 特征矩陣,用于估計器或進一步的轉換。 |