【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)))
相关推荐
克里斯蒂亚诺更新9 小时前
LoRA和QLoRA(量化版)
人工智能
Ai思想家9 小时前
一次模型调用会留下什么:聚合平台的日志留存与数据边界
大数据·服务器·网络·人工智能
zhanghaha13149 小时前
Python进阶教程:24_Markdown 转 HTML 零基础超详细教程
开发语言·python·html
Fairy要carry9 小时前
初创实习-IMU模型
人工智能·算法·机器学习
枫叶林FYL9 小时前
【群体智能集群控制工程实践】第1章 群体智能核心原理
人工智能·深度学习
2601_962299889 小时前
python脚本如何单元测试
python·单元测试·pytest·unittest·mock对象
是Yu欸9 小时前
实测openPangu-2.0-Pro:昇腾原生, 505B大模型的开源答卷
人工智能·开源·大模型·昇腾·pangu
女神下凡9 小时前
PyCharm 2026破解激活
ide·python·pycharm
FPGA开源工坊9 小时前
ISP图像处理--Bayer Raw格式
图像处理·人工智能·verilog·fpga·isp
2601_967659899 小时前
2026停车场巡检机器人排行:地下停车场夜间巡逻怎么选
人工智能·机器人