【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)))
相关推荐
AC赳赳老秦1 分钟前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
AI袋鼠帝4 分钟前
终于找到一键做爆款AI短视频的办法了!OiiOii 2.0升级实测【保姆级教程】
人工智能·aigc
双翌视觉4 分钟前
机器视觉系统为何离不开光学滤光片?
人工智能·数码相机·视觉检测·制造
Database_Cool_7 分钟前
什么是数据仓库物化视图?AnalyticDB MySQL 实时物化视图能力解析
人工智能·mysql·阿里云
2601_954706498 分钟前
云手机技术详解+Python实战调用|2026高稳云手机平台推荐
开发语言·python·智能手机
chushiyunen9 分钟前
java中的路径处理、左右斜杠
java·开发语言·python
o_insist11 分钟前
LangGraph 入门:用 StateGraph 构建 Agent 的五步流程
人工智能·agent
用户6324150317812 分钟前
Next.js App Router 里做 AI 流式输出
人工智能
星落zx16 分钟前
Spring Boot 多模型集成:优雅调用全球主流大模型
人工智能·spring boot·chatgpt
m0_3801671422 分钟前
面向开发者的Top10加密货币数据API(2026年最新)
大数据·人工智能·区块链