机器学习好伙伴之scikit-learn的使用——学习曲线

2023-11-14

机器学习好伙伴之scikit-learn的使用——学习曲线

什么是学习曲线呢,其内容主要包含当训练量增加时,loss的变化情况。
在这里插入图片描述

什么是学习曲线

学习曲线主要反应的是学习的一个过程,常用的表示方法是训练集的loss和测试集的loss与训练量之间的关系。其示意图如下:
在这里插入图片描述

sklearn中学习曲线的实现

在进行学习曲线的绘制之前,首先要导入学习曲线的绘制的模块。

from sklearn.model_selection import learning_curve

学习曲线的绘制的重要函数是:

learning_curve(
	estimator, 
	X, y, 
	train_sizes=array([0.1, 0.325, 0.55, 0.775, 1. ]), 
	cv=None, 
	scoring=None, 
	exploit_incremental_learning=False, 
	n_jobs=1, 
	pre_dispatch='all', 
	verbose=0
)

其常用参数如下:
1、estimator:用于预测的模型
2、X:预测的特征数据
3、y:预测结果
4、train_sizes:训练样本相对的或绝对的数字,这些量的样本将会生成learning curve,当其为[0.1, 0.325, 0.55, 0.775, 1. ]时代表使用10%训练集训练,32.5%训练集训练,55%训练集训练,77.5%训练集训练100%训练集训练时的分数。
5、cv:交叉验证生成器或可迭代的次数
6、scoring:调用的方法
可进行的scoring方式具体可以查阅
https://scikit-learn.org/stable/modules/model_evaluation.html#scoring-parameter
在这里插入图片描述
使用方式如下:

train_sizes, train_loss, test_loss = learning_curve(
    SVC(gamma=0.01), X, y, cv=10, scoring='neg_mean_squared_error',
    train_sizes=np.linspace(.1, 1.0, 5))

代表使用SVM的分类模型,输入特征为X,输出label为y,进行10折交叉验证,通过均值平方差的方式计分,学习曲线分为5段。
其一共具有3个返回值,分别是train_sizes, train_loss, test_loss,其中train_loss指的是训练集的loss,其shape为(5,10),第n行对应学习曲线的第n段,第n行的内容代表着第n段的10折交叉验证的结果;test_loss的含义与train_loss类似,其对应的是测试集的loss。

应用示例

代码源自莫烦python教学网站

# 学习曲线模块
from sklearn.model_selection import learning_curve 
# 导入digits数据集
from sklearn.datasets import load_digits 
# 支持向量机
from sklearn.svm import SVC 
import matplotlib.pyplot as plt
import numpy as np

digits = load_digits()
X = digits.data
y = digits.target

# neg_mean_squared_error代表求均值平方差
train_sizes, train_loss, test_loss = learning_curve(
    SVC(gamma=0.01), X, y, cv=10, scoring='neg_mean_squared_error',
    train_sizes=np.linspace(.1, 1.0, 5))

# loss值为负数,需要取反
train_loss_mean = -np.mean(train_loss, axis=1)
test_loss_mean = -np.mean(test_loss, axis=1)

# 设置样式与label
plt.plot(train_sizes, train_loss_mean, 'o-', color="r",
         label="Training")
plt.plot(train_sizes, test_loss_mean, 'o-', color="g",
        label="Cross-validation")

plt.xlabel("Training examples")
plt.ylabel("Loss")
# 显示图例
plt.legend(loc="best")
plt.show()

