【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)))
相关推荐
月与清酒几秒前
2026年10月AI大模型全景对比:GPT-6、Claude 5.5、Gemini 4、DeepSeek V4.1到底差在哪
人工智能·gpt·ai
来自于狂人7 分钟前
AI前沿速递|AI自己“进化“操作界面干翻GPT-5.5!8B“流体模型“提速2.54倍,清华让Agent学会“收拾记忆“成本直降28%
人工智能·gpt
科技看点说23 分钟前
AI画面不廉价:质感的三层来源详解
人工智能
秦先生在广东32 分钟前
Agentic Awesome Skills 解析:构建本地优先的 Agent 技能控制平面
人工智能
径硕科技JINGdigital36 分钟前
企业搭建 AI 模型网关,该选择哪些支持多模型接入与统一治理的平台?
人工智能
甲维斯38 分钟前
国产Flash大乱斗【1】:DS和MiniMax挺起胸膛!
人工智能
阿里云大数据AI技术42 分钟前
StarRocks × Paimon C++:加速湖上数据分析
大数据·人工智能
秦先生在广东1 小时前
多智能体统一架构:拆解 wshobson/agents 的跨工具插件适配机制
人工智能
秦先生在广东1 小时前
Graphify:基于本地确定性 AST 解析的代码知识图谱探索
人工智能
云舜言传1 小时前
Bloom 手势演示操作 · 录屏指南
javascript·深度学习·机器学习