【Python机器学习】预处理对监督学习的作用

还是用cancer数据集,观察使用MinMaxScaler对学习SVC的作用。

首先,在原始数据上拟合SVC:

python 复制代码
cancer=load_breast_cancer()
X_train,X_test,y_train,y_test=train_test_split(
    cancer.data,cancer.target,random_state=0
)
svm=SVC(C=100)
svm.fit(X_train,y_train)
print('test set accuracy:{:.2f}'.format(svm.score(X_test,y_test)))

下面先用MinMaxScaler对数据进行缩放,然后再拟合SVC:

python 复制代码
scaler=MinMaxScaler()
scaler.fit(X_train)
X_train_scaler=scaler.transform(X_train)
X_test_scaler=scaler.transform(X_test)

svm.fit(X_train_scaler,y_train)

print('Scaler test set accuracy:{:.2f}'.format(svm.score(X_test_scaler,y_test)))

可以发现,数据缩放的作用非常显著。虽然数据缩放不涉及任何复杂的数据,但良好的做法仍然是使用scikit-learn提供的缩放机制,而不是自己重新实现它们,因为即使在这些简单的计算中也容易犯错。

还可以通过改变使用的类将一种预处理算法替换成另一种,因为所有的预处理类都具有相同的接口,都包含fit和transform方法:

python 复制代码
scaler=StandardScaler()
scaler.fit(X_train)
X_train_scaler=scaler.transform(X_train)
X_test_scaler=scaler.transform(X_test)

svm.fit(X_train_scaler,y_train)

print('SVM test accuracy:{:.2f}'.format(svm.score(X_test_scaler,y_test)))
相关推荐
黑客思维者几秒前
PyAutoGUI 模拟鼠标键盘:原理解析 + 工程实践案例 + 踩坑指南
python·pyautogui
努力的BigJiang几秒前
D435i相机-使用红外双目模式记录
python
旧梦吟2 分钟前
脚本 手机跑.简易go服务器
python·golang·css3
诸葛思颖4 分钟前
Beta 分布学习笔记
笔记·学习·概率论
葡萄城技术团队5 分钟前
Wyn商业智能:问答式自助BI工具如何重塑企业数据分析模式?
人工智能·数据挖掘·数据分析
aprilaaaaa5 分钟前
(HaloOS 基于TC397学习笔记)一、环境搭建到编译demo成功
python·学习·dds·tc397
CodingCos6 分钟前
【PCIe 总线及设备入门学习专栏 9.1 -- PCIe AER 中的 aer_layer 与 aer_agent】
网络·学习
云霄星乖乖的果冻8 分钟前
02预备知识——李沐《动手学深度学习》个人笔记
人工智能·笔记·深度学习
工藤学编程8 分钟前
零基础学AI大模型之LangChain Retriever
人工智能·langchain
知识分享小能手10 分钟前
CentOS Stream 9入门学习教程,从入门到精通,CentOS Stream 9 使用 LNMP 架构部署网站 —— 语法详解与实战案例(12)
学习·架构·centos