【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)))
相关推荐
hpoenixf3 分钟前
把 Agent 拆成三个进程,究竟换来了什么?从单体 Runtime 到独立宿主
人工智能
QXWZ_IA5 分钟前
具身智能巡检和无人机巡检怎么选?
人工智能·安全·无人机
hpoenixf7 分钟前
报告写完以后:让 Agent 查证、协作,再独立复核
人工智能
hpoenixf11 分钟前
Agent 运行身份全景:从一次聊天到 Model Turn,系统到底在继续什么?
人工智能
玩美数据20 分钟前
市场调研数据分析与数据集驱动的行业格局变革深度解析
大数据·人工智能
威哥爱编程21 分钟前
模拟面试智能体开发实战 05:给面试官接上题库和检索,题目结构化、大纲可溯源,AI 不再凭印象出题
python·agent·harmonyos
威哥爱编程22 分钟前
模拟面试智能体开发实战 06:答得好怎么追问、答得错怎么点破,追问引擎让面试官会深挖会纠错
python·agent·harmonyos
lucas_AI30 分钟前
AI 思考时非要「说人话」吗?哈工大团队让模型「用数据格式思考」,省 5 倍 token 还更准
人工智能
知行产研33 分钟前
紫创智械:工程机械具身智能的「非运输」破局者
人工智能
微订校园外卖系统1 小时前
校园代取快递系统选型:现成系统与定制开发的技术核对项
大数据·运维·人工智能·外卖系统·本地生活·微订