python 规格化器和MinMaxScaler之间的差异

n3h0vuf2  于 2023-02-11  发布在  Python
关注(0)|答案(1)|浏览(156)

我试图了解在我的数据中应用Normalizer或MinMaxScaler或同时应用两者的效果。我阅读了SKlearn中的文档,并看到了一些使用示例。我知道MinMaxScaler很重要(对缩放要素很重要),但Normalizer呢?
它使我不清楚在我的数据中使用Normamilizer的实际结果。
MinMaxScaler是按列应用的,Normalizer是按行应用的。这意味着什么?我应该使用Normalizer还是只使用MinMaxScale还是两者都使用?

vq8itlhq

vq8itlhq1#

正如你所说,

MinMaxScaler按列应用,Normalizer按行应用。

不要将NormalizerMinMaxScaler混淆。Sklearn 中的Normalizer类将样本单独归一化为单位范数。它不是基于列的归一化技术,而是基于行的归一化技术。换句话说,范围将由行或列确定。
因此,请记住,我们缩放的是特征而不是记录,因为我们希望特征具有相同的缩放比例,所以待训练的模型不会根据不同特征的范围给予不同的权重,如果我们缩放记录,这将为每个记录赋予自己的缩放比例,而这不是我们需要的。
因此,如果特征由行表示,则应使用Normalizer。但在大多数情况下,特征由列表示,因此应根据具体情况使用 Sklearn 中的一个定标器:

*MinMaxScaler通过将每个要素缩放到给定范围来转换要素。它单独缩放和转换每个要素,使其位于训练集的给定范围内,例如0和1之间。转换由下式给出:

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))

X_scaled = X_std * (max - min) + min

其中,最小值、最大值=特征_范围。
这种变换通常用作零均值、单位方差缩放的替代方法。

*StandardScaler通过移除均值并缩放到单位方差来标准化要素。样本x的标准得分计算如下:z = (x - u) / s。如果数据分布为正态分布,则使用此值。
*RobustScaler对离群值具有稳健性。它删除中位数并根据IQR(四分位距)缩放数据。IQR是第25分位数和第75分位数之间的范围。

相关问题