【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)))
相关推荐
光锥智能几秒前
安全筑基,WPS 365政务AI全产品体系首次亮相数博会
人工智能·安全·wps
chunmiao30321 分钟前
Gemini Omni 1.1 Flash 发布:场景扩展上限 40 秒,AI 视频生成转向可控
人工智能·音视频
chunmiao30323 分钟前
阿里全新Qoder上线:自然语言驱动开发,编程门槛再降一级
人工智能
天远数科3 分钟前
零信任架构实战:基于天远风控经营异常预警构建自动化企业准入网关
运维·人工智能·架构·自动化
Rocktech_ruixun4 分钟前
破人类记录!机器人如何跑得更快更稳?瑞迅科技RK3588机器人主板三大核心技术解析
人工智能·嵌入式硬件·机器人
E_ICEBLUE5 分钟前
Python 实现 Markdown 转 Word、PDF:从转换到页面设置
python·pdf·word·markdown·格式转换
chunmiao30326 分钟前
英伟达129亿美元收购Hugging Face,开源AI枢纽易主
人工智能·开源
哒咩哒咩1298 分钟前
Agent 智能体开发全攻略:从 ReAct 到企业级架构
python·langchain·fastapi