搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > python万能实验室 > 特征缩放—机器学习(十一)

特征缩放—机器学习(十一)

python万能实验室 2020-07-01

在机器学习过程中数据处理一般遇到一个问题:跨越不同程度的幅度、范围和单位的多个特征的数据集,如一个要素完全以千克为单位,而另一个要素以克为单位,另一个以升为单位,依此类推。这些功能在呈现的内容方面差异很大时,是一个重大障碍,因为一些机器学习算法对这些功能高度敏感。

1.为什么要使用特征缩放

  • 为什么需要缩放数据集中的变量?一些机器学习算法对特征缩放很敏感,而另一些则影响不大。

1.1 基于梯度下降的算法基于梯度下降的算法

使用梯度下降作为优化技术的机器学习算法(如线性回归,逻辑回归,神经网络等)要求对数据进行缩放。如下面的梯度下降公式:

公式中特征值X的存在将影响梯度下降的步长。特征范围的差异将导致每个特征的步长不同。为确保梯度下降平稳地向最小值移动,并确保所有特征的梯度下降步骤均以相同的速率更新,在将数据输入模型之前先对数据进行缩放。

具有相似比例的特征可以帮助梯度下降更快地收敛到最小值。

1.2 基于距离的算法

距离算法(例如KNN,K-means和SVM)受功能范围的影响最大。这是因为它们使用数据点之间的距离来确定它们的相似性。假设有包含学生的高中CGPA分数(从0到5)和他们的未来收入(以千卢比为单位)的数据:

由于两个特征的比例不同,因此可能会给幅值较大的特征赋予更高的权重。这将影响机器学习算法的性能,显然,我们不希望算法偏向一个功能。

因此,在采用基于距离的算法之前对数据进行缩放,以便所有特征均对结果做出相同的贡献。

当比较学生A和B的数据点之间以及B和C的数据点之间的欧几里得距离时,缩放前后的效果非常明显,如下所示:

  • 缩放前的距离AB=
  • 缩放前的距离BC =
  • 缩放后的距离AB =
  • 缩放后的距离BC = 缩放后将所有特征放在一起对比,距离现在比应用缩放之前更具有可比性。

2 归一化与标准化

2.1 什么是归一化

归一化是一种缩放技术,在该技术中,将对值进行移位和重新缩放,以使它们最终在0到1之间变化。这也称为“最小-最大”缩放。

在此, 分别是特征的最大值和最小值:

  • 当X的值是列中的最小值时,分子将为0,因此X'为0
  • 另一方面,当X的值为列中的最大值时,分子等于分母,因此X'的值为1
  • 如果X的值介于最小值和最大值之间,则X'的值介于0和1之间

2.2 什么是标准化

标准化是另一种定标技术,其中值以平均值为中心具有单位标准偏差。这意味着属性的平均值变为零,并且结果分布具有单位标准偏差。标准化的公式:

特征缩放: 是特征值的平均值,是特征值特征缩放: 的标准偏差。注意,在这种情况下,值不限于特定范围。

2.3 使用归一化还是标准化?

  • 当数据的分布不遵循高斯分布时,可以使用归一化。这在不假设任何数据分布的算法(例如K最近邻居和神经网络)中很有用。
  • 另一方面,在数据遵循高斯分布的情况下,标准化可能会有所帮助。但是,这不一定是正确的,而且,与标准化不同,标准化没有边界范围。因此,即使数据中有异常值,它们也不会受到标准化的影响。

3 小结

今天总结了机器学习中归一化和标准化的特征缩放:

  • 归一化是一种缩放技术,在该技术中,将对值进行移位和重新缩放,以使它们最终在0到1之间变化;
  • 标准化是另一种定标技术,其中值以平均值为中心具有单位标准偏差。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《特征缩放—机器学习(十一)》的版权归原作者「python万能实验室」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注python万能实验室微信公众号

python万能实验室微信公众号:pyshujujia

python万能实验室

手机扫描上方二维码即可关注python万能实验室微信公众号

python万能实验室最新文章

精品公众号随机推荐