【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)))
相关推荐
乐迪信息4 小时前
乐迪信息:港口船舶偏航难监管,AI智能监测实时发出预警提醒
大数据·人工智能·安全·计算机视觉·目标跟踪
捧 花4 小时前
从链式流程到复杂AI工作流的落地实战
人工智能
FL16238631294 小时前
遥感图像地块类型土地类型识别分割数据集labelme格式5704张6类别
人工智能
冬奇Lab4 小时前
一天一个开源项目(第131篇):Career-Ops - 基于 Claude Code 的 AI 招聘指挥中心
人工智能·求职
来自于狂人4 小时前
第一部分:破除迷信(入门篇)第1章 Agent不是黑科技
人工智能·科技
王小王-1234 小时前
基于深度学习的个性化音乐推荐系统的设计与开发
人工智能·深度学习·mysql·vue·推荐算法·个性化音乐推荐系统·音乐预测
ʜᴇɴʀʏ4 小时前
SSVOD 基础知识
人工智能·目标检测·计算机视觉
Esaka_Forever4 小时前
Lovable 无代码 AI 应用 / 网页全自动生成智能体平台
人工智能
程序员爱德华4 小时前
计算机视觉-自动驾驶
机器学习·计算机视觉·自动驾驶
现代野蛮人4 小时前
【深度学习】 —— 几种优化器对比实验
人工智能·深度学习·分类·tensorflow