【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)))
相关推荐
暗黑小白3 分钟前
第二篇:不碰模型,意图识别快 9 倍 —— P0→P1→P2 流水线设计
人工智能·架构·ai agent
半导体守望者4 分钟前
AE AZX射频调谐器射频负载匹配(调谐)原理PPT
学习·机器人·自动化·制造·模块测试
happyprince7 分钟前
07_verl-Trainer模块详解
人工智能·架构·wpf·强化学习
花骨朵轻创11 分钟前
基于WeChatBot框架 API 封装的 Python SDK,提供简洁易用的接口调用方式
人工智能
deepdata_cn12 分钟前
面向AI Agent标准化工作环境构建的驾驭工程(Harness Engineering)
人工智能·harness engine
沪漂阿龙13 分钟前
Embedding:文本怎么变成向量?语义检索为什么能工作?
人工智能·python·embedding
me83215 分钟前
【AI面试】大模型面试60问(面试速记+详解)
人工智能·学习·ai
来自于狂人19 分钟前
第5章 记忆管理——让Agent记住事情
人工智能·算法·语言模型·自然语言处理
生信碱移20 分钟前
Vscode 连接 ipynb 选择内核无法自动显示 conda 环境对应的 python
服务器·人工智能·经验分享·vscode·python
lazy_ma21 分钟前
大模型实操-Spring Boot集成LangChain4j
人工智能·后端