FeatureHasher#

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

实现具有哈希功能,又名哈希技巧。

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

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

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

有关不同特征提取器的效率比较,请参阅 收件箱Hasher和DictVectorizer比较 .

阅读更多的 User Guide .

Added in version 0.13.

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

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

input_typestring,default='dict'

从“dict”、“pair”、“string”中选择一个字符串。“dict”(默认值)接受字典(feature_Name,Value);“pair”接受字典对(feature_Name,Value);或“字符串”接受单个字符串。feature_list应该是一个字符串,值应该是一个数字。在“字符串”的情况下,隐含值1。对feature_list进行哈希处理,以查找该功能的适当列。该值的符号可能会在输出中翻转(但请参阅下面的non_negative)。

dtypenumpy dype,默认=np.float64

特征值的类型。作为d类型参数传递给scipy.sparse矩阵构造器。不要将其设置为bool、np. bo布尔或任何无符号integer类型。

alternate_sign布尔,默认=True

当为True时,将交替符号添加到特征中,以便即使对于小n_特征也大致保留哈希空间中的内能积。这种方法类似于稀疏随机投影。

在 0.19 版本发生变更: alternate_sign 取代现已废弃的 non_negative 参数.

参见

DictVectorizer

使用哈希表对字符串值特征进行载体化。

sklearn.preprocessing.OneHotEncoder

处理名义/分类特征。

注意到

这个估计器是 stateless 并且不需要安装。不过,我们建议致电 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=None, y=None)[源代码]#

仅验证估计器的参数。

该方法允许:(i)验证估计器的参数以及(ii)与scikit-learn Transformer API一致。

参数:
X忽视

未使用,此处列出是为了按照惯例实现API一致性。

y忽视

未使用,此处列出是为了按照惯例实现API一致性。

返回:
self对象

SEARCH哈希器类实例。

fit_transform(X, y=None, **fit_params)[源代码]#

适应数据,然后对其进行转换。

适合变压器 Xy 具有可选参数 fit_params 并返回的转换版本 X .

参数:
X形状类似阵列(n_samples,n_features)

输入样本。

y形状为(n_samples,)或(n_samples,n_outputs)的阵列状, 默认值=无

目标值(无监督转换)。

**fit_paramsdict

其他适合参数。

返回:
X_newndray形状数组(n_samples,n_features_new)

变形的数组。

get_metadata_routing()[源代码]#

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

请检查 User Guide 关于路由机制如何工作。

返回:
routingMetadataRequest

A MetadataRequest 封装路由信息。

get_params(deep=True)[源代码]#

获取此估计器的参数。

参数:
deep布尔,默认=True

如果为True,将返回此估计量和包含的作为估计量的子对象的参数。

返回:
paramsdict

参数名称映射到其值。

set_output(*, transform=None)[源代码]#

设置输出容器。

看到 介绍 set_output API 了解如何使用API的示例。

参数:
transform{“默认”,“pandas”,“polars”},默认=无

配置输出 transformfit_transform .

  • "default" :Transformer的默认输出格式

  • "pandas" :DataFrame输出

  • "polars" :两极输出

  • None :转换配置不变

Added in version 1.4: "polars" 添加了选项。

返回:
self估计器实例

估计实例。

set_params(**params)[源代码]#

设置此估计器的参数。

该方法适用于简单估计器以及嵌套对象(例如 Pipeline ).后者具有以下形式的参数 <component>__<parameter> 以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计参数。

返回:
self估计器实例

估计实例。

transform(raw_X)[源代码]#

将实例序列转换为scipy.sparse矩阵。

参数:
raw_X对原始特征可迭代,长度= n_samples

样品每个样本必须可迭代(例如,列表或多元组)包含/生成将被哈希处理的特征名称(以及可选的值,请参阅select_style构造函数参数)。raw_X不需要支持len函数,因此它可以是生成器的结果; n_samples是动态确定的。

返回:
X形状稀疏矩阵(n_samples,n_features)

特征矩阵,用于估计器或其他变换器。