图像由 Unsplash 提供
在机器学习过程中,数据缩放属于数据预处理或特征工程。在用于模型构建之前缩放数据可以实现以下目的:
-
缩放确保特征值在相同范围内
-
缩放确保用于模型构建的特征是无量纲的
-
缩放可用于检测离群值
1. Google 网络安全证书 - 快速进入网络安全职业轨道。
2. Google 数据分析专业证书 - 提升您的数据分析技能
3. Google IT 支持专业证书 - 支持您的组织 IT
数据缩放有多种方法。其中两个最重要的缩放技术是归一化和标准化。
当数据使用归一化进行缩放时,转换后的数据可以使用此方程计算
其中 和 是数据的最大值和最小值。得到的缩放数据范围在 [0, 1] 之间。
使用归一化进行缩放可以使用下面的代码在 Python 中实现:
from sklearn.preprocessing import Normalizer
norm = Normalizer()
X_norm = norm.fit_transform(data)
图 1. 数据 X 的箱线图,值在 17.7 和 71.4 之间。图像由作者提供。
归一化后的 X 如下图所示:
图 2. 归一化后的 X 值在 0 和 1 之间。图像由作者提供。
理想情况下,当数据呈正态分布或高斯分布时,应使用标准化。标准化的数据可以按如下方式计算:
在这里, 是数据的均值,而 是标准差。标准化值通常应在[-2, 2]范围内,这代表 95%的置信区间。标准化值小于-2 或大于 2 的情况可以被视为异常值。因此,标准化可以用于异常值检测。
使用标准化进行缩放可以通过以下代码在 Python 中实现:
from sklearn.preprocessing import StandardScaler
stdsc = StandardScaler()
X_std = stdsc.fit_transform(data)
使用上述描述的数据,标准化数据如下所示:
图 3. 标准化 X。作者提供的图片。
标准化均值为零。从上面的图中我们可以观察到,除了少数几个异常值,大多数标准化数据都在[-2, 2]范围内。
总结一下,我们讨论了两种最流行的特征缩放方法,即标准化和归一化。归一化数据的范围在[0, 1],而标准化数据通常在[-2, 2]范围内。标准化的优点是它可以用于异常值检测。
本杰明·O·塔约 是一名物理学家、数据科学教育者和作家,同时也是 DataScienceHub 的所有者。此前,本杰明曾在中欧大学、大峡谷大学和匹兹堡州立大学教授工程学和物理学。