标准化: 数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值。 常用的标准化有:Min-Max scaling, Z score
中心化:变量减去它的均值,对数据进行平移
数据标准化的原理往往是来自于独立连续变量的量纲。
人口y
进行回归,采取 “个数” 量纲和 “百万个” 量纲得到的回归系数会差的相当大。而进行处理时,采取“个数”的量纲的回归系数太小。这时候有必要对原始数据进行标准化,使得每个变量x
有相同的范围或者方差。在聚类过程中,标准化显得尤为重要。这是因为聚类操作依赖于对类间距离和类内聚类之间的衡量。如果一个变量的衡量标准高于其他变量,那么我们使用的任何衡量标准都将受到该变量的过度影响
在PCA降维操作之前 / 在主成分PCA分析之前,对变量进行标准化至关重要。 这是因为PCA给那些方差较高的变量比那些方差非常小的变量赋予更多的权重。而 标准化原始数据会产生相同的方差,因此高权重不会分配给具有较高方差的变量
KNN操作,原因类似于kmeans聚类。由于KNN需要用欧式距离去度量。标准化会让变量之间起着相同的作用
在SVM中,使用所有跟距离计算相关的的kernel都需要对数据进行标准化
在选择岭回归和Lasso回归时候,标准化是必须的。原因是正则化是有偏估计,会对权重进行惩罚。在量纲不同的情况,正则化会带来更大的偏差。
在线性回归中,是否进行标准化将不会影响最后预测效果,即使训练时候的权重将不一样。
下面用R语言进行实验证明:
对数据进行标准化后,然后再进行训练
在进行predict的时候,我们仍然需要对输入数据进行标准化,此时可以利用训练集上的均值和方差。
此处的标准化的prediction进行了重新scale。可以看到是否标准化,不会影响回归结果。
不考虑线性相关直接使用线性模型
设想建立一个具有两变量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=3X1−X2 或 Y = 100 X 1 − 99 X 2 Y=100X_1-99X_2 Y=100X1−99X2 都一样好,这一问题可能并无不妥,因为它是无偏估计。
然而,它却会使问题变得病态,使系数权重变得无法解释。
将线性或逻辑回归模型的系数绝对值解释为特征重要性
因为很多现有线性回归量为每个系数返回P值,对于线性模型,许多实践者认为,系数绝对值越大,其对应特征越重要。事实很少如此,因为:
(1) 改变变量尺度就会改变系数绝对值;
(2) 如果特征是线性相关的,则系数可以从一个特征转移到另一个特征;
(3) 数据集特征越多,特征间越可能线性相关,用系数解释特征重要性就越不可靠。