Python数据建模与分析——Python数据预处理

个人学习笔记,课程为Python数学建模与分析:基础入门、数据处理、算法编程、高级绘图、建模实战!

目录

1.为什么需要数据预处理

2.如何数据预处理?

3.例一

4.例二

3.例三

4.例四


文中引入的csv文件:

链接:https://pan.baidu.com/s/1NWLzgAir70LQKUxv74lfIg?pwd=d2n5 
提取码:d2n5


1.为什么需要数据预处理

开始在真实世界中,数据通常是不完整的(缺少某些感兴趣的属性值)、不一致的(包含代码或者名称的差异)、极易受到噪声(错误或异常值)的侵扰的。因为数据太大而且数据集经常来自多个异种数据源,低质量的数据将导致低质量的挖掘结果。就像个大厨现在要做美味的蒸鱼,如果不将鱼进行去鳞等处理,一定做不成我们口中美味的鱼 。

2.如何数据预处理?

scikit-learn提供了两种标准的格式化数据的方法,每一种方法都有适用的算法。利用这两种方法整理的数据,可以直接用来训练算法模型,在scikit-learn的说明文档中,也有对这两种算法的说明:

适合和多重变化(推荐)
适合和变换组合

首先调用fit()函数来准备数据转换的参数,然后调用transform()函数来做数据的预处理。

调整数据尺度。

如果数据的各个属性按照不同的方式度量数据,那么通过调整数据的尺度让所有属性按照相同的尺度来度量数据,即将数据的所有属性标准化,并将数据转换到0,1之间。对于梯度下降算法非常有用,对于回归算法、神经网络算法和K近邻算法的准确度提高也起到很重要的作用。

统计学中,按照对事物描述的精确度,对所采取的尺度从低级到高级分成4个层次:定类尺度、定序尺度、定距尺度、定比尺度(MinMaxScaler)。

3.例一

数据缩放(MinMaxScaler)

使用算法:K近邻算法


from numpy import set_printoptions
from sklearn.preprocessing import MinMaxScaler
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分割
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#数据转换
transformer = MinMaxScaler(feature_range=(0,1))
newX = transformer.fit_transform(X)
#设置准确度
set_printoptions(precision=3)
print(newX)

4.例二

正态化数据(StandardScaler)

使用算法:线性回归、逻辑回归、判别分析

from numpy import set_printoptions
from sklearn.preprocessing import StandardScaler
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分割
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#数据转换
transformer = StandardScaler().fit(X)
newX =  transformer.transform(X)
#设置准确度
set_printoptions(precision=3)
print(newX)

3.例三

标准化数据

使用模型:神经网络、K近邻算法

from numpy import set_printoptions
from sklearn.preprocessing import Normalizer
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分割
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#数据转换
transformer = Normalizer().fit(X)
newX =  transformer.transform(X)
#设置准确度
set_printoptions(precision=3)
print(newX)

4.例四

二值数据(Binarizer)

from numpy import set_printoptions
from sklearn.preprocessing import Binarizer
from pandas import read_csv
filename = 'pima.csv'
names = ['preg', 'plas', 'pres', 'skin', 'test', 'mass', 'pedi', 'age', 'class']
data = read_csv(filename, names=names)
#数据分割
array = data.values
X = array[:, 0:8]
Y = array[:, 8]
#数据转换
transformer = Binarizer(threshold=0.0).fit(X)
newX =  transformer.transform(X)
#设置准确度
set_printoptions(precision=3)
print(newX)

  • 17
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值