主要是用到了统计学的方法去预处理数据
# 调整数据尺度(0..)
from pandas import read_csv
from numpy import set_printoptions
from sklearn.preprocessing import MinMaxScaler#调整数据尺度,将不同计量单位数据统一成相同尺度
from sklearn.preprocessing import StandardScaler#正态化数据
from sklearn.preprocessing import Normalizer#“归一元”处理
from sklearn.preprocessing import Binarizer#二值数据
# 导入数据
filename = 'D:\example\MachineLearning-master\pima_data.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
# 将数据分为输入数据和输出结果
array = data.values
X = array[:, 0:8]#取二维数组中第1(m)维到7维(第n-1维,8-1)的所有数据,相当于取第1(m)列到第7(n-1,8-1)列的所有数据
Y = array[:, 8]#取二维数组中第7(8-1)维的所有数据,相当于取第7(8-1)列的所有数据
scaler = MinMaxScaler(feature_range=(0, 1))#数据标准,聚集到0附近,方差为1
rescaledX = scaler.fit_transform(X)# 数据转换
set_printoptions(precision=3)# 设定数据的打印格式,打印精度为3
print(rescaledX)
scaler = StandardScaler().fit(X)# 正态分布数据转换
rescaledX = scaler.transform(X)# 数据转换
set_printoptions(precision=3)# 设定数据的打印格式,打印精度为3
print(rescaledX)
scaler = Normalizer().fit(X)# 标准化数据
rescaledX = scaler.transform(X)# 数据转换
set_printoptions(precision=3)#设定数据的打印格式,打印精度为3
print(rescaledX)
transform = Binarizer(threshold=0.0).fit(X)
# 数据转换
newX = transform.transform(X)
# 设定数据的打印格式
set_printoptions(precision=3)
print(newX)
'''
MinMaxScaler:提高与距离相关的算法准确度(如K近邻算法)
StandardScaler:有效的处理高斯分布的数据手段,输出结果为0为中位数,方差为1
Normalizer: “归一元” 适合处理稀疏数据(具有很多为0的数据)
归一化处理的数据对使用权重输入的神经网络和使用距离K近邻算法准确度有显著提高。
二值化数据 大于阀值设置为1,小于阀值设置为0,用于图像处理多
在生成明确或特征工程增加属性的使用
'''