数据预处理

  • 导入数据
  • 按照算法的输入和输出整理数据
  • 格式化输入数据
  • 总结显示数据的变化

scikit-learn提供两种标准的格式化数据的方法:

适合和多重变换(Fit and Multiple Transform)

适合和变换组合(Combined Fit-and-Transform)

下面介绍4种scikit-learn中对数据进行预处理的方法

1.调整数据尺度

将数据按比例转换成0和1之间的数,在scikit-learn中,可以通过MinMaxScaler类来调整数据尺度

from pandas import read_csv
from numpy import set_printoptions
from sklearn.preprocessing import MinMaxScaler

# 导入数据
filename='pima_data.csv'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
dataset=read_csv(filename,names=names)
# 将数据分成输入数据和输出数据
array=dataset.values
X=array[:, 0:8]
Y=array[:, 8];
# 数据转换
transformer=MinMaxScaler(feature_range=(0,1))
news=transformer.fit_transform(X)
set_printoptions(precision=3)
print(news)

2.正态化数据

正态化数据是有效的处理符合高斯分布的数据的手段,输出结果以0为中位数,方差为1.

可以通过scikit-learn提供的StandardScaler类来处理

from pandas import read_csv
from numpy import set_printoptions
from sklearn.preprocessing import StandardScaler

# 导入数据
filename='pima_data.csv'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
dataset=read_csv(filename,names=names)
# 将数据分成输入数据和输出数据
array=dataset.values
X=array[:, 0:8]
Y=array[:, 8];
# 数据转换
transformer=StandardScaler()
news=transformer.fit_transform(X)
set_printoptions(precision=3)
print(news)

3.标准化数据

标准化数据处理是将每一行的数据的距离处理成1,又叫作“归一元”处理,适合处理稀疏数据(具有很多为0的数据)

可以使用scikit-learn中的Normalizer类实现

from pandas import read_csv
from numpy import set_printoptions
from sklearn.preprocessing import Normalizer

# 导入数据
filename='pima_data.csv'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
dataset=read_csv(filename,names=names)
# 将数据分成输入数据和输出数据
array=dataset.values
X=array[:, 0:8]
Y=array[:, 8];
# 数据转换
transformer=Normalizer()
news=transformer.fit_transform(X)
set_printoptions(precision=3)
print(news)

4.二值数据

将数据转化 为二值,大于阈值(threshold)设置为1,小于阈值设置为0。

可以使用scikit-learn中的Binarizer类实现。

from pandas import read_csv
from numpy import set_printoptions
from sklearn.preprocessing import Binarizer

# 导入数据
filename='pima_data.csv'
names=['preg','plas','pres','skin','test','mass','pedi','age','class']
dataset=read_csv(filename,names=names)
# 将数据分成输入数据和输出数据
array=dataset.values
X=array[:, 0:8]
Y=array[:, 8];
# 数据转换
transformer=Binarizer(threshold=10.0)
news=transformer.fit_transform(X)
set_printoptions(precision=3)
print(news)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值