探讨"特征缩放"

绪论

一、本文首先基于线性回归(Linear Regression)回答下列三个问题:
1 特征缩放的想法(idea)
2 特征缩放的好处以及适用情况
3 使用特征缩放、不使用特征缩放求出参数(theta)之间的对应关系,以及如何从代数变化、python编程角度说明如何将前者求解出的参数转化成后者求解出参数。

二、进而基于除线性回归的其他机器学习算法,回答下列三个问题:
1.为什么要进行特征缩放
2.哪些机器学习模型必须进行特征缩放
3.特征缩放的注意事项。
特征缩放(Feature Scaling)

三、最后给出特征缩放的5种方法:
1.最大最小值归一化(min-max normalization)
2.均值归一化(mean normalization)
3.标准化/z值归一化(standardization/z-score normalization)
4.最大绝对值归一化(max abs normalization)
5.稳健标准化(robust standardization)

一、

1. 特征缩放的想法:让每一种特征都处于一个相类似的范围,一般大约在[-1, 1]区间范围内。
为什么有“大约”,因为下列情况都是可取的:
x 0 = 1 ( 显 然 可 取 ) x_0 = 1 (显然可取) x0=1
0 ≤ x 1 ≤ 3 0≤x_1≤3 0x13(可取,和[-1,1]范围较接近)
− 2 ≤ x 2 ≤ 0.5 -2≤x_2≤0.5 2x20.5 (可取,和[-1,1]范围较接近)
− 100 ≤ x 3 ≤ 100 -100≤x_3≤100 100x3100不可取,比[-1,1]范围大得多)
− 0.0001 ≤ x 4 ≤ 0.0001 -0.0001≤x_4≤0.0001 0.0001x40.0001不可取,比[-1,1]范围小得多)
− 3 ≤ x 5 ≤ 3 -3≤x_5≤3 3x53 (可取,和[-1,1]范围较接近)
− 1 / 3 ≤ x 6 ≤ 1 / 3 -1/3≤x_6≤1/3 1/3x61/3 (可取,和[-1,1]范围较接近)

2.特征缩放适用情况以及好处
正规方程法(Normal Equation)的方法不需要进行特征缩放。
梯度下降法(Gradient Descent)的方法在不同特征的所处范围相差很大时,需要进行特征缩放。特征缩放可以减小梯度下降的迭代次数。如下图所示,左边的图对应不同特征的范围相差很大却为进行特征缩放,此时函数的等值线图是一个个扁形的椭圆组合而成;右边的图对应进行特征缩放后的等值线图,图是一个个圆组合而成的。如图所示,后者收敛到局部最优解的迭代次数比前者的更少。
图1
**3.**使用特征缩放、不使用特征缩放求出参数(theta)之间的对应关系,以及如何从代数变化、python编程角度说明如何将前者求解出的参数转化成后者求解出参数。
首先,解释使用特征缩放、不使用特征缩放求出参数(theta)之间的对应关系。
图2
进而展示python实现如何将前者求解出的参数转化成后者求解出参数。

def theta_transform(theta, means, stds):
    temp = theta[1:] * means[0:-1] / stds[0:-1]
    theta[0] = (theta[0] -  np.sum(temp)) * stds[-1] + means[-1]
    theta[1:] = theta[1:] * stds[-1] / stds[0:-1]
    return theta
theta = theta_transform(theta1, means, stds)

二、

1.为什么要进行特征缩放
因为要统一特征权重&提升模型准确性。
如果某个特征的取值范围比其他特征大很多,那么数值计算(比如说计算欧式距离)就受到该特征主要支配。但实际上并不一定是这个特征最重要,通常需要把每个特征看成同等重要。归一化(normalization)/标准化(standardization)数据可以使不同维度的特征放在一起进行比较,可以大大提高模型准确性。

2.哪些机器学习模型必须进行特征缩放
通过梯度下降法求解的模型需要进行特征缩放。这包括线性回归、逻辑回归(logistic regression )、感知机(Perception)、支持向量机(SVM)、神经网络(Neural Network)。
此外,近邻法(KNN),K均值聚类(K-Means)等需要根据数据间的距离来划分数据的算法也需要特征缩放。主成分分析(PCA)、线性判别分析(LDA)等需要计算特征的方差的算法会受特征缩放的影响。
决策树(Decision Tree),随机森林(Random Forest)等基于树的模型不需要进行特征缩放,因为特征缩放不会改变样本在特征上的信息增益。

3.特征缩放的注意事项。
先把数据拆分成训练集和验证集,在训练集上计算出需要的数值(如均值和标准值),对训练集数据做标准化/归一化处理(不要在整个数据集上做标准化/归一化处理,因为这样会将验证集的信息带入到训练集中,这是一个非常容易犯的错误),然后再用之前计算出的数据(如均值和标准值)对验证集数据做相同标准化/归一化处理。

三、特征缩放的几种方法:

(1)最大最小值归一化(min-max normalization):将数值范围放到[0,1]区间里
图3(2)均值归一化(mean normalization):将数值范围缩放到[-1,1]区间里,且数据的均值变为0。
图4(3)标准化/z值归一化(standardization/z-score normalization):将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布(先减去均值来对特征进行 中心化 mean centering处理,在处理标准差进行缩放)
图5(4)最大绝对值归一化(max abs normalization):也就是将数值变为单位长度(scaling to unit length),将数值范围缩放到[-1,1]区间里。
图6(5)稳健标准化(robust standardization):先减去中位数,再除以四分位间距(interquartile range),因为不涉及极值,因此在数据里有异常值的情况下表现比较稳健。
在这里插入图片描述

最后

关于“归一化和标准化的区别”、“选用哪种方法进行特征缩放”,请见https://www.cnblogs.com/HuZihu/p/9761161.html

参考:
[1]https://www.zhihu.com/question/275019388/answer/1063963309 知乎回答(清波 回答)
[2]https://www.cnblogs.com/HuZihu/p/9761161.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

培之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值