当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn FeatureHasher用法及代码示例


本文简要介绍python语言中 sklearn.feature_extraction.FeatureHasher 的用法。

用法:

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

实现特征散列,也就是散列技巧。

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

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

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

在用户指南中阅读更多信息。

参数

n_features整数,默认=2**20

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

input_typestr,默认='dict'

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

dtypenumpy dtype,默认=np.float64

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

alternate_sign布尔,默认=真

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

例子

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

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.feature_extraction.FeatureHasher。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。