精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用


精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用在这篇文章中 , 我们将讨论什么是特征缩放以及为什么我们在机器学习中需要特征缩放 。 我们还将讨论数据的标准化 , 以及使用scikit-learn实现同样的标准化 。
什么是特性缩放?特征缩放是对输入数据进行标准化/规范化所需要的重要预处理之一 。 当每一列的值范围非常不同时 , 我们需要将它们扩展到公共级别 。 这些值重新规划成公共水平 , 然后我们可以对输入数据应用进一步的机器学习算法 。
我们有不同的特征 , 其中一个特征的数据可能以公里表示 , 另一列的数据可能以米表示 , 最后一列的数据可能以厘米表示 。 在将算法应用到数据上之前 , 首先需要将数据放到"米"、"公里"或"厘米"的公共尺度上进行有效的分析和预测 。
缩放前输入数据
精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用在上面的数据集中 , 我们可以看到列1和列2中的值有非常不同的范围 。 第一列值表示年龄在30到90岁之间 , 而工资值在30000到15000之间变化 。 所以两列值的比例是截然不同的 。 在进一步分析之前 , 我们需要将其调整到相同的范围 。
缩放后的输出
缩放值的一种方法是将所有列的值从0到1或者我们可以将它们的值放在-3到3之间 。 将值更新到新的范围的过程通常称为Normalization 或 Standardization. 。
下面是标准缩放后的数据输出 。 从数据中可以看出 , 所有的值都在-3到3之间 。
精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用数据标准化后的数据如下 。可以看出 , 年龄和薪水的数据介于0到1之间 。
精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用为什么我们需要特征缩放?
精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用要获得正确的预测和结果 , 就需要特征缩放 。如果某一列的值与其他列相比非常高 , 则具有更高值的列的影响将比其他低值列的影响高得多 。高强度的特征比低强度的特征重得多 , 即使它们在确定输出中更为关键 。因此 , 预测可能无法给出预期的结果 , 并且可能无法满足业务用例 。
机器学习算法也可能对范围较小的列不敏感 , 并可能导致不一致
总而言之 , 功能缩放是必需的 , 因为:
1. 回归系数直接受特征范围的影响
1. 具有较高比例的功能比具有较低比例的功能更重要
1. 如果我们具有缩放值 , 则可以轻松实现渐变下降
1. 如果按比例缩放 , 某些算法将减少执行时间 。
1. 一些算法基于欧几里得距离 , 欧几里得距离对特征尺度非常敏感 。
不同的特征缩放技术我们可以使用不同的缩放技术来缩放输入数据集 。我们可以应用以下任一方法:
Normalization 或 Standardization
什么是归一化(Normalization )?归一化是在0到1之间缩放要素值归一化 。 这称为最小-最大缩放 。
精英联盟总队|机器学习特性缩放的介绍,什么时候为什么使用在上式中:
· Xmax和Xmin是功能列的最大值和最小值
· X的值始终在最小值和最大值之间
使用Scikit Learn进行数据归一化