目录
1.哪些机器学习算法不需要做归一化处理?并叙述归一化的过程。
3.在k-means或kNN,我们常用欧氏距离来计算最近的邻居之间的距离,有时也用曼哈顿距离,请对比下这两种距离的差别
1.哪些机器学习算法不需要做归一化处理?并叙述归一化的过程。
概率模型(树形模型)不需要归一化,因为它们不关心变量的值,而是关心变量的分布和变量之间的条件概率,如决策树、RF。而像Adaboost、SVM、LR、Knn、KMeans之类的最优化问题就需要归一化。
标准化:特征均值为0,方差为1
公式:
归一化:把每个特征向量(特别是奇异样本数据)的值都缩放到相同数值范围。如[0,1]或[-1,1]。最常用的归一化形式就是将特征向量调整为L1范数(就是绝对值相加),使特征向量的数值之和为1。L2范数就是欧几里得之和。
data_normalized = preprocessing.normalize( data , norm="L1" )
公式:
这个方法经常用于确保数据点没有因为特征的基本性质而产生较大差异,即确保数据处于同一数量级(同一量纲),提高不同特征数据的可比性。
2.对于树形结构为什么不需要归一化?
因为数值缩放不影响分裂点位置,对树形模型的结构不造成影响。 按照特征值进行排序的,排序的顺序不变,那么所属的分支以及分裂点就不会有不同。而且,树形模型是不能进行梯度下降的,因为构建树形模型(回归树)寻找最优点时是通过寻找最优分裂点完成的,因此树形模型是阶跃的,阶跃点是不可导的,并且求导没意义,也就不需要归一化。
3.在k-means或kNN,我们常用欧氏距离来计算最近的邻居之间的距离,有时也用曼哈顿距离,请对比下这两种距离的差别
欧氏距离,最常见的两点之间或多点之间的距离表示法,又称之为欧几里得度量,它定义于欧几里得空间中,如点 x = (x1,...,xn) 和 y = (y1,...,yn) 之间的距离为:
欧氏距离虽然很有用,但也有明显的缺点。它将样本的不同属性(即各指标或各变量量纲)之间的差别等同看待(忽略了单位),这一点有时不能满足实际要求。例如,在教育研究中,经常遇到对人的分析和判别,个体的不同属性对于区分个体有着不同的重要性。因此,欧氏距离适用于向量各分量的度量标准统一的情况。
曼哈顿距离(城市距离),我们可以定义曼哈顿距离的正式意义为L1-距离或城市区块距离,也就是在欧几里得空间的固定直角坐标系上两点所形成的线段对轴产生的投影的距离总和。例如在平面上,坐标(x1, y1)的点P1与坐标(x2, y2)的点P2的曼哈顿距离为:,要注意的是,曼哈顿距离依赖座标系统的转度,而非系统在坐标轴上的平移或映射。当坐标轴变动时,点间的距离就会不同。 通俗来讲,想象你在曼哈顿要从一个十字路口开车到另外一个十字路口,驾驶距离是两点间的直线距离吗?显然不是,除非你能穿越大楼。而实际驾驶距离就是这个“曼哈顿距离”,这也是曼哈顿距离名称的来源, 同时,曼哈顿距离也称为城市街区距离(City Block distance)。 曼哈顿距离和欧式距离一般用途不同,无相互替代性。
4.数据归一化(或者标准化,注意归一化和标准化不同)的原因
要强调:能不归一化最好不归一化,之所以进行数据归一化是因为各维度的量纲不相同。而且需要看情况进行归一化。
有些模型在各维度进行了不均匀的伸缩后,最优解与原来不等价(如SVM),这才需要归一化。 有些模型伸缩与原来等价,如:LR则不用归一化,但是实际中往往通过迭代求解模型参数,如果目标函数太扁(想象一下很扁的高斯模型)迭代算法会发生不收敛的情况,所以最好进行数据归一化。
5.机器学习中,为何经常要对数据归一化?
原因有二:(1)归一化后加快了梯度下降求最优解的速度;(2)归一化有可能提高精度。
6.归一化、标准化和正则化的关系
归一化(Normalization)
1.把数据变为(0,1)之间的小数。主要是为了方便数据处理,因为将数据映射到0~1范围之内,可以使处理过程更加便捷、快速。
2.把有量纲表达式变换为无量纲表达式,成为纯量。经过归一化处理的数据,处于同一数量级,可以消除指标之间的量纲和量纲单位的影响,提高不同数据指标之间的可比性。
标准化(Standardization)
数据的标准化是将数据按比例缩放,使之落入一个小的特定区间。
正则化(Regularization)
用一组与原不适定问题相“邻近”的适定问题的解,去逼近原问题的解,这种方法称为正则化方法。如何建立有效的正则化方法是反问题领域中不适定问题研究的重要内容。通常的正则化方法有基于变分原理的Tikhonov 正则化、各种迭代方法以及其它的一些改进方法。
总的来说:
归一化是为了消除不同数据之间的量纲,方便数据比较和共同处理,比如在神经网络中,归一化可以加快训练网络的收敛性;
标准化是为了方便数据的下一步处理,而进行的数据缩放等变换,并不是为了方便与其他数据一同处理或比较,比如数据经过零-均值标准化后,更利于使用标准正态分布的性质,进行处理;
正则化而是利用先验知识,在处理过程中引入正则化因子(regulator),增加引导约束的作用,比如在逻辑回归中使用正则化,可有效降低过拟合的现象。
7.归一化、标准化的主要方法
归一化主要算法:
1.线性转换,即min-max归一化(常用方法)
y=(x-min)/(max-min)
2. 对数函数转换
y=log10(x)
3.反余切函数转换
y=atan(x)*2/PI
正则化主要方法:
1.z-score标准化,即零-均值标准化(常用方法)
y=(x-μ)/σ
是一种统计的处理,基于正态分布的假设,将数据变换为均值为0、标准差为1的标准正态分布。但即使数据不服从正态分布,也可以用此法。特别适用于数据的最大值和最小值未知,或存在孤立点。
2.小数定标标准化
y=x/10^j (j确保max(|y|)<1)
通过移动x的小数位置进行标准化
3.对数Logistic模式
y=1/(1+e^(-x))