【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)))
相关推荐
你怎么知道我是队长16 小时前
计算机系统基础23---可靠性、校验码
学习
@蔓蔓喜欢你16 小时前
响应式图像:优化不同设备的图片展示
人工智能·ai
共绩算力16 小时前
第五辑:8 张「实用排版与风格化插画」——从尺码表到像素风
人工智能·共绩算力
明志数科16 小时前
2026年机器人数据行业趋势预测:5个关键变化与应对策略
机器学习·数据分析
萌新小码农‍16 小时前
Python的input函数
java·前端·python
NiceCloud喜云16 小时前
AutoClaw 接入自定义 Anthropic 端点:让 Kanban 工作流跑在自己的模型路由上
java·开发语言·c++·人工智能·python·eclipse·batch
No8g攻城狮16 小时前
【AI工具】Sub2API简介 – 开源 AI API 中转网关平台,支持多账户管理
人工智能·ai·开源·ai编程
geneculture16 小时前
信智序位驾驭质能时空的产业+生活方式
人工智能·数据挖掘·生活·融智学的重要应用·哲学与科学统一性·融智时代(杂志)
aqi0016 小时前
15天学会AI应用开发(一)搭建AI大模型应用开发环境
人工智能·python·大模型·ai编程·ai应用
aloha_78916 小时前
信息系统项目管理师选择题考前真题错题笔记汇总
java·笔记·学习·tomcat