一、特征的缩放.
用scikit-learn的MinMaxScaler来缩放一个特征数组:
import numpy as np
from sklearn import preprocessing
feature=np.array([[-500.5],
[-100.1],
[0],
[100.1],
[900.9]])
#创建缩放器
minmax_scale=preprocessing.MinMaxScaler(feature_range=(0,1))
#缩放特征的值
scaled_feature=minmax_scale.fit_transform(feature)
scaled_feature

在机器学习中,缩放是一个很常见的预处理任务。后面很多算法都假设所有的特征是在同一取值范围中的,最常见的范围是[0,1]或[-1,1]。用于缩放的方法有很多,其中最简单的一种被称为min-max缩放。min-max缩放利用特征的最小值和最大值,将所有特征都缩放到同一个范围中。

scikit-learn的MinMaxScaler支持两种方式来缩放特征。第一种方式是使用fit计算特征的最小值和最大值,然后使用transform来缩放。第二种方式是使用fit_transform一次性执行上面所说两个操作。从数学上来说,这两种方式没有区别。但有时候将两个操作分开会带来一些好处,因为这样1我们就能对不同的数据集执行同样的转换。
二、特征的标准化
scikit-learn的StandardScaler能对一个特征进行转换,使其平均值为0,标准差为1。
import numpy as np
from sklearn import preprocessing
x=np.array([[-1000.1],
[-200.2],
[500.5],
[600.6],
[9000.9]])
#创建缩放器
scaler=preprocessing.StandardScaler()
#转换特征
standardized=scaler.fit_transform(x)
#查看特征
standardized

min-max缩放有一个常见的替代方案,就是将特征缩放为大致符合标准正态分布的。我们使用标准化方法来转换数据去实现这样的缩放,这样数据就能有一个等于0的平均值和一个等于1的标准差
。特征中的每个元素都会被转换

在主成分分析中标准化方法更有用,而在神经网络中则更推荐使用min-max缩放。
查看解决方案中最后输出的平均值和标准差,我们就能知道标准化的效果:
print("Mean:",round(standardized.mean()))
print("Standard deviation:",standardized.std())
![]()
如果数据中存在很大的异常值,可能会影响特征的平均值和方差,也会对标准化的效果造成不良影响。在这种情况下,使用中位数和四分位数间距进

本文介绍了数值型数据在机器学习中的预处理步骤,包括使用scikit-learn的MinMaxScaler和StandardScaler进行特征缩放和标准化,归一化观察值以保持一致的范数,生成多项式特征和交互特征,识别及处理异常值,以及特征离散化等方法。此外,还讨论了如何处理缺失值,包括删除和填充策略。
最低0.47元/天 解锁文章
1489

被折叠的 条评论
为什么被折叠?



