【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)))
相关推荐
chuan.bai3 分钟前
Java RAG 实战(第 11 篇):RAG 知识工作台网页
java·开发语言·人工智能
Terra.K3 小时前
Java异常学习[特殊字符]
java·开发语言·学习
fthux3 小时前
招聘季实测:我用 TraeWork 搭了一套 AI 简历初筛系统
人工智能·ai编程·trae
SLD_Allen3 小时前
NVIDIA KAI Scheduler深度解析——Kubernetes原生AI调度器的架构、原理与实践
人工智能·架构·kubernetes
小玮看世界3 小时前
从“画图”到“Mermaid”:AI语义理解与架构绘制的演进之路
人工智能·深度学习·计算机视觉
安_3 小时前
如何构建和使用向量索引?HNSW 和 IVF 有什么区别?
python·ai
小岐AI观4 小时前
智赋岐黄适合养生馆吗?
大数据·人工智能·物联网
YOLO数据集集合4 小时前
煤炭物料检测数据集:基于YOLO26的矿山传送带智能“哨兵”
人工智能·yolo·数据挖掘·煤炭·煤炭检测·矿山传送带·传送带异物
深小乐4 小时前
DeepSeek Harness 强是真的强,普通用户可以再等等
人工智能