特征缩放

一,特征缩放定义

特征缩放是用来标准化数据特征的范围。

二,特征缩放的作用及原理

特征缩放是针对多特征情况的。当有多个特征向量的时候,如果其中一个变化范围比较大,根据上次所说的多特征梯度下降法算法可以知道,该特征向量的参数可能会变化范围很大,从而主导整个梯度下降的过程,使得整个收敛轨迹变得复杂,让收敛的时间更长。就像下图所示:
特征缩放_第1张图片

因此,我们可以将所有特征向量的变化范围维持在一个标准化范围之中,就能减小该特征向量的影响程度,加快梯度收敛速度。

三,特征缩放的方法

例如:
这里写图片描述

这个例子中x1的变化范围就远大于x2(多特征变化范围比较中不包括x0,因为x0始终等于1),这就需要特征缩放。最简单的可以这么做:
特征缩放_第2张图片

将他们都除以取值范围,就将取值规范在一个很小的范围内了。

四,特征缩放的范围注意

特征缩放的范围如果收敛的很大或者很小,就不太适合,也就是不是一个很好的特征缩放。多特征的范围不一定要在相同范围内,只要接近即可。

推荐范围为: 最大在-3+3之间,最小不能小于-1/3+1/3之间。

五,均值归一化

均值归一化是在特征缩放的基础上一个改进,归一化不需要非常精确,只要几个归一化范围接近即可。
其方法为:
特征缩放_第3张图片

对于特征x1,x1可定义为(x1-u1)/s1,x1为当前x1的值,u1为所有x1的平均值,s1为x1的原来取值范围或者标准差。
这样做就能将所有特征取值范围都大致标准化在-0.5~+0.5之间。

比如,上面举的例子,用均值归一化的方法对其进行特征缩放:
特征缩放_第4张图片


这是我在学习ng的机器学习课程的基础上,经过自己的一些思考,写下学习笔记,重点是对于一些细节的思考和逻辑的理清。

以上很多都是个人的理解,如果有不对的地方,还请大家指教。

你可能感兴趣的:(ml学习笔记,机器学习,ml,特征,特征缩放)