Python机器学习实战:特征缩放的3个方法

机器学习实战:这里没有艰深晦涩的数学理论,我们将用简单的案例和大量的示例代码,向大家介绍机器学习的核心概念。我们的目标是教会大家用Python构建机器学习模型,解决现实世界的难题。

什么是特征缩放?

特征缩放(feature scaling): 改变特征的取值范围,缩放到统一的区间,例如 [ 0 , 1 ] [0, 1] [0,1].

为什么要进行特征缩放?

数据集包含众多特征,每个特征的尺度(scale)不同,有的特征的单位是小时,有的特征的单位是公里,尺度不同也意味着变化的范围不同,有的特征的波动非常大,有的非常小。对大部分机器学习算法而言,特征取值越大或波动越大,在模型中获得的权重就越大,结果导致预测精度降低,最好的处理办法是将所有特征的尺度缩放到统一的区间。

如何用sklearn实现特征缩放?

sklearn提供了几个通用的接口:

  1. MinMaxScaler
  2. RobustScaler
  3. StandardScaler

参考:

  • sklearn官方文档
  • 如何使用MinMaxScaler和StandardScaler
  • sklearn实现Scale,Standardize,Normalize

1. MinMaxScaler

MinMaxScaler: 将特征尺度缩放到统一的区间,通常选择 [ 0 , 1 ] [0, 1] [0,1]

数学逻辑:对于给定的特征,计算其最大值和最小值,然后计算每个观测值在这个区间的所处的位置。

y i = x i − m i n ( x ) m a x ( x ) − m i n ( x ) y_i = \frac{x_i - min(x)}{max(x) - min(x)} yi=max(x)min(x)ximin(x)

  • y i y_i yi是经过缩放的第i个观测值
  • x i x_i xi是第i个原始观测值
  • min(x)和max(x)是最小值和最大值

MinMaxScaler只会改变特征的取值范围,不会改变分布

运用MinMaxScaler的最佳实践:

  1. 先在训练集调用M

你可能感兴趣的:(python,机器学习,python,机器学习,人工智能,大数据,数据分析)