【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)))
相关推荐
m沐沐3 分钟前
【深度学习】dlib 人脸关键点实时疲劳检测
人工智能·深度学习·计算机视觉·疲劳检测·关键点检测·人脸检测·dlib
a1117764 分钟前
SLAM 学习笔记(四)后端(KF BA)
笔记·学习
一个处女座的程序猿6 分钟前
AI之Tool:Flint(酷炫可编辑图表)的简介、安装和使用方法、案例应用之详细攻略
人工智能·chart·flint
阿演11 分钟前
DataDjinn v0.2.11:SQL 编辑、AI 协作和表格操作继续打磨
数据库·人工智能·sql
大海变好AI13 分钟前
专业的智能体算力架构高性价比品牌公司
python
私人珍藏库17 分钟前
[Android] PocketPal -本地离线AI助手+大模型部署神器
android·人工智能·app·软件·多功能
止语Lab18 分钟前
「诚实」是新的「聪明」——Claude 4.8 对 AI 评价体系的三重追问
人工智能
智慧景区与市集主理人26 分钟前
巨有科技智慧康养|避开康养文旅内卷,做能变现的疗愈数字化
大数据·人工智能·科技
新知图书28 分钟前
文档感知任务定义与分类
人工智能·agent·ai agent·智能体
江华森30 分钟前
深入理解 Flask 实现原理
后端·python·flask