机器学习之数据变换——基于Scikit-Learn

《Python机器学习基础教程》笔记

一些算法,例如神经网络和SVM对数据缩放非常敏感,因此,通常的做法是对特征进行调节,使数据表示更适合于这些算法。Scikit-Learn中有4中数据变换方法,分别为:

1.StandardScaler:确保每个特征的平均值为0,方差为1,使所有特征都位于同一量级。

2.RobustScaler:工作原理与StandardScaler类似,但RobustScaler使用的是中位数和四分位数

3.MinMaxScale:计算每个特征的范围(最大值 - 最小值),移动数据,使所有特征都刚好位于0到1之间

4.Normalizer:将数据点投影到半径为1的圆上

随便写两行代码示例一下用法:

scaler = MinMaxScaler()
X_scaled = scaler.transform(X)

这里用的是MinMaxScale方法,如果要用其他几种,则将MinMaxScale改为需要的缩放方式即可,如下:

scaler = StandardScaler()
scaler = RobustScaler()
scaler = Normalizer()

需要注意的是,使用MinMaxScale变换时,能保证训练集缩放到0到1之间,但测试集不一定在此范围。因为最小值和最大值是根据训练集定的,测试集的某些数据可能在此范围外。

你可能感兴趣的:(机器学习之数据变换——基于Scikit-Learn)