sklearn 多种模型的学习曲线 拟合中的特性与运行速度(机器学习)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,5000CU*H 3个月
简介: sklearn 多种模型的学习曲线 拟合中的特性与运行速度(机器学习)

✌ 案例实战:多种模型的学习曲线

1、✌ 导入相关库

from sklearn.ensemble import RandomForestClassifier # 随机森林模型
from sklearn.tree import DecisionTreeClassifier # 决策树
from sklearn.linear_model import LogisticRegression # 逻辑回归
from sklearn.svm import SVC # 支持向量机
from sklearn.naive_bayes import GaussianNB # 朴素贝叶斯
import lightgbm as lgb # lightgbm模型
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import learning_curve # 用于画学习曲线
from sklearn.model_selection import ShuffleSplit # 分割数据集
from time import time # 导入时间模块
import datetime
from sklearn.datasets import load_digits # 手写数字数据集

2、✌ 定义画图函数

def plot_learning_curve(estimator,title,x,y,ax,ylim=None,cv=None,n_jobs=None):
    train_sizes,train_scores,test_scores=learning_curve(estimator,x,y,cv=cv,n_jobs=n_jobs)
    ax.set_title(title) # 设置每个子图的标题
    if ylim is not None:
        ax.set_ylim(*ylim) # 设置纵坐标的范围
    ax.set_xlabel("training examples") # 设置子图的x轴名称
    ax.set_ylabel("score") # 设置子图的y轴名称
    ax.grid() # 画网格图
    # 横坐标为训练样本数,纵坐标为每折下的分数均值
    ax.plot(train_sizesLin,np.mean(train_scores,axis=1),'o-',color='r',label='train score')
    ax.plot(train_sizes,np.mean(test_scores,axis=1),'o-',color='g',label='test score')
    ax.legend(loc='best') # 设置图例
    return ax

3、✌ 准备数据

data=load_digits() # 加载数据集
x=data.data # 特征矩阵
y=data.target # 标签
# 每张子图的名称
title=['Naive Bayes','DecisionTree','SVM','RandomForest','Logistic','lgb']
# 每个模型
model=[GaussianNB(),DecisionTreeClassifier(),SVC(gamma=0.001),RandomForestClassifier(n_estimators=50),LogisticRegression(C=0.1,solver='lbfgs'),lgb.LGBMClassifier()]
# 定义分割数据集的类
cv=ShuffleSplit(n_splits=50,test_size=0.2,random_state=0)

4、✌ 循环调用函数画图

fig,axes=plt.subplots(2,3,figsize=(18,12)) # 定义画布和子图,2行3列
axes=axes.ravel() # 子图数据降维,便于后文引用,否则为二维数组
for ind,title_,estimator in zip(range(len(title)),title,model):
    times=time() # 定义初始时间
    # 调用函数
    plot_learning_curve(estimator,title_,x,y,ax=axes[ind],ylim=[0.7,1.05],n_jobs=4,cv=cv) 
    # 打印各模型的运行时间信息
    print("{:15s}{}".format(title_,datetime.datetime.fromtimestamp(time()-times).strftime("%M:%S:%f")))
plt.show()


目录
相关文章
|
21天前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领精美计时器
75 3
|
10天前
|
机器学习/深度学习 数据采集 Python
从零到一:手把手教你完成机器学习项目,从数据预处理到模型部署全攻略
【10月更文挑战第25天】本文通过一个预测房价的案例,详细介绍了从数据预处理到模型部署的完整机器学习项目流程。涵盖数据清洗、特征选择与工程、模型训练与调优、以及使用Flask进行模型部署的步骤,帮助读者掌握机器学习的最佳实践。
35 1
|
13天前
|
机器学习/深度学习 数据采集 监控
如何使用机器学习模型来自动化评估数据质量?
如何使用机器学习模型来自动化评估数据质量?
|
18天前
|
机器人
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
1024 云上见 使用 PAI+LLaMA Factory 微调 Qwen2-VL 模型,搭建 “文旅领域知识问答机器人” 领 200个 精美计时器等你领
63 2
|
26天前
|
机器学习/深度学习 前端开发 网络架构
Django如何调用机器学习模型进行预测
Django如何调用机器学习模型进行预测
51 5
|
24天前
|
机器学习/深度学习 算法 Python
深度解析机器学习中过拟合与欠拟合现象:理解模型偏差背后的原因及其解决方案,附带Python示例代码助你轻松掌握平衡技巧
【10月更文挑战第10天】机器学习模型旨在从数据中学习规律并预测新数据。训练过程中常遇过拟合和欠拟合问题。过拟合指模型在训练集上表现优异但泛化能力差,欠拟合则指模型未能充分学习数据规律,两者均影响模型效果。解决方法包括正则化、增加训练数据和特征选择等。示例代码展示了如何使用Python和Scikit-learn进行线性回归建模,并观察不同情况下的表现。
206 3
|
24天前
|
人工智能 算法 测试技术
PAI 大语言模型评测平台现已支持裁判员模型评测
本文将为您介绍如何在 PAI 大语言模型评测平台,基于裁判员模型,评价开源模型或者微调后模型的性能。该功能限时免费,欢迎使用。
|
24天前
|
机器学习/深度学习 数据挖掘 Serverless
手把手教你全面评估机器学习模型性能:从选择正确评价指标到使用Python与Scikit-learn进行实战演练的详细指南
【10月更文挑战第10天】评估机器学习模型性能是开发流程的关键,涉及准确性、可解释性、运行速度等多方面考量。不同任务(如分类、回归)采用不同评价指标,如准确率、F1分数、MSE等。示例代码展示了使用Scikit-learn库评估逻辑回归模型的过程,包括数据准备、模型训练、性能评估及交叉验证。
47 1
|
26天前
|
机器学习/深度学习 计算机视觉 Python
模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
本文介绍了网格搜索(Grid Search)在机器学习中用于优化模型超参数的方法,包括定义超参数范围、创建参数网格、选择评估指标、构建模型和交叉验证策略、执行网格搜索、选择最佳超参数组合,并使用这些参数重新训练模型。文中还讨论了GridSearchCV的参数和不同机器学习问题适用的评分指标。最后提供了使用决策树分类器进行网格搜索的Python代码示例。
45 1
|
6天前
|
机器学习/深度学习 算法
探索机器学习模型的可解释性
【10月更文挑战第29天】在机器学习领域,一个关键议题是模型的可解释性。本文将通过简单易懂的语言和实例,探讨如何理解和评估机器学习模型的决策过程。我们将从基础概念入手,逐步深入到更复杂的技术手段,旨在为非专业人士提供一扇洞悉机器学习黑箱的窗口。

相关产品

  • 人工智能平台 PAI