📜  StandardScaler、MinMaxScaler 和 RobustScaler 技术 – ML(1)

📅  最后修改于: 2023-12-03 14:47:42.512000             🧑  作者: Mango

StandardScaler、MinMaxScaler 和 RobustScaler 技术介绍

在机器学习建模过程中,为了保证各特征数据的一致性和准确性,常常需要对特征数据进行标准化或者缩放。本文将介绍三种经典的特征标准化或缩放方法:StandardScaler、MinMaxScaler 和 RobustScaler。

1. StandardScaler

StandardScaler 实现的是将特征数据的分布调整为均值为0、方差为1的标准正态分布。它通过去除特征数据的均值并缩放到单位方差来实现标准化。可以用于处理存在异常值的数据,因为它不受异常值的影响。

使用 StandardScaler,以下是示例代码:

from sklearn.preprocessing import StandardScaler

# 定义 StandardScaler 对象
scaler = StandardScaler() 

# 训练并转换特征数据集
X = scaler.fit_transform(X)
2. MinMaxScaler

MinMaxScaler 实现的是将特征数据缩放到指定的最大值和最小值之间,通常是0到1之间,可以看作是一种离线程度较低的StandardScaler。它通过计算公式 (X - X_min)/(X_max - X_min) 来实现特征缩放。两个最常用的用途是图像处理中对比度的调节以及神经网络中将输入数据缩放到指定范围(通常用于归一化处理)。

使用 MinMaxScaler,以下是示例代码:

from sklearn.preprocessing import MinMaxScaler

# 定义 MinMaxScaler 对象
scaler = MinMaxScaler(feature_range=(0, 1))

# 训练并转换特征数据集
X = scaler.fit_transform(X)
3. RobustScaler

RobustScaler 实现是类似于 StandardScaler 和MinMaxScaler 的特征缩放,但它使用统计中位数和四分位数,因此对异常值更加健壮,通常用于处理有异常值的数据。该Scaler的计算公式为 (X - Q2)/(Q3 - Q1),其中 Q1 和 Q3 分别是数据的第一个和第三个四分位数,Q2 是数据的中位数。

使用 RobustScaler,以下是示例代码:

from sklearn.preprocessing import RobustScaler

# 定义 RobustScaler 对象
scaler = RobustScaler()

# 训练并转换特征数据集
X = scaler.fit_transform(X)

以上就是三种特征标准化或者缩放方法的介绍以及实现示例代码。在机器学习建模过程中,要根据数据的实际情况而选择适合的缩放器。