机器学习训练营——机器学习爱好者的自由交流空间(入群联系qq:2279055353)
sklearn.preprocessing
包提供了几个常用的函数和转换类,用它们将一个原始的特征向量转化为一个更适于数据分析的表示形式。一般来说,学习算法收益于数据集的标准形式。如果数据中存在异常点,稳健的数据规范或转换是更适合的。
数据标准化
对于大多数机器学习算法来说,数据集的标准化是基本要求。这是因为,如果特征并不服从或者近似服从标准正态分布(即,零均值、单位标准差的正态分布)的话,算法的表现会大打折扣。实际上,我们经常忽略数据的分布形状,而仅仅做零均值、单位标准差的处理。例如,在一个机器学习算法的目标函数里的很多元素(例如,SVM的RBF核)假设所有特征都近似零均值,方差具有相同的阶。如果某个特征的方差的数量级大于其它的特征,那么,这个特征可能在目标函数中占主导地位,这使得估计量不能从其它特征有效地学习。
scale
函数提供了一种快速简单的数据标准化操作。
from sklearn import preprocessing
import numpy as np
X_train = np.array([[ 1., -1., 2.],
[ 2., 0., 0.],
[ 0., 1., -1.]])
X_scaled = preprocessing.scale(X_train)
X_scaled
标准化后的数据具有0均值、1标准差。