【问题标题】:Linear Regression :: Normalization (Vs) Standardization线性回归 :: 归一化 (Vs) 标准化
【发布时间】:2015-11-13 12:02:01
【问题描述】:

我正在使用线性回归来预测数据。但是,当我标准化(Vs)标准化变量时,我得到了完全相反的结果。

归一化 = x -xmin/ xmax – xmin 零分标准化 = x - xmean/ xstd

a) Also, when to Normalize (Vs) Standardize ?
b) How Normalization affects Linear Regression?
c) Is it okay if I don't normalize all the attributes/lables in the linear regression?

谢谢, 桑托什

【问题讨论】:

标签: machine-learning linear-regression feature-extraction


【解决方案1】:

请注意,结果可能不一定如此不同。您可能只需要两个选项的不同超参数即可获得相似的结果。

理想的做法是测试最适合您的问题的方法。如果由于某种原因你负担不起,大多数算法可能会从标准化中受益,而不是标准化。

请参阅here 了解何时应该优先选择另一个的一些示例:

例如,在聚类分析中,标准化对于根据特定距离度量比较特征之间的相似性可能尤为重要。另一个突出的例子是主成分分析,我们通常更喜欢标准化而不是 Min-Max 缩放,因为我们对最大化方差的组件感兴趣(取决于问题以及 PCA 是否通过相关矩阵而不是协方差矩阵;但更多关于 PCA 在我之前的文章中)。

但是,这并不意味着 Min-Max 缩放根本没有用!一个流行的应用是图像处理,其中像素强度必须被归一化以适应特定范围(即 RGB 颜色范围为 0 到 255)。此外,典型的神经网络算法需要 0-1 尺度的数据。

与标准化相比,标准化的一个缺点是它会丢失数据中的一些信息,尤其是关于异常值的信息。

在链接页面上,还有这张图片:

如您所见,扩展将所有数据聚集在一起非常接近,这可能不是您想要的。这可能会导致诸如梯度下降之类的算法需要更长的时间才能收敛到与标准化数据集相同的解决方案,甚至可能无法实现。

“标准化变量”实际上没有意义。正确的术语是“规范化/缩放特征”。如果你要规范化或缩放一个特征,你应该对其余的做同样的事情。

【讨论】:

  • 谢谢。根据您的解释,在我看来,我们总是应该“标准化变量”。您还可以详细说明一下:“如果您要规范化或缩放一个功能,您应该对其余的功能做同样的事情。”。另外,在我的数据集中,我有诸如经度、纬度、海拔等属性,我们还需要对它们进行归一化吗?
  • 我对事情有不同的看法。大多数时候,集中数据是好的。但缩放是另一回事。因为有时不同的特征需要不同的缩放比例(例如,如果数据总是必须具有 1 个 STD,为什么会存在诸如 Mahalanobis 距离之类的东西?)。这是扩展,如果这是您需要的,它应该就位。
  • @SantoshKumar 我的意思是c) 的答案通常是否定的。如果不规范化所有属性,通常是不行的。我不知道您的特定问题的具体情况,情况可能会有所不同,但不太可能。所以是的,您很可能也应该对它们进行标准化或缩放。
  • @Drazick 我认为这不是一个不同的观点。大多数机器学习算法不使用马氏距离之类的东西,所以这不是很相关。标准化通常是正确的,但也有例外。只是,如果您不确定并且负担不起测试的费用,那么您很可能通过标准化就可以了。
  • 我认为相反,在大多数情况下,您应该使用协方差矩阵而不是对其进行归一化来告诉算法数据的真实几何形状。对于优化算法,那就另当别论了。
【解决方案2】:

这是有道理的,因为规范化和标准化做不同的事情。

标准化将您的数据转换为 0 到 1 之间的范围

标准化会转换您的数据,使得结果分布的平均值为 0,标准差为 1

规范化/标准化旨在实现类似的目标,即创建具有相似范围的特征。我们希望这样做,这样我们就可以确保我们正在捕获特征中的真实信息,并且我们不会仅仅因为它的值比其他特征大得多而过度权衡特定特征。

如果您的所有特征都在彼此相似的范围内,那么就没有真正需要标准化/规范化。但是,如果某些特征自然而然地采用比其他特征大得多/小得多的值,则需要进行归一化/标准化

如果您要规范化至少一个变量/特征,我也会对所有其他变量/特征做同样的事情

【讨论】:

  • 这不是真的。特征的范围是问题的一部分,但许多算法都受益于标准化部分。简单的缩放可能会丢失数据中的重要信息,尤其是与异常值相关的信息。 RBF 内核在非标准化数据上的表现要差得多。目标不一样。
  • 谢谢。 c) 如果我不对线性回归中的所有属性/标签进行归一化,可以吗?
【解决方案3】:

第一个问题是为什么我们需要规范化/标准化?

=> 我们以数据集为例,其中有薪水变量和年龄变量。 年龄可以从 0 到 90 岁,工资可以从 2.5 万到 25 万。

我们比较 2 人的差异,然后年龄差异将在 100 以下的范围内,而工资差异将在数千的范围内。

因此,如果我们不希望一个变量支配另一个变量,那么我们使用规范化或标准化。现在年龄和薪水都将是相同的比例 但是当我们使用标准化或标准化时,我们会丢失原始值并将其转换为某些值。因此,当我们想从数据中进行推断时,解释的损失非常重要。

归一化将值重新缩放到 [0,1] 的范围内。也称为 min-max scaled。

标准化将数据重新调整为均值 (μ) 为 0,标准差 (σ) 为 1。因此它给出了一个正态图。

示例如下:

另一个例子:

在上图中,您可以看到我们的实际数据(绿色)分布在 1 到 6 之间,标准化数据(红色)分布在 -1 到 3 左右,而标准化数据(蓝色)分布在0 到 1。

通常,许多算法要求您在作为参数传递之前首先对数据进行标准化/规范化。就像在 PCA 中一样,我们通过将 3D 数据绘制成 1D(比如说)来进行降维。这里我们需要标准化。

但在图像处理中,需要在处理之前对像素进行归一化处理。 但是在标准化过程中,我们会丢失异常值(极端数据点——太低或太高),这是一个轻微的劣势。

所以这取决于我们选择的偏好,但最推荐标准化,因为它给出了一条正态曲线。

【讨论】:

    【解决方案4】:

    上述变换对于线性回归都不重要,因为这些都是仿射变换。

    找到的系数会发生变化,但解释的方差最终将保持不变。因此,从线性回归的角度来看,异常值仍然是异常值(杠杆点)。

    而且这些转换也不会改变分布。分布的形状保持不变。

    【讨论】:

      【解决方案5】:

      很多人交替使用规范化和标准化。目的保持不变,是将特征带入相同的规模。该方法是从最小值或平均值中减去每个值,然后分别除以最大值减去最小值或 SD。您可以观察到的差异是,当使用最小值时,您将获得所有值 + ve,而平均值您将获得 bot + ve 和 -ve 值。这也是决定使用哪种方法的因素之一。

      【讨论】:

        猜你喜欢
        • 2019-06-07
        • 2017-06-06
        • 2016-02-28
        • 1970-01-01
        • 2018-10-13
        • 1970-01-01
        • 2020-05-06
        • 1970-01-01
        • 2018-08-02
        相关资源
        最近更新 更多