学习目标:

在学习网格搜索,交叉验证之后,对模型优化的效果进行图形化的评价的两种工具:

  • 验证曲线: 由于训练集的评分已经被用于参数调优,因此该评分用于评估效果已经不再客观,需要使用验证集的评分用于评估。
    sklearn.model_ selection.validation_ curve(
    estimator, X, y
    param_ name : string, 在模型搜索中需要改变的参数
    param_ range : array-like, shape (n_ values,), 相应参数的具体值列表

    groups = None : array-like, with shape (n_ samples, )
    拆分为训练/测试集时用到的样本分组标签
    cv = None : int, 交互验证时的分组方法,为None时按照三组拆分

    scoring = None, n_ jobs = 1,pre_ dispatch = ‘all’, verbose = 0
    )返回:
    train_ scores : array, shape (n_ ticks, n_ cv folds), 测试集的模型评分
    test_ scores : array, shape (n_ ticks, n_ cv folds), 验证集的模型评分

  • 学习曲线: 学习曲线用于评估多大的样本量用于训练才能达到最佳效果.
    sklearn.model_ selection.learning_ curve(
    estimator, X, y, groups = None
    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
    shuffle = False, random state = None
    )返回: .
    train_ sizes_ abs : array, shape = (n_ unique ticks,), 训练集大小
    train_ scores : array, shape (n_ ticks, n_ cv_ folds), 训练集评分
    test_ scores : array, shape (n_ ticks, n cv folds),验证集评分

验证曲线:

1、导入验证曲线函数:

from sklearn.model_selection import validation_curve

2、导入波士顿房价数据集并实例化:

from sklearn.datasets import load_boston

实例化:

boston = load_boston()

3、导入sklearn的岭回归模块:

from sklearn.linear_model import Ridge

4、将原始数据打乱为随机顺序:

#导入numpy库并将原始波士顿房价数据集打乱
import numpy as np
np.random.seed(666)
X,y = boston.data, boston.target
indices = np.arange(y.shape[0])
np.random.shuffle(indices)
X,y = X[indices],y[indices]

5、返回评价结果:

train_scores,test_scores = validation_curve(Ridge(),X,y,"alpha",np.logspace(-10,10,200))


(数据量过大,在此仅显示部分信息)

6、验证集的模型评分:

print(test_scores)

结果为:

(仅显示部分结果)

7、绘制验证曲线:

import matplotlib.pyplot as plt
%matplotlib inline
plt.scatter(np.logspace(-10,10,200),np.mean(test_scores,axis = 1))

结果为:

学习曲线:

  • 用于评估多大的样本量用于训练才能达到最佳效果

  • 在初期,增加样本量会使得模型评分持续改善,但改善速度逐渐放缓

  • 如果在增加训练集大小时,训练分值和验证分值都已经收敛到一个很低的
    平稳值,则继续增加训练数据并不会改善模型效果

  • 如果训练样本最大化时,训练分值仍然明显高于验证分值,说明模型存在
    过拟合,此时增加训练样本很可能会改善模型的泛化能力

1、导入学习曲线模块:

from sklearn.model_selection import learning_curve

2、设置训练集大小:

size = np.linspace(0.1,1,10)

3、返回评价结果:

train_sizes,train_scores,test_scores = learning_curve(Ridge(),X,y,train_sizes = size,cv = 10)

4、训练集大小:

print(train_sizes)

结果为:

[ 45  91 136 182 227 273 318 364 409 455]

5、训练集评分:

print(train_scores)


6、验证集评分:

print(test_scores)


7、绘制学习曲线:

plt.scatter(train_sizes,np.mean(train_scores,axis = 1))
plt.scatter(train_sizes,np.mean(test_scores,axis = 1))

结果为:

8、更改训练集大小进行验证:

  • 8.1更改训练集大小为100:
size = np.linspace(0.1,1,100)
plt.scatter(train_sizes,np.mean(train_scores,axis = 1),s = 2)
plt.scatter(train_sizes,np.mean(test_scores,axis = 1),s = 2)

结果为:

  • 8.2更改训练集大小为1000:
size = np.linspace(0.1,1,1000)
plt.scatter(train_sizes,np.mean(train_scores,axis = 1),s = 2)
plt.scatter(train_sizes,np.mean(test_scores,axis = 1),s = 2)

结果为:

