探讨"特征缩放"

本文深入探讨了特征缩放的重要性,包括其在机器学习算法中的作用、适用情况及五种常见方法。强调了特征缩放对梯度下降法、近邻算法等的影响,并详细解释了线性回归中特征缩放前后参数的转换。

绪论

一、本文首先基于线性回归(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]区间范围内。
为什么有“大约”,因为下列情况都是可取的:
x0=1(显然可取)x_0 = 1 (显然可取)x0=1
0≤x1≤30≤x_1≤30x13(可取,和[-1,1]范围较接近)
−2≤x2≤0.5-2≤x_2≤0.52x20.5 (可取,和[-1,1]范围较接近)
−100≤x3≤100-100≤x_3≤100100x3100不可取,比[-1,1]范围大得多)
−0.0001≤x4≤0.0001-0.0001≤x_4≤0.00010.0001x40.0001不可取,比[-1,1]范围小得多)
−3≤x5≤3-3≤x_5≤33x53 (可取,和[-1,1]范围较接近)
−1/3≤x6≤1/3-1/3≤x_6≤1/31/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

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

培之

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

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

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

打赏作者

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

抵扣说明:

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

余额充值