【ML】线性回归 の 数据标准化

文章目录

  • 1 What:数据标准化 vs 中心化
  • 2 Why:为什么要数据标准化
  • 3 When:什么时候做/不做数据标准化
    • Do 数据标准化 的情况
    • Undo 数据标准化 的情况
    • 线性回归无需标准化 の 数学证明
    • 线性回归无需标准化 の 实验证明
      • 不采用标准化
      • 采用标准化
      • 对比 标准化与无标准化 の 预测值
  • 4 其他:线性回归的易错点


1 What:数据标准化 vs 中心化

  • 标准化: 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值。 常用的标准化有:Min-Max scaling, Z score

  • 中心化:变量减去它的均值,对数据进行平移

【ML】线性回归 の 数据标准化_第1张图片

2 Why:为什么要数据标准化

数据标准化的原理往往是来自于独立连续变量的量纲。

  • 举个 :如果我们要对 人口y 进行回归,采取 “个数” 量纲和 “百万个” 量纲得到的回归系数会差的相当大。而进行处理时,采取“个数”的量纲的回归系数太小。这时候有必要对原始数据进行标准化,使得每个变量x 有相同的范围或者方差。

3 When:什么时候做/不做数据标准化

Do 数据标准化 的情况

  • 聚类过程中,标准化显得尤为重要。这是因为聚类操作依赖于对类间距离和类内聚类之间的衡量。如果一个变量的衡量标准高于其他变量,那么我们使用的任何衡量标准都将受到该变量的过度影响

  • PCA降维操作之前 / 在主成分PCA分析之前,对变量进行标准化至关重要。 这是因为PCA给那些方差较高的变量比那些方差非常小的变量赋予更多的权重。而 标准化原始数据会产生相同的方差,因此高权重不会分配给具有较高方差的变量

  • KNN操作,原因类似于kmeans聚类。由于KNN需要用欧式距离去度量。标准化会让变量之间起着相同的作用

  • SVM中,使用所有跟距离计算相关的的kernel都需要对数据进行标准化

  • 在选择岭回归和Lasso回归时候,标准化是必须的。原因是正则化是有偏估计,会对权重进行惩罚。在量纲不同的情况,正则化会带来更大的偏差。

Undo 数据标准化 的情况

  • 当采用 普通的线性回归(OLS) 的时候,是无需标准化的。因为标准化前后,不会影响线性回归预测值
  • 标准化不会影响 logistic回归,决策树及其他一些集成学习算法

线性回归无需标准化 の 数学证明

在线性回归中,是否进行标准化将不会影响最后预测效果,即使训练时候的权重将不一样。
【ML】线性回归 の 数据标准化_第2张图片

线性回归无需标准化 の 实验证明

下面用R语言进行实验证明:

不采用标准化

【ML】线性回归 の 数据标准化_第3张图片
在测试集上的预测:
【ML】线性回归 の 数据标准化_第4张图片

采用标准化

【ML】线性回归 の 数据标准化_第5张图片
对数据进行标准化后,然后再进行训练
【ML】线性回归 の 数据标准化_第6张图片
在进行predict的时候,我们仍然需要对输入数据进行标准化,此时可以利用训练集上的均值和方差。【ML】线性回归 の 数据标准化_第7张图片

对比 标准化与无标准化 の 预测值

此处的标准化的prediction进行了重新scale。可以看到是否标准化,不会影响回归结果。
【ML】线性回归 の 数据标准化_第8张图片

4 其他:线性回归的易错点

  • 不考虑线性相关直接使用线性模型
    设想建立一个具有两变量X1和X2的线性模型,假设真实模型是 Y = X 1 + X 2 Y=X_1+X_2 Y=X1+X2
    理想地,如果观测数据含有少量噪声,线性回归解决方案将会恢复真实模型。
    然而,如果 X 1 X_1 X1 X 2 X_2 X2 线性相关(大多数优化算法所关心的), Y = 2 X 1 Y=2X_1 Y=2X1, Y = 3 X 1 − X 2 Y=3X_1-X_2 Y=3X1X2 Y = 100 X 1 − 99 X 2 Y=100X_1-99X_2 Y=100X199X2 都一样好,这一问题可能并无不妥,因为它是无偏估计。
    然而,它却会使问题变得病态,使系数权重变得无法解释。

  • 将线性或逻辑回归模型的系数绝对值解释为特征重要性
    因为很多现有线性回归量为每个系数返回P值,对于线性模型,许多实践者认为,系数绝对值越大,其对应特征越重要事实很少如此,因为:
    (1) 改变变量尺度就会改变系数绝对值;
    (2) 如果特征是线性相关的,则系数可以从一个特征转移到另一个特征;
    (3) 数据集特征越多,特征间越可能线性相关,用系数解释特征重要性就越不可靠

你可能感兴趣的:(ML,微信,大数据,python)