【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)))
相关推荐
马剑威(威哥爱编程)3 小时前
【HarmonyOS 7 小艺智能体实战】03:第一次建智能体——在小艺开放平台把骨架立起来
人工智能·华为·harmonyos
johnsong3 小时前
AI前沿日报 — 2026年10月23日:信任崩塌
人工智能
youdexiang3 小时前
Android录音APP高精度转写怎么选才不踩坑
人工智能·音视频
承渊政道3 小时前
HIL-UMI论文解读:用手持示范补齐机器人操作短板——对启元Q1机器人开发的启发
人工智能·深度学习·机器人·论文解读·具身智能·启元q1
解决问题no解决代码问题3 小时前
AI 研发:一致性漂移的加速陷阱
人工智能
启信慧眼.3 小时前
怎么用 AI 做供应商尽调
人工智能
视图猿人4 小时前
ROS2 nav2全局规划器和局部规划器参数说明
人工智能
俊哥V4 小时前
每日 AI 研究简报 · 2026-10-23
人工智能·ai
2401_832298104 小时前
与人工智能同行:机遇、挑战与未来选择
人工智能
lambo mercy4 小时前
什么是LangGraph?
人工智能