【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)))
相关推荐
山东云弈创峰科技17 小时前
山东云弈创峰:跨境电商AI自动化中的环境隔离与风控架构
人工智能·架构·自动化
水如烟17 小时前
孤能子视角:三十六计之反客为主——拓扑结构重构
人工智能
世界哪有真情17 小时前
拿人类意识卡 AI?等于用 bug 验收正式产品
前端·人工智能·后端
故乡de云17 小时前
IntelliJ IDEA 接入 Code0:OpenAI 兼容接口的配置、模型名与常见错误排查
人工智能
cd_9492172117 小时前
为什么AI3D创作中贴图材质尤为重要?因为它决定模型能否成为可用资产
人工智能·3d·贴图
智圣新创0117 小时前
重构沉浸式育人链路:智圣新创智慧学生社区平台建设的行业全域参考
大数据·人工智能·重构
Proaiapi17 小时前
GPT-5.6 使用指南:从 ChatGPT 到 Codex,AI 开发进入 Agent 时代
人工智能·gpt·chatgpt
冬奇Lab18 小时前
MCP 系列(07):企业级部署——安全、认证与版本管理
人工智能·llm·mcp
老余说AI18 小时前
AI声音克隆的“冰与火之歌“:你的声音正在被谁盗用?
人工智能·跨境电商·soundview
ywl47081208718 小时前
【SpringAI 09】SpringAI入门
人工智能·springai