“规格化”和“规格化”之间的特征比例差异

时间:2018-11-14 01:40:19

标签: machine-learning cluster-analysis data-science feature-extraction unsupervised-learning

有人可以像

一样使用规范化与规范化来帮助我解决功能缩放方面的差异
  • preprocessing.normalize()与preprocessing.Normalizer()。

1 个答案:

答案 0 :(得分:1)

就其对数据的影响而言,它们是等效的。 normalize函数旨在成为“快速而简单”的选项,以规范化单个矢量/矩阵。 Normalizer是所谓的“实用程序类”。它只是在Sklearn的normalize API中包装了Transformer函数。如documentation中所述,这使得Normalizer类非常适合在Sklearn的Pipeline class中使用。

** 更新以提供更多详细信息 **

规范化器

normalizeNormalizer的功能是相同的。即给定相同的数据和参数,它们将分别返回输入矩阵的L1或L2范数。

有关详细信息,请参见sklearn.preprocessing.normalizer documentation

变形金刚

Normalizer transformer 的示例。变压器可以以多种方式处理数据。他们在sklearn中的共同点是拥有fittransformfit_transform方法。

有关更多详细信息,请参见数据转换器documentation

管道

sklearn.pipeline.Pipeline是用于“链接”数据转换(归一化,缩放,过滤等)和估计器的类。当使用交叉验证来优化预处理转换和估计器中的不同参数时,能够做到这一点很有帮助。

由于sklearn.pipeline.Pipeline的工作方式,它要求组成函数使用transformer API。即具有fittransformfit_transform方法。

有关详细信息,请参见sklearn.pipeline.Pipline documentation

NormalizeNormalizer

Normalize没有fittransformfit_transform方法。因此,尽管它适合“独立”使用,但不能用作Pipeline的一部分。 Normalizer被包裹在sklearn的Transformer API中,以提供Transformer方法。

因此,Normalizer允许normalize函数与fittransformfit_transform方法一起使用,从而可以将其用作Pipeline的一部分。

注释

  1. 因为规范化数据时没有合适的模型(从技术上讲,normalize除了配置参数(例如,要在哪个轴上进行规范以及要使用哪种类型的规范化)之外,无状态 ),它仅需要transform方法。因此,fit返回的输入内容未经修改,fit_transform的行为与transform相同。
  2. Transformer可以使用normalize API的其他原因,但最常见的是将其用作Pipeline的一部分。