背景
所谓的机器学习,目前还是基于统计的,有监督的。所以数据的预处理则显得尤其重要。
今天我们利用sklearn的preprocess来进行数据的预处理。
以前写过一篇关于特征缩放的,其实本质也是特征预处理,使得标准化。
这里主要是巩固,同时结合sklearn里的代码来实操。
预处理之: 标准化z-score
方法
x ′ = x − μ σ x' = \dfrac{x - \mu}{\sigma} x′=σx−μ
翻译公式为:(x-mean)/std 计算时对每个属性/每列分别进行。
意义
将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。
实战
import sklearn.preprocessing as preprocessor
scaler = preprocessor.StandardScaler()
z_x = scaler.fit_transform(x) #标准化
print(z_x)
print("mean:",z_x.mean(axis=0))
print("std:",z_x.std(axis=0))
预处理之:归一化
方法
就是把属性缩放到0-1之间。
x ′ = x − m i n ( x ) m a x ( x ) − m