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) 特征矩阵,用于估计器或进一步的转换。 |