【大数据专业】机器学习之模型调优的评估工具 验证曲线 学习曲线相关推荐

  1. 大数据培训:Spark性能调优与参数配置

    Spark性能调优-基础篇 众所周知,正确的参数配置对提升Spark的使用效率具有极大助力,帮助相关数据开发.分析人员更高效地使用Spark进行离线批处理和SQL报表分析等作业. 推荐参数配置模板如下 ...

  2. 大数据培训:Spark 性能调优详解

    调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的 ...

  3. 大数据之-Hadoop3.x_生产调优手册_HDFS读写压测---大数据之hadoop3.x工作笔记0162

    首先我们去测试HDFS的写性能,可以看到,我们向HDFS集群写入10个128M的文件 去测试 然后我们看,这里我们用到的是这个tests.jar这个命令的jar包来进行测试的,可以看到他会把多个文件, ...

  4. 过拟合与模型调优(part1)--过拟合,模型调优,数据分割

    学习笔记,仅供参考,有错必纠 PS : 本BLOG采用中英混合模式,有些英文下有中文翻译 文章目录 名词解释 模型调优 过拟合问题 模型调优 数据分割 名词解释 模型调优 we will assume ...

  5. Yolov5自定义图片训练测试及模型调优(详细过程)

    Yolov5自定义图片训练测试及模型调优(详细过程) 1. 图像数据获取.标注 2. 数据集划分及准备 3. 配置训练参数,准备训练: 3.1 修改data/训练配置xxx.yaml文件: 3.2 修 ...

  6. 收藏 | 机器学习模型调优3大策略

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 无 ...

  7. R语言机器学习Caret包(Caret包是分类和回归训练的简称)、数据划分、数据预处理、模型构建、模型调优、模型评估、多模型对比、模型预测推理

    R语言机器学习Caret包(Caret包是分类和回归训练的简称).数据划分.数据预处理.模型构建.模型调优.模型评估.多模型对比.模型预测推理 目录

  8. Python工程能力进阶、数学基础、经典机器学习模型实战、深度学习理论基础和模型调优技巧……胜任机器学习工程师岗位需要学习什么?...

    咱不敢谈人工智能时代咋样咋样之类的空话,就我自己来看,只要是个营收超过 5 亿的互联网公司,基本都需要具备机器学习的能力.因为大部分公司盈利模式基本都会围绕搜索.推荐和广告而去. 就比如极客时间,他的 ...

  9. 能识别nvme的pe启动_【腾讯WeTest干货分享】机器学习在启动耗时测试中的应用及模型调优...

    商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处 原文链接:http://wetest.qq.com/lab/view/392.html WeTest导语 启动耗时自动化方案在关键帧识别时 ...

最新文章

  1. 网页、网站规划与设计1
  2. 每日一皮:这真的是亲妈吗...
  3. jboss resin tomcat 相关
  4. 【C++学习】String类的基本用法
  5. 前端学习(3309):redux项目创建和概况
  6. python三大编程语言_程序员最需要的三种编程语言
  7. 苹果CMS v10一键采集芒果tv官方直链地址插件
  8. 数据结构队列代码_代码简介:队列数据结构如何工作
  9. 都说开完电动汽车,就不想再开回燃油车了,是这样吗?
  10. Vue中常见的性能优化
  11. 计算机wind10切换桌面wind7系统,win10多桌面切换的方法以及开启步骤是怎样的
  12. MQ队列管理器_PMTS命令
  13. 中小企业固定资产管理办法哪种好?
  14. 如何在直播、会议、视频中使用虚拟形象
  15. pytorch drop_last参数
  16. 优雅地使用eruda在移动端上调试网页
  17. python绘制图形沙漏_论计时沙漏对于学习python的重要性
  18. systeminfo命令
  19. Numpy中的数组、行/列向量及其之间的转化
  20. 中国企业入局AR芯片市场,提升元宇宙时代的核心竞争力

热门文章

  1. 情感机器:人类的19大思维方式
  2. 百问网七天物联网课程(第二天)
  3. webservice 在线测试(备用)
  4. Rest ful风格同时传输一个对象和一个变量的几种方法
  5. 112页PPT | 元宇宙的技术构成与未来展望(附下载)
  6. 今天早上被AS卡爆的结论
  7. FFmpeg入门 - 格式转换
  8. OpenFace学习(1):安装配置及人脸比对
  9. excel宏字符串连接mysql_EXCEL 连接字符串 MYSQL
  10. Android Studio 笔记1.3 安卓应用目录结构