【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)))
相关推荐
_Jimmy_几秒前
FastAPI + SQLAlchemy全局事务管理
python·fastapi
用户8356290780518 分钟前
如何使用 Python 在 Excel 中添加、编辑和删除超链接
后端·python
甲维斯16 分钟前
Kimi K3 修Bug,越修越多!
人工智能
Litluecat27 分钟前
2026年7月20日科技热点新闻
人工智能·科技·新闻·每日·速览
达达尼昂30 分钟前
AI 编程的工程化实践:Flutter AI Harness 的设计与落地
人工智能·后端·全栈
廋到被风吹走34 分钟前
【AI】从“卖能力“到“卖信任“,合规与安全成为新战场
人工智能·安全
蓝速科技1 小时前
蓝速科技 3D 全息舱展览馆落地实测:降噪算力与成像质量深度评测
人工智能·科技·3d
小小测试开发1 小时前
PromptFoo 源码分析与工程实战:LLM 测试框架的架构与最佳实践
人工智能·架构
IT_陈寒1 小时前
React的useEffect依赖项把我坑惨了
前端·人工智能·后端
dozenyaoyida1 小时前
AI与大模型新闻日报 | 2026-07-22
人工智能·搜索引擎·新闻·gpt-5.6·claude fable5