【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)))
相关推荐
深海鱼在掘金1 分钟前
深入浅出 LangChain —— 第十章:上下文工程与安全护栏
人工智能·langchain·agent
qcx234 分钟前
【AI Agent通识九课】 04 · AI 的双车道 — 安全怎么保
人工智能·安全·agent·ai agent·warp
●VON4 分钟前
猫咪专注 CatFocus 技术博客:一款鸿蒙原生自律计时工具的设计与实现
学习·华为·harmonyos·von·猫咪专注
这张生成的图像能检测吗5 分钟前
(论文速读)CPC-DG:基于分类器预测一致性和领域泛化的旋转机械跨域故障诊断方法
人工智能·机器学习·故障诊断
向日葵花籽儿6 分钟前
斯坦福 CS146S - Wk01 编码入门 LLM 和人工智能开发
人工智能
lbb 小魔仙8 分钟前
Ubuntu 22.04 + Windows 本地部署 AI 大模型完全指南:Ollama + Python 调用实战(附国内加速配置)
人工智能·windows·python·ubuntu
IT老兵20259 分钟前
nvidia nemo-toolkit框架应用问题汇总
人工智能·python·机器学习·nemo
shamalee13 分钟前
2026高效会议纪要:Gemini3.1Pro一键搞定
人工智能
qq_1601448714 分钟前
零基础两个月后,我拿到了AI应用方向的offer,低门槛转行真实路径
人工智能
alwaysrun15 分钟前
Agentic AI与思维链和自我反思简介
人工智能·agent·思维链·思维树·自我反思