【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)))
相关推荐
AI_AGENT_DEV_AI9 小时前
AI 智能体的开发费用
人工智能
zhenaibo5219 小时前
摘要、研究背景、文献综述AI风险高,怎么优化?
人工智能·深度学习·自然语言处理
Eloudy9 小时前
预词力:LLM 的唯一形式化能力
人工智能·算法·agent
weixin_431600449 小时前
NestJS 入门(10):日志——为什么常用 Winston?
后端·学习·日志·nest.js·winston
XDevelop AI智能应用软件开发9 小时前
AI演进下的“第五次软件危机”与软件工程重塑
人工智能·软件工程·ai编程·软件危机
何事误红尘9 小时前
ZYNQ学习ARM裸机笔记():VITIS
学习
企鹅的企9 小时前
2027北京AI健康科技与智慧医疗展官方从速锁定
人工智能·科技·机器人
中科高级技工学校9 小时前
乌鲁木齐美术艺考技校实践分享
人工智能·python
小相会自律9 小时前
DeepSeek V4 Pro 正式版深度解析:Agent能力跃升、双生态API与峰谷定价全解读
人工智能
geneculture9 小时前
序位逻辑化解数据要素市场三元悖论(确权难、估值难、流通难)
人工智能·融智学应用场景·人机协同·序位逻辑·联动函数·人机互助