实验结果为:
在这里插入图片描述
如上图所示的训练结果存在过拟合的现象。
调整GAMMA = 0.001后过拟合现象消失,Cross-validation不再上升。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习好伙伴之scikit-learn的使用——学习曲线 的相关文章

  • python scikit-learn 缺失数据聚类

    我想对缺少列的数据进行聚类 手动执行此操作 我将在没有此列的情况下计算缺少列的距离 使用 scikit learn 不可能出现丢失数据的情况 也没有机会指定用户距离函数 是否有机会对缺失数据进行聚类 示例数据 n samples 1500
  • 模型定义没有给出任何输出

    from sklearn linear model import LogisticRegression logmodel LogisticRegression logmodel 上面代码的输出只是 LogisticRegression 但我
  • ScikitLearn 的 MLPClasssifier 在输出层使用什么样的激活?

    我目前正在处理给定类标签 0 和 1 的分类任务 为此 我使用 ScikitLearnMLPClassifier为每个训练示例提供 0 或 1 的输出 但是 我找不到任何文档 说明 MLPClassifier 的输出层到底在做什么 哪个激活
  • Spark.ml 回归计算的模型与 scikit-learn 不同

    我在 scikit learn 和 Spark ml 中设置一个非常简单的逻辑回归问题 结果有所不同 他们学习的模型不同 但我不明白为什么 数据相同 模型类型是相同 正则化相同 毫无疑问 我错过了一侧或另一侧的一些设置 哪个设置 我应该如何
  • Keras model.fit log 和 Sklearn.metrics.confusion_matrix 报告的验证准确性指标彼此不匹配

    问题是报道的validation accuracy我从 Keras 获得的价值model fit历史显着高于validation accuracy我得到的指标sklearn metrics功能 我得到的结果model fit总结如下 Las
  • KMeans 是否会在 sklearn 中自动标准化特征

    我想知道 KMeans 是否在进行聚类之前自动标准化特征 似乎没有选项可以提供输入来要求标准化 其中之一是区分数据预处理 标准化 分箱 加权等 和机器学习算法应用 使用sklearn preprocessing http scikit le
  • 在 scikit-learn Pipeline 中插入或删除步骤

    是否可以删除或插入步骤sklearn pipeline Pipeline object 我正在尝试在 Pipeline 对象中有或没有一步进行网格搜索 想知道我是否可以在管道中插入或删除一个步骤 我看到在Pipeline源代码 有一个sel
  • 为什么我不能得到与 GridSearchCV 相同的结果?

    GridSearchCV只返回每个参数化的分数 我还希望看到 Roc 曲线以更好地理解结果 为了做到这一点 我想采用性能最好的模型GridSearchCV并重现这些相同的结果 但缓存概率 这是我的代码 import numpy as np
  • 如何在Python中使用保存模型进行预测

    我正在 python 中进行文本分类 我想在生产环境中使用它来对新文档进行预测 我正在使用 TfidfVectorizer 来构建 bagofWord 我在做 X train vectorizer fit transform clean d
  • 用于分类的 Python 向量化[重复]

    这个问题在这里已经有答案了 我目前正在尝试构建一个包含大约 80 个类别的文本分类模型 文档分类 当我使用随机森林构建和训练模型时 将文本矢量化为 TF IDF 矩阵后 该模型运行良好 然而 当我引入新数据时 我用来构建 RF 的相同单词不
  • 从多类分类算法输出前 2 个类

    我正在研究文本的多类分类问题 其中我有很多不同的类 15 我训练了一个 Linearsvc svm 方法 方法只是示例 但它只输出概率最高的单个类 有没有一种算法可以同时输出两个类 我正在使用的示例代码 from sklearn svm i
  • sklearn 中的 SVM 支持增量(在线)学习吗?

    我目前正在设计一个文本文章推荐系统 有趣 或 不有趣 的二元情况 我的要求之一是它应该不断更新以适应不断变化的趋势 据我所知 最好的方法是利用支持增量 在线学习 http en wikipedia org wiki Online 5fmac
  • MiniBatchKMeans OverflowError:无法将浮点无穷大转换为整数?

    我正在尝试找到正确数量的簇 k 根据轮廓分数使用sklearn cluster MiniBatchKMeans from sklearn cluster import MiniBatchKMeans from sklearn feature
  • 在Python或Sklearn中用整数值对具有字符串值的列变量进行编码

    如何用整数值对数据表中字符串类型的列值进行编码 例如 我有两个特征变量 颜色 可能的字符串值 R G 和 B 和技能 可能的字符串值 C Java SQL 和 Python 给定数据表有两列 Color gt R G B B G R B G
  • Scikit - 如何定义绘制 roc 曲线的阈值

    我有一个增强树模型以及测试数据集的概率和分类 我正在尝试绘制相同的 roc curve 但我无法弄清楚如何在 scikit learn 中定义 roc 曲线的阈值 alpha from sklearn metrics import prec
  • 多类分类的每类 F1 分数

    我正在使用 python 和 scikit learn 解决多类分类问题 目前 我正在使用classification report函数来评估我的分类器的性能 获得如下报告 gt gt gt print classification rep
  • 分组时间序列(面板)数据的交叉验证

    我使用面板数据 随着时间的推移 我观察许多单位 例如人 对于每个单元 我都有相同固定时间间隔的记录 当将数据分为训练集和测试集时 我们需要确保这两个集是不相交的并且顺序的 即训练集中的最新记录应该在测试集中最早的记录之前 参见例如此博客文章
  • 使用 scikit learn 对通过 networkx 生成的图进行谱聚类

    我有一个 3000x50 特征向量矩阵 我使用以下方法获得了一个相似度矩阵sklearn metrics pairwise distances作为 相似度矩阵 现在我用了networkx使用上一步中生成的相似度矩阵创建一个图G nx fro
  • 将 python scikit learn 模型导出到 pmml

    我想将 python scikit learn 模型导出到 PMML 中 什么 python 包最适合 我读到Augustus https github com opendatagroup augustus 但我找不到任何使用 scikit
  • 我的 R 平方分数为负,但使用 k 倍交叉验证的准确度分数约为 92%

    对于下面的代码 我的 r 平方分数为负 但使用 k 折交叉验证的准确度分数为 92 这怎么可能 我使用随机森林回归算法来预测一些数据 数据集的链接在下面的链接中给出 https www kaggle com ludobenistant hr

