python:机器学习数据预处理结果对比及常用四种预处理方法对比介绍,为您的人工模型算法加油助力

机器学习算法中为什么要进行数据预处理。答案很简单,数据预处理能让机器学习算法学得更好、更快、更准。

举个通俗的比喻:数据预处理就像是机器学习模型的“备菜”环节。它不直接“炒菜”(训练模型),但它决定了食材(数据)的质量、状态和可用性。 没有它,再高级的算法也难为“脏数据”之炊。就像不做备菜(数据预处理),再好的厨师也很难用一堆混乱、状态不对的食材快速做出美味佳肴一样

今天和伙伴们一起系统的学习下数据预处理的方法,同通俗易懂的方式加深理解,帮助大家更高效的开展算法研究与应用工作。

目录

一、是否进行数据预处理的效果对比

二、常用数据预处理方法及对比

三、四种数据预处理方法程序及运行效果对比

四、工程应用选择建议表


一、是否进行数据预处理的效果对比

数据预处理的效果真的像上面说的那样吗?开始我们先用python给个简单的有无数据预处理的对比。

程序中使用MLP 神经网络对酒的数据集进行分类测试。数据预处理过程中用MinMaxScaler进行数据预处理。具体代码如下,有详细的注释。运行效果在代码的下面。

从运行效果看,未进行数据预处理模型得分0.29;数据预处理后的模型得分:1.00。效果对比是不是很显著啊。

#导人红酒数据集
from sklearn.datasets import load_wine
#导入MLP神经网络
from sklearn.neural_network import MLPClassifier
#导人数据集拆分工具
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import MinMaxScaler
#建立训练集和测试集
wine = load_wine ()
X_train , X_test , y_train , y_test = train_test_split(wine . data , wine . target ,
random_state=62)
#打印数据形态
print(X_train.shape , X_test.shape)

#设定MLP神经网络的参数
mlp = MLPClassifier(hidden_layer_sizes=[10, 10] , max_iter=400 ,random_state=62 )  #设定MLP 的隐藏层为2个, 每层有10个节点,最大迭代数为400并且指定了random state 的数值为62

#没有进行数据预处理
#使用MLP拟合数据
mlp . fit (X_train , y_train)
#打印模型得分
print ('未进行数据预处理模型得分{:.2f}'.format(mlp.score(X_test , y_test)))

#使用MinMaxScaler进行数据预处理
scaler = MinMaxScaler()
scaler.fit (X_train )
X_train_pp = scaler.transform (X_train )
X_test_pp = scaler.transform (X_test)
#重新训练模型
mlp.fit(X_train_pp , y_train)
#打印模型分数
print('数据预处理后的模型得分:{:.2f}'.format(mlp.score(X_test_pp , y_test)))

二、常用数据预处理方法及对比

StandardScaler、MinMaxScaler、RobustScaler、Normalizer是四种常用预处理方法,他们都在sklearn库里面,使用的时候确保安装该库文件。下面我们用通俗的方法分别介绍下四种方法,并给出应用对比建议。

1.StandardScaler:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仪器科学与传感技术博士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值