dask_ml.feature_extraction.text.FeatureHasher

dask_ml.feature_extraction.text.FeatureHasher

class dask_ml.feature_extraction.text.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[源代码]

实现了特征哈希,即哈希技巧。

此类将符号特征名称(字符串)序列转换为 scipy.sparse 矩阵,使用哈希函数计算与名称对应的矩阵列。所使用的哈希函数是 Murmurhash3 的带符号 32 位版本。

类型为字节串的特征名称按原样使用。Unicode 字符串首先转换为 UTF-8,但不进行 Unicode 规范化。特征值必须是(有限的)数字。

此类是 DictVectorizer 和 CountVectorizer 的低内存替代方案,适用于大规模(在线)学习和内存紧张的情况,例如在嵌入式设备上运行预测代码时。

关于不同特征提取器的效率比较,请参见 FeatureHasher and DictVectorizer Comparison

更多信息请参阅 用户指南

0.13 新版功能.

参数
n_featuresint, 默认值=2**20

输出矩阵中的特征(列)数量。较少的特征数量可能会导致哈希冲突,但较多的特征数量会导致线性学习器中的系数维度更大。

输入类型str, 默认=’dict’

从 {‘dict’, ‘pair’, ‘string’} 中选择一个字符串。选择 “dict”(默认)以接受字典形式的 (feature_name, value);选择 “pair” 以接受 (feature_name, value) 对;或选择 “string” 以接受单个字符串。feature_name 应为字符串,而 value 应为数字。在 “string” 的情况下,隐含 value 为 1。feature_name 被哈希以找到特征的适当列。value 的符号在输出中可能会被翻转(但请参见下面的 non_negative)。

dtypenumpy 数据类型, 默认=np.float64

特征值的类型。传递给 scipy.sparse 矩阵构造函数作为 dtype 参数。不要将此设置为 bool、np.boolean 或任何无符号整数类型。

alternate_signbool, 默认=True

当为 True 时,特征会添加交替符号,以在哈希空间中近似保留内积,即使对于小的 n_features 也是如此。这种方法类似于稀疏随机投影。

在 0.19 版更改: alternate_sign 取代了现已弃用的 non_negative 参数。

参见

DictVectorizer

使用哈希表向量化字符串值特征。

sklearn.preprocessing.OneHotEncoder

处理名义/分类特征。

注释

这个估计器是 无状态的 ,不需要被拟合。然而,我们建议调用 fit_transform() 而不是 transform() ,因为参数验证只在 fit() 中执行。

示例

>>> 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.]])

使用 input_type=”string”,输入必须是一个字符串的可迭代对象:

>>> h = FeatureHasher(n_features=8, input_type="string")
>>> raw_X = [["dog", "cat", "snake"], ["snake", "dog"], ["cat", "bird"]]
>>> f = h.transform(raw_X)
>>> f.toarray()
array([[ 0.,  0.,  0., -1.,  0., -1.,  0.,  1.],
       [ 0.,  0.,  0., -1.,  0., -1.,  0.,  0.],
       [ 0., -1.,  0.,  0.,  0.,  0.,  0.,  1.]])

方法

fit([X, y])

仅验证估计器的参数。

fit_transform(X[, y])

拟合数据,然后进行转换。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

set_transform_request(*[, raw_X])

传递给 transform 方法的请求元数据。

变换

__init__(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[源代码]