【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)))
相关推荐
2401_832298101 分钟前
人工智能进入日常之后
人工智能
55873 生态系统1 分钟前
1817册典籍如何被AI读取?——“可复核文明知识库“的体系化构建实践
大数据·人工智能·55873全域文明生态体系·55873操作系统·全域文明生态系统·55873数字资产
汉堡大王95273 分钟前
单次输出拉到100万Token:拆完 Gemini 4 Argon 的续写协议,才看懂谷歌这7个月在憋什么
前端·人工智能·后端
秋秋小事6 分钟前
python 基础知识总结(一)
python
阿里云大数据AI技术13 分钟前
阿里云人工智能平台PAI多篇论文入选EMNLP2026
人工智能
蜗牛互联网17 分钟前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
xingyuzhisuan18 分钟前
一文读懂星宇智算 StarVerse-AI 无限画布,AI 视频场景的空间扩展方案
人工智能·计算机视觉
Zzj_tju19 分钟前
蒸馏推理过程,传递的是能力还是表达习惯?
人工智能·机器学习·自然语言处理
码点滴21 分钟前
接了五家大模型以后,业务代码开始失控:LiteLLM 如何把复杂度收进一个入口?
人工智能
临床数据科学和人工智能兴趣组29 分钟前
字符串转换为句子风格
大数据·数据库·人工智能·r语言·r语言-4.2.1