sklearn数据集拆分与模型训练实战详解

拾光
拾光
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析使用sklearn进行机器学习项目的基本流程,涵盖数据导入、train_test_split拆分、SVC模型训练及分类报告生成。重点演示标签二值化、GridSearchCV网格搜索调参以及K折交叉验证的具体实现,帮助开发者掌握从数据预处理到模型评估的完整技能。

在研修课程中,我们将两个典型案例进行了整合分析。

以下主要演示整个流程的大致步骤:

核心环节包括:数据导入、数据集拆分、模型训练以及生成模型评估报告。

同时,我们需要关注以下几个关键问题:

第一,标签的二值化处理。

第二,利用网格搜索法进行参数调整。

第三,实施K折交叉验证。

第四,引入噪声特征(此前章节已涉及)。

from sklearn import datasets
#从cross_validation导入会出现warning,说已弃用
from sklearn.model_selection import train-test_split
from sklearn.grid_search import GridSearchCV
from sklearn.metrics import classification_report
from sklearn.svm import SVC
import sklearn.exceptioins
#导入鸢尾花数据集
iris = datasets.load_iris()
#将数据集拆分为训练集和测试集各一半
#其中X为数据特征(花萼、花瓣的高度宽度),为150*4的矩阵
#Y为鸢尾花种类(0, 1, 2三种),为150*1矩阵
#如果使用标签二值化, 将0, 1, 2表示为100 010 001
#使用y.label_binarize(y, classes[0, 1, 2]),变为150*3矩阵
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.5, random_state=0)
#set the parameters by cross_validation
turn_parameters = [{'kernel' : ['rbf', 'gamma' : [1e-3, 1e - 4, 'C':[1,10,100,1000]}, 
{'kernel':['linear'], 'C':[1,10,100,1000]}
]
#clf分离器
#使用网格搜索法调超参数
#训练集做5折交叉验证
clf = GridSearchCV(SVC(C=1), turned_parameters, cv=5, scoring='%s_weighted' % score)
#用前一半train数据再做5折交叉验证
#因为之前的train_test_split已经分割为2份了
#fit-拟合
clf.fit(X_train, y_train)
#超参数
print(clf.best_params_)
#得分
for params, mean_score, scores in clf.gird_scores_:
 print("%.3f (+/-%.0.03f) for %r" % (mean_score, scores.std()*1.96,params))
#分类报告
y_true, y_pred = y_test, clf.predict(X_test)
print(classification_report(y_true, y_pred))

以上就是对sklearn使用中数据集拆分与训练过程的详细解析(基于python3.6)。希望这些内容能为您提供参考,也欢迎大家继续支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。