有人可以像
一样使用规范化与规范化来帮助我解决功能缩放方面的差异答案 0 :(得分:1)
就其对数据的影响而言,它们是等效的。 normalize
函数旨在成为“快速而简单”的选项,以规范化单个矢量/矩阵。 Normalizer
是所谓的“实用程序类”。它只是在Sklearn的normalize
API中包装了Transformer
函数。如documentation中所述,这使得Normalizer
类非常适合在Sklearn的Pipeline
class中使用。
** 更新以提供更多详细信息 **
规范化器
normalize
和Normalizer
的功能是相同的。即给定相同的数据和参数,它们将分别返回输入矩阵的L1或L2范数。
有关详细信息,请参见sklearn.preprocessing.normalizer
documentation。
变形金刚
Normalizer
是 transformer 的示例。变压器可以以多种方式处理数据。他们在sklearn中的共同点是拥有fit
,transform
和fit_transform
方法。
有关更多详细信息,请参见数据转换器documentation。
管道
sklearn.pipeline.Pipeline
是用于“链接”数据转换(归一化,缩放,过滤等)和估计器的类。当使用交叉验证来优化预处理转换和估计器中的不同参数时,能够做到这一点很有帮助。
由于sklearn.pipeline.Pipeline
的工作方式,它要求组成函数使用transformer
API。即具有fit
,transform
和fit_transform
方法。
有关详细信息,请参见sklearn.pipeline.Pipline
documentation。
Normalize
和Normalizer
Normalize
没有fit
,transform
和fit_transform
方法。因此,尽管它适合“独立”使用,但不能用作Pipeline
的一部分。 Normalizer
被包裹在sklearn的Transformer
API中,以提供Transformer
方法。
因此,Normalizer
允许normalize
函数与fit
,transform
和fit_transform
方法一起使用,从而可以将其用作Pipeline
的一部分。
注释
normalize
除了配置参数(例如,要在哪个轴上进行规范以及要使用哪种类型的规范化)之外,无状态 ),它仅需要transform
方法。因此,fit
返回的输入内容未经修改,fit_transform
的行为与transform
相同。Transformer
可以使用normalize
API的其他原因,但最常见的是将其用作Pipeline
的一部分。