在数据处理中,特征缩放是一种用来正规化独立变量或特征范围的方法。这一过程也被称为数据正规化,并通常在数据预处理过程中执行。特征缩放的主要目的在于使不同范围的数据能够以更一致的方式参与到机器学习算法中,从而提高模型的准确性和性能。
原始数据的范围变化非常广泛,在某些机器学习算法中,目标函数在未经正规化的情况下无法正常工作。
例如许多分类器通过欧几里得距离来计算两点之间的距离,如果其中一个特征具有较大的数值范围,那么距离计算将受到这个特征的主导影响。因此,所有特征的范围都应被正规化,以使每个特征大致以相同比例对最终距离做出贡献。
另一个需要进行特征缩放的原因是,使用梯度下降法进行优化时,进行特征缩放能够大大加快收敛速度。如果在损失函数中使用了正则化,则进行特征缩放也会确保系数的惩罚应用到位。实证研究显示,特征缩放能显著提升随机梯度下降法的收敛速度。在支援向量机中,使用特征缩放可让寻找支持向量的时间显著减少。
特征缩放通常在涉及数据点之间的距离和相似度的应用中使用,例如聚类和相似度搜索。
最小-最大正规化是最简单的方法之一,通过将特征的范围重新缩放到 [0, 1] 或者 [-1, 1] 来实现。选择目标范围取决于数据的特性。该方法的公式如下:
x' = (x - min(x)) / (max(x) - min(x))
假设学生体重数据的范围在[160 磅,200 磅],为了进行数据缩放,我们首先从每个学生体重中减去160,然后将结果除以40(即最大和最小体重之间的差)。如果需要将范围缩放到任意值 [a, b],公式将变为:
x' = a + (x - min(x)) * (b - a) / (max(x) - min(x))
均值正规化的公式为:
x' = (x - mean(x)) / (max(x) - min(x))
这里的 mean(x) 是该特征向量的均值。均值正规化的另一种形式是将其除以标准差,这就是所谓的标准化。
标准化处理使每个特征的值具有零均值(即数据减去均值)和单位方差。该方法在许多机器学习算法中被广泛使用。通用的计算方法是,首先为每个特征计算分布的均值和标准差,然后从每个特征中减去均值,最后将每个特征的值除以其标准差,公式如下:
x' = (x - mean(x)) / σ
鲁棒缩放是使用中位数和四分位范围(IQR)来进行的标准化,这种方法对异常值的影响不敏感。公式为:
x' = (x - Q2(x)) / (Q3(x) - Q1(x))
这里的 Q1, Q2 和 Q3 分别是特征的第一、第二(中位数)和第三四分位数。
单位向量正规化将每个数据点视为一个向量,然后除以其向量的范数,公式为:
x' = x / ||x||
可以使用任何向量范数,但最常用的范数是 L1 项和 L2 项。
在机器学习模型训练的过程中,特征缩放是一个关键的步骤。未经缩放的数据不仅可能使模型性能降低,还会影响算法的运行效率。面对日益增长和复杂的数据集,合理地选择及使用特征缩放方法显得尤为重要。成功的机器学习模型是否依赖于对数据的精确处理与前期准备,你觉得呢?