随机推荐

  • ElasticSearch快速入门笔记,ElasticSearch基本操作以及爬虫(Java-ES仿京东实战)(狂神说)

    文章目录 ElasticSearch 库 表 记录 笔记 ElasticSearch概述 ELasticSearch VS Solr总结 ElasticSearch安装 ELK的下载地址 核心概念 IK分词器插件 RESTful风格说明 关
  • MySQL 日期时间加减

    now 当前具体的日期和时间 curdate 当前日期 curtime 当前时间 1 MySQL加减某个时间间隔 设置当前日期变量 set dt now 设置当前日期 select dt 查询变量值 加减某个时间间隔函数date add 与
  • 微信小程序源码-图书馆预约系统的计算机毕业设计(附源码+论文)

    大家好 我是职场程序猿 感谢您阅读本文 欢迎一键三连哦 当前专栏 微信小程序毕业设计 精彩专栏推荐 安卓app毕业设计 Java毕业设计 基于微信小程序的图书馆预约系统 java 演示 源码下载地址 https download csdn
  • 简单实现数据库DAO

    一 什么是DAO DAO Data Access Object 是一个数据访问接口 数据访问 顾名思义就是与数据库打交道 夹在业务逻辑与数据库资源中间 DAO是把对数据库的操作全部封装在里面 DAO把底层的数据访问逻辑和高层的业务逻辑分开
  • 原神服务端搭建架设教程win系统(附客户端+服务端+环境配置)

    原神服务端搭建架设教程win系统 附客户端 服务端 环境配置 大家好 我是艾西原神一款开放世界冒险3D游戏以七种元素 分别为风 雷 岩 火 水 草 冰 交汇的幻想世界 提瓦特 创造的游戏世界 以角色扮演的RPG游戏还是有非常多的玩家热爱 以
  • ERROR conf.Configuration: error parsing conf mapred-site.xml

    Hadoop进行namenode格式化时报错 ERROR conf Configuration error parsing conf mapred site xml com ctc wstx exc WstxParsingException
  • MTCNN

    Joint Face Detection and Alignment Using Multitask Cascaded Convolutional Networks 使用多任务级联卷积网络的联合人脸检测和对齐 摘要 由于各种姿势 光照和遮挡
  • Java基础 类访问权限

    转载自https www cnblogs com jinggod p 8425423 html java基础 七 java四种访问权限 引言 Java中的访问权限理解起来不难 但完全掌握却不容易 特别是4种访问权限并不是任何时候都可以使用
  • Visual Studio 远程调试正在运行的进程

    使用场景 当项目在测试环境上有bug 需要运行代码调试一下 这时就需要在测试环境上安装一个调试工具 然后在本地运行代码 远程链接到测试环境服务器来调试代码 假期鸽了这末长的时间 方式一 工具下载 https visualstudio mic
  • PHP 并发场景的几种解决方案

    PHP 并发场景的几种解决方案 在秒杀 抢购等并发场景下 可能会出现超卖的现象 在 PHP 语言中并没有原生提供并发的解决方案 因此就需要借助其他方式来实现并发控制 列出常见的解决方案有 使用队列 额外起一个进程处理队列 并发请求都放到队列
  • AI换脸小程序是否能实现更高水平的面部融合?

    随着人工智能技术的不断进步 面部识别技术在AI换脸小程序中的应用也日益成熟 这项技术的发展趋势逐渐朝着实现更加精准和逼真的面部融合效果 本文将探讨当前面部识别技术的发展趋势 并分析其在AI换脸小程序中实现更高水平的面部融合效果的可能性 一
  • flutter之Container

    Container类似于iOS中的UIView 具有绘制 定位 调整大小功能 通常用来装载其它子控件 假如Container没有子控件 它将自动填充整个屏幕 反之 会根据子控件大小 调整自身大小 从而达到自适应效果 注意 使用Contain
  • Unity PlayerSetting Android打包设置介绍

    Unity 版本 2018 3 0f2以下部分内容来自Unity文档和网上资料 如有错误 请在评论区指正 我看到后会进行改正和更新 Icon 后续更新 略 Resolution And Presentation 后续更新 略 Splash
  • python实现链表的旋转

    python实现链表的旋转 链表是一种常用的数据结构 实现起来也不难 但当我们需要将链表中的元素旋转时 就会有一些困难 本文介绍基于python语言的链表旋转实现方法 实现思路 链表旋转可以通过移动节点的位置来实现 我们可以找到需要旋转的位
  • 第二节 分支和循环语句

    第二节 分支和循环语句 目录 一 什么是语句 二 分支语句 选择结构 三 循环语句 本章重点 分支语句 if switch 循环语句 while for do while goto语句 一 什么是语句 C语句可分为以下五类 表达式语句 函数
  • STM32关于编译不通过,错误提示 Error: Undefined symbol SystemInit (referred from startup_stm32f10x_md.o

    今天正式开始学习stm32的开发板 在学习的时候 发现连例程都不能够通过编译 然后测试了好久 发现都是这种错误 然后上网查找到了答案 找到了解决的方法 这里来记录一下 转载来自 http blog sina com cn s blog 54
  • echarts在data里定义的formatter函数失效问题

    在echarts官方运行的时候是生效的 拿到项目里循环之后就失效了 后来井排查发现 是因为循环的时候 使用了JSON stringify this eqpOption 函数 导致 echarts的option里默认itemStyle的方法都
  • 构建可扩展的应用:六边形架构详解与实践

    面试题分享 云数据解决事务回滚问题 点我直达 2023最新面试合集链接 2023大厂面试题PDF 面试题PDF版本 java python面试题 项目实战 AI文本 OCR识别最佳实践 AI Gamma一键生成PPT工具直达链接 玩转clo
  • 第十届蓝桥杯省赛C++B组 完全二叉树的权值

    试题 G 完全二叉树的权值 时间限制 1 0s 内存限制 256 0MB 本题总分 20 分 问题描述 给定一棵包含 N 个节点的完全二叉树 树上每个节点都有一个权值 按从上到下 从左到右的顺序依次是 A1 A2 AN 如下图所示 现在小明
  • 机器学习好伙伴之scikit-learn的使用——学习曲线

    机器学习好伙伴之scikit learn的使用 学习曲线 什么是学习曲线 sklearn中学习曲线的实现 应用示例 什么是学习曲线呢 其内容主要包含当训练量增加时 loss的变化情况 什么是学习曲线 学习曲线主要反应的是学习的一个过程 常用