【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)))
相关推荐
Talordata几秒前
從失控的價格爬蟲到可控的數據管線:一個跨境品牌數據團隊的重構手記
大数据·人工智能·ai·数据挖掘
chuntian_tester7 分钟前
测试中的提示词工程
人工智能·测试工具·ai
锋行天下23 分钟前
LangChain / LangGraph 生产环境错误处理
人工智能
鹏哥带你干乡墅29 分钟前
优选乡墅赋能培训平台如何帮助提升乡村建设?
大数据·人工智能·python
冬奇Lab32 分钟前
一天一个开源项目(第209篇):holaOS - Agent 原生的本地工作台
人工智能·开源·agent
江畔柳前堤33 分钟前
前台·中台·后台:2026年AI原生时代的架构全景图
开发语言·人工智能·算法·机器学习·架构·scala·ai-native
AI服务老曹35 分钟前
模型版本管理完整流程:景区文旅项目从0到1怎么做
大数据·人工智能
冬奇Lab37 分钟前
Code Agent 解剖(21):从零扩展——接入新的 LLM Provider
人工智能
那个松鼠很眼熟w39 分钟前
4.Spring-Ai入门案例
java·人工智能·spring
巫山老妖42 分钟前
讲不清楚,是因为你还没想清楚
人工智能·程序员