在获取到数据集后会发现有的数据时有噪声,有异常,数据出错,量纲不一。
数据预处理的目的是让数据适应模型,匹配模型的需求,决定了后期数据输出的质量和价值。接下来演示下如何使用 sklearn 进行数据预处理。
数据归一化
数据归一化是将数据数据 x 按照最小值中心化后,再按照(最大值-最小值缩放),将数据收敛到[0,1]之间
import pandas as pdfrom sklearn.preprocessing import MinMaxScaler# 创建数据集df = pd.DataFrame([[0,1],[-2,1],[5,10],[1,18]])# 实例化scaler = MinMaxScaler()# 使用fit训练模型scaler = scaler.fit(df)# 使用transform导出结果result = scaler.transform(df)result
array([[0.28571429, 0. ], [0. , 0. ], [1. , 0.52941176], [0.42857143, 1. ]])
数据标准化
将 x 按照均值中心化后,在按照标准差缩放,数据服从均值为 0 方差为 1 的正态分布。
公式为:(x-均值)/标准差
from sklearn.preprocessing import Stand