数据预处理
1.数据转换方法
sklearn提出了两种标准的格式化数据方法:fit and multiple transform(推荐优先选择); combined fit-and-transform(对绘图和汇总处理效果好)
1.1 调整数据尺度
如果数据的各个属性按照不同的方式度量数据,那么通过调整数据的尺度让所有属性按照相同的尺度来度量数据,即将数据的所有属性标准化,并将数据转换到0,1之间。
对于梯度下降算法非常有用,对于回归算法、神经网络算法和K近邻算法的准确度提高也起到很重要的作用。
读入数据
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
data=pd.read_csv("pima_data.csv",names=names)
调整数据尺度
#归调整数据尺度
#将数据分为输入和输出
array=data.values
X=array[:,:8]
Y=array[:,8]
transformer=MinMaxScaler(feature_range=(0,1))
#数据转换
newX=transformer.fit_transform(X)
结果:
1.2 正态化数据
有效处理符合高斯分布的数据的手段,sklearn的StandardScaler处理
#正态化
transformer=StandardScaler().fit(X)
newX=transformer.transform(X)
结果:
1.3 标准化数据
将每一行数据的距离处理成1,适合处理稀疏数据(具有很多为0的数据),归一化处理的数据对使用权重输入的神经网络和使用距离的K近邻算法的准确性的提升有显著作用。
#标准化
transformer=Normalizer().fit(X)
newX=transformer.transform(X)
结果
1.4 二值数据
二值数据是使用值将数据转化为二值,大于阈值设置为1,小于阈值设置为0
#二值数据
transformer=Binarizer(threshold=0.0).fit(X)
newX=transformer.transform(X)
结果:
内容参考《机器学习python实践》魏贞原, 2018.