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