特征哈希器#
- class sklearn.feature_extraction.FeatureHasher(n_features=1048576, *, input_type='dict', dtype=<class 'numpy.float64'>, alternate_sign=True)[source]#
- 实现特征哈希,也称为哈希技巧。 - 此类使用哈希函数计算对应于名称的矩阵列,将符号特征名称(字符串)序列转换为 scipy.sparse 矩阵。使用的哈希函数是 Murmurhash3 的 32 位带符号版本。 - 字节字符串类型的特征名称按原样使用。Unicode 字符串首先转换为 UTF-8,但不进行 Unicode 规范化。特征值必须是(有限)数字。 - 此类是 DictVectorizer 和 CountVectorizer 的低内存替代方案,适用于大规模(在线)学习和内存紧张的情况,例如在嵌入式设备上运行预测代码时。 - 有关不同特征提取器的效率比较,请参见 特征哈希器和字典向量化器比较。 - 在 用户指南 中了解更多信息。 - 在 0.13 版本中添加。 - 参数:
- n_featuresint, default=2**20
- 输出矩阵中特征(列)的数量。少量特征可能会导致哈希冲突,但大量的特征会导致线性学习器中系数维数更大。 
- input_typestr, default=’dict’
- 从 {‘dict’, ‘pair’, ‘string’} 中选择一个字符串。 “dict”(默认值)接受 (特征名称,值) 上的字典;“pair”接受 (特征名称,值) 对;或 “string” 接受单个字符串。特征名称应为字符串,而值应为数字。“string”情况下,隐含值为 1。特征名称被哈希以查找特征的相应列。值在输出中可能会反转符号(但请参见下面的 non_negative)。 
- dtypenumpy数据类型,默认值=np.float64
- 特征值的类型。作为dtype参数传递给scipy.sparse矩阵构造函数。请勿将其设置为bool、np.boolean或任何无符号整数类型。 
- alternate_sign布尔值,默认值=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=None, y=None)[source]#
- 仅验证估计器的参数。 - 此方法允许:(i)验证估计器的参数;(ii)与scikit-learn转换器API保持一致。 - 参数:
- X忽略
- 未使用,出于约定,此处用于API一致性。 
- y忽略
- 未使用,出于约定,此处用于API一致性。 
 
- 返回值:
- self对象
- FeatureHasher类实例。 
 
 
 - fit_transform(X, y=None, **fit_params)[source]#
- 拟合数据,然后转换它。 - 使用可选参数 - fit_params将转换器拟合到- X和- y,并返回- X的转换版本。- 参数:
- X形状为(n_samples, n_features)的类数组
- 输入样本。 
- y形状为(n_samples,)或(n_samples, n_outputs)的类数组,默认值=None
- 目标值(无监督转换时为None)。 
- **fit_params字典
- 其他拟合参数。 
 
- 返回值:
- X_new形状为(n_samples, n_features_new)的ndarray数组
- 转换后的数组。 
 
 
 - get_metadata_routing()[source]#
- 获取此对象的元数据路由。 - 请查看用户指南,了解路由机制的工作原理。 - 返回值:
- routingMetadataRequest
- 一个 - MetadataRequest,封装了路由信息。
 
 
 - get_params(deep=True)[source]#
- 获取此估计器的参数。 - 参数:
- deep布尔值,默认值=True
- 如果为True,则将返回此估计器和包含的作为估计器的子对象的参数。 
 
- 返回值:
- params字典
- 参数名称映射到其值。 
 
 
 - set_output(*, transform=None)[source]#
- 设置输出容器。 - 参见介绍 set_output API,了解如何使用该 API 的示例。 - 参数:
- transform{"default", "pandas", "polars"},默认值=None
- 配置 - transform和- fit_transform的输出。- "default":转换器的默认输出格式
- "pandas":DataFrame 输出
- "polars":Polars 输出
- None:转换配置保持不变
 - 1.4版本中新增: - "polars"选项已添加。
 
- 返回值:
- self估计器实例
- 估计器实例。 
 
 
 
 
    