Samuel Shaibu 2024-10-15
深入了解归一化(Normalization)与标准化(Standardization)之间的关键区别、应用场景及实现方法,是机器学习数据预处理中的核心内容。
准确地准备数据对于模型性能和结果解释都至关重要。这正是归一化和标准化发挥作用的核心挑战所在——这两种重要的特征缩放技术可用于调整数据,以提升模型性能或帮助更好地解释结果。
在本文中,我将带你梳理这两个术语的不同之处,并帮助你理解它们在实践中的差异。读完本文后,你将清楚地知道在数据预处理流程中何时该使用哪一种方法。熟悉归一化和标准化将有助于你提升模型性能、更准确地解释结果,并避免因未缩放数据而引发的常见陷阱。这些细微差别在机器学习领域中极为重要。
理解特征缩放(Feature Scaling)
归一化和标准化都属于“特征缩放”这一概念或范畴。特征缩放是为机器学习模型准备数据时的重要步骤。它涉及将数据集中各特征的值转换到相似的尺度上,以确保所有特征在模型的学习过程中具有同等的贡献度。
特征缩放之所以重要,是因为当特征处于截然不同的尺度上时(例如一个特征范围是1到10,另一个是1,000到10,000),模型可能会优先考虑数值较大的特征,从而导致预测偏差。这会导致模型性能下降,并在训练过程中收敛速度变慢。
特征缩放通过在不扭曲数值间差异的前提下调整数据范围来解决这些问题。有多种缩放技术,其中最常用的是归一化和标准化。这两种方法都能通过平衡特征的影响、减少异常值的干扰,并在某些情况下加快收敛速度,从而帮助机器学习模型达到最佳性能。
什么是归一化?
归一化是一个宽泛的概念,有多种方式可以对数据进行归一化。通常来说,归一化指的是将不同尺度上测量的值调整到一个共同的尺度上。有时用例子说明效果更好。在下面每种归一化类型中,我们都将以一个模型为例,用于理解房屋价格与其面积之间的关系。
归一化的类型
让我们看看一些主要类型。请注意,以下并非详尽无遗的列表:
最小-最大归一化(Min-max normalization)
使用最小-最大归一化时,我们可以将房屋面积重新缩放到0到1的范围内。这意味着最小的房屋面积将表示为0,最大的房屋面积将表示为1。
对数归一化(Log normalization)
对数归一化是另一种归一化技术。通过应用对数变换到房屋价格上,这种技术有助于减小高房价的影响,尤其是在价格之间存在显著差异的情况下。
小数定标归一化(Decimal scaling)
小数定标归一化是另一种归一化技术。在此例中,我们可以通过移动小数点位置来调整房屋面积,使数值变得更小。这意味着房屋面积被转换到一个更易处理的尺度上,同时保留其相对差异。
均值归一化(Mean normalization,即均值中心化)
在此上下文中,均值归一化意味着通过从每个房屋的价格中减去平均价格来调整房价。这一过程将价格以零为中心,显示每套房屋的价格相对于平均值的高低。通过这种方式,我们可以分析哪些房屋面积大于或小于平均水平,从而更容易解释其相对价格。
何时应该对数据进行归一化?
正如你从上述例子中可能推断出的那样,当数据分布未知或不符合高斯分布时,归一化尤其有用。房屋价格就是一个很好的例子,因为有些房子非常非常昂贵,而模型并不总能很好地处理异常值。
因此,归一化的目标是构建更好的模型。我们可能会对因变量进行归一化,使误差分布更均匀;或者对自变量进行归一化,以确保尺度较大的特征不会主导尺度较小的特征。
归一化在以下场景中最有效:
- 未知或非高斯分布:当数据分布未知或不符合正态(高斯)分布模式时。例如在线性回归中,我们可能希望对因变量进行归一化,使其更接近钟形曲线,从而增强对估计结果的信心。
- 基于距离的算法:在使用依赖于数据点之间距离的机器学习算法(如k近邻算法 k-NN)时,需要进行归一化,以防止尺度较大的特征主导距离计算。
什么是标准化?
虽然归一化将特征缩放到特定范围内,但标准化(也称为z-score标准化)则将数据转换为均值为0、标准差为1的形式。该过程通过减去均值并除以标准差来调整特征值。你可能听说过“中心化和缩放”数据的说法,而标准化指的就是同样的操作:先中心化,再缩放。
标准化的公式如下:
其中:
- 是原始值,
- 是该特征的均值,
- 是该特征的标准差。
该公式以一种方式重新缩放数据,使其分布具有均值0和标准差1。
何时应该对数据进行标准化?
标准化在以下情况下最为合适:
- 基于梯度的算法:支持向量机(SVM)需要标准化数据才能获得最佳性能。虽然线性回归和逻辑回归等模型并不假设必须进行标准化,但当特征的量级差异很大时,标准化仍可带来益处,有助于确保每个特征的贡献均衡,并改善优化过程。
- 降维技术:在主成分分析(PCA)等降维技术中需要进行标准化,因为PCA会识别数据中方差最大的方向。仅进行均值中心化是不够的,因为PCA同时考虑均值和方差,而不同特征尺度会扭曲分析结果。
归一化 vs. 标准化:关键区别
有时很难区分归一化和标准化。一方面,“归一化”有时被用作一个更通用的术语,而“标准化”的含义则更为具体或技术性更强。此外,即使熟悉这些术语的数据分析师和数据科学家,在区分使用场景时也可能感到困惑。
尽管两者都是特征缩放技术,但它们在方法和应用场景上有所不同。理解这些差异对于为你的机器学习模型选择合适的技术至关重要。
重缩放方法
归一化将特征值重缩放到一个预定义的范围内(通常为0到1),这在特征尺度差异很大的模型中特别有用。相比之下,标准化将数据围绕均值(0)居中,并根据标准差(1)进行缩放。
对异常值的敏感性
不同的归一化技术在处理异常值方面的效果各不相同。在某些情况下,均值归一化可以成功调整异常值的影响,但其他技术可能效果不佳。总体而言,归一化技术在处理异常值问题方面不如标准化有效,因为标准化明确依赖于均值和标准差。
使用场景
归一化广泛应用于k近邻(k-NN)等基于距离的算法中,因为在这些算法中,特征必须处于相同尺度上,以确保距离计算的准确性。另一方面,标准化对于支持向量机(SVM)等基于梯度的算法至关重要,并且常用于主成分分析(PCA)等降维技术中,因为在这些场景中保持正确的特征方差非常重要。
差异总结表
让我们通过一张汇总表来比较归一化和标准化的关键差异,以便更清晰地对比:
| 类别 | 归一化 | 标准化 |
|---|---|---|
| 重缩放方法 | 根据最小值和最大值将数据缩放到一个范围(通常为0到1) | 将数据围绕均值(0)居中,并按标准差(1)进行缩放 |
| 对异常值的敏感性 | 如果正确使用,某些归一化技术可帮助调整异常值,但效果因技术而异 | 标准化在处理异常值问题上是一种更一致的方法 |
| 常见算法 | 常用于k-NN和神经网络等要求数据处于一致尺度的算法 | 更适用于逻辑回归、SVM和PCA等要求特征具有共同尺度的算法 |
可视化差异
为了理解归一化和标准化之间的差异,通过可视化方式观察它们的效果以及对模型性能的影响会很有帮助。这里我包含了箱线图来展示这些不同的特征缩放技术。
在第一张图中,我对数据集中的每个变量都应用了最小-最大归一化。我们可以看到,没有任何值低于0或高于1。
归一化后的数据。作者供图
在第二张图中,我对每个变量都进行了标准化。我们可以看到,数据以零为中心。
标准化后的数据。作者供图
优缺点
优点包括提升模型性能和平衡特征贡献。然而,归一化可能因固定尺度而限制可解释性,而标准化也会使解释变得更加困难,因为数值不再反映其原始单位。在模型复杂性和模型准确性之间始终存在权衡。
线性回归中的归一化与标准化
让我们考虑一下归一化(此处指均值归一化)和标准化如何改变简单线性回归模型的解释。每个模型的R²或调整后的R²将保持不变,因此这里的特征缩放仅影响模型的解释。
| 应用的变换 | 自变量(房屋面积) | 因变量(房屋价格) | 解释 |
|---|---|---|---|
| 均值归一化 | 均值归一化 | 原始值 | 你预测的是原始房屋价格,对应于房屋面积相对于平均值的变化 |
| 标准化 | 标准化 | 原始值 | 你预测的是原始房屋价格,对应于房屋面积每变化一个标准差 |
| 均值归一化 | 原始值 | 均值归一化 | 你预测的是相对于平均值的房屋价格,对应于原始房屋面积每增加一个单位 |
| 标准化 | 原始值 | 标准化 | 你预测的是标准化后的房屋价格,对应于原始房屋面积每增加一个单位 |
| 均值归一化(两个变量) | 均值归一化 | 均值归一化 | 你预测的是相对于平均值的房屋价格,对应于房屋面积相对于平均值的变化 |
| 标准化(两个变量) | 标准化 | 标准化 | 你预测的是标准化后的房屋价格,对应于房屋面积每变化一个标准差 |
另外需要注意的是,在线性回归中,如果你对自变量和因变量都进行标准化,R²将保持不变。这是因为R²衡量的是因变量中由自变量解释的方差比例,无论变量是否标准化,这一比例都保持不变。然而,对因变量进行标准化会改变RMSE(均方根误差),因为RMSE的单位与因变量相同。由于y现在已被标准化,标准化后的RMSE会更低。具体来说,它将反映以标准化变量的标准差为单位的误差,而不是原始单位。
结论
特征缩放(包括归一化和标准化)是机器学习数据预处理中的关键组成部分。理解在何种情境下应用哪种技术,可以显著提升模型的性能和准确性。