Week 3: Assessing performance 笔记

时间:2023-02-14 17:10:54

得到一个模型之后如何评价其性能?

  1. training error & generalization error & test error
  2. 如何理解generalization error(泛化误差)分为 noise 噪声、Variance 方差、 bias偏差
  3. 误差 和 模型复杂度 的关系
  4. 实际训练模型过程中该如何做

training error & generalization error & test error

  (1)training error

    模型在训练数据集上的误差。

  (2)generalization error

      Week 3: Assessing performance   笔记

    Generalization, 一般化,泛化。

    我们用训练数据集(training data)训练一个模型,而我们希望这个模型能实际应用于训练数据集之外的总体

  数据,所以这个模型真实误差应该是所有可能的数据的集合上的误差,但这是无法实际计算的,我们能够用来学

  习的训练数据集只是全部数据中的一个子集

    课程中的例子是房价估计,我们用已有的数据集训练一个模型用于房价预测,而除了已有的房屋出售数据之

  外,还有许多没没统计进这个数据集的数据。我们希望能评估这个模型的真实预测效果,即求得用这个模型对

  有可能的房屋出售的数据集进行房价预测产生的误差,这个误差就是generalization error(泛化误差)。

  (3)test error

    因为generalization error无法真正计算(得不到所有可能的数据集合),所以可以用training dataset

  之外的一个数据子集来近似估计generalization error,这就是test error。

      Week 3: Assessing performance   笔记

    test error是generalization error的近似,故而在算法中应注意Training /test split (训练/测试数据集分割比例),

  训练数据太少,则模型预测效果差;测试数据太少,则测试数据集不具有普适性,test error不能较好的近似

  generalization error。

            Week 3: Assessing performance   笔记

Noise & Variance & Bias

  (1)Noise

            Week 3: Assessing performance   笔记

    Irreducible: 不可减少的

    周志华《机器学习》中是这么解释的:

    泛化误差可分解为偏差、方差与噪声之和。

    偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;方差度量了同

  样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响;噪声则表达了在当前任务上

  任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

  (2) bias & variance

    一张图理解bias 和variance .

     Week 3: Assessing performance   笔记

    所以一个好的模型应该具有low bias & low variance。现在问题来了,鱼与熊掌可兼得吗?

     复杂度较小的情况下:

     Week 3: Assessing performance   笔记

      Week 3: Assessing performance   笔记

    Low complexity –> high bias 、 low variance

    利用training set训练模型的过程,就是不断逼近一个理想的”真实模型”的过程,复杂度较小时,模型对训练数

  据集的拟合程度较低,模型预测值与真实值偏差较大,bias较大,同时由于拟合程度较低,模型普适性较好,应

  用于不同的数据集预测结果之间差异不大,variance较小。

  复杂度较大的情况下:

  Week 3: Assessing performance   笔记Week 3: Assessing performance   笔记

    high complexity –> low bias 、 high variance

    复杂度较大,模型对训练集拟合程度很高,bias很小,但模型拟合是针对训练集这个特定的数据集进行的,

  而训练集只是真实数据的一个子集,得到的模型过于specific,包含了许多具体的,针对于训练集的特征。利用

  这个模型对其他不同的数据集进行预测,预测结果会“飘忽不定(erratic)”,variance很大,模型对training set

  拟合的很好,而用于预测时效果不佳误差很大,这种现象称为“过拟合”。

    

      Week 3: Assessing performance   笔记

    

      训练数据集对于模型拟合十分重要,考虑一个理想的情况,复杂度一定的条件下,假如我们拥有全部

    可能的数据,即训练数据集无限大,此时variance就趋近于0(noise噪声为不为0;training error 和 bias要

    考虑复杂度对拟合效果的影响),这种情况下就不需要bias-variance tradeoff(但显然这是不现实的)。

errors & complexity

    Week 3: Assessing performance   笔记Week 3: Assessing performance   笔记

    test error 图同generalization error。

    Complexity 不是越大越好,要考虑到 bias-variance tradeoff,当complexity过小,欠拟合,complexity

  过大,过拟合。

如何选择合适的复杂度

  (1)根据 使test error最小 的原则确定复杂度,有什么问题?

    如果根据test error最小确定复杂度,则之后评价模型的预测结果会过于乐观。复杂度根据测试数据决定,

  这样测试数据就不能很好的代表总体数据了,test error不能较好的近似generalization error, 真实误差会大于

  测试误差。

  (2)常见可行方法?

    再添加一个“test”数据集。

    根据使validation error最小,确定复杂度。

         Week 3: Assessing performance   笔记

    Training set 用于拟合模型,validation set 用于确定复杂度,test set 用于评价模型误差。

Week 3: Assessing performance 笔记的更多相关文章

  1. 《Systems Performance》阅读笔记及收获

    本文共三部分: 笔记之前的废话是和书结缘的过程: Systems Performance笔记是正文,记录了读书笔记以及一些实践: 一些优化记录将之前做的一些优化归纳起来,同时也能反思做的如何,加入跟G ...

  2. 《Machine Learning Yearing》读书笔记

    ——深度学习的建模.调参思路整合. 写在前面 最近偶尔从师兄那里获取到了吴恩达教授的新书<Machine Learning Yearing>(手稿),该书主要分享了神经网络建模.训练.调节 ...

  3. 老李分享:《Java Performance》笔记1——性能分析基础 1

    老李分享:<Java Performance>笔记1——性能分析基础   1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. ...

  4. ASP&period;NET Core 2 High Performance 目录和读书笔记

    ASP.NET Core 2 High Performance 大概的翻看了一下这本书,这本C# 7 and .NET Core 2.0 High Performance内容要好很多,这里先放出对应目 ...

  5. 学习笔记:Analyze MySQL Performance及慢日志的开启

    Table of Contents Analyze MySQL PerformanceTuningSlow queries and Slowlog Brought to you by Rick Jam ...

  6. 笔记 - DBSherlock&colon; A Performance Diagnostic Tool for Transactional Databases

    OLTP系统的问题很难排查和定位,这就是为什么要花那么多钱去请DBA 因为TP系统的请求很多都是毫秒级别,而且同时有大量的并发,所以由于资源,或随机的原因导致的问题,很难去定位根因 哪怕数据库系统尤其 ...

  7. Microsoft&period;SQL&period;Server2012&period;Performance&period;Tuning&period;Cookbook学习笔记&lpar;一&rpar;

    一.Creating a trace or workload 注意点: In the Trace Properties dialog box, there is a checkbox option i ...

  8. 《Java Performance》笔记1——性能分析基础 2

    4.内存使用率: 内存使用率的相关属性包括页面调度或页面交换.加锁.线程迁移中的让步式和抢占式上下文切换. 当应用运行所需的内存超过可用物理内存时,就会发生内存页面交换,系统在进行页面交换或使用虚拟内 ...

  9. High Performance MySQL笔记:count

    在SQL中使用count()好像是非常自然的事情: SELECT COUNT(*) FROM TABLE_NAME; 有时候确实会想过,count(*)和单独的count(column_name)有什 ...

随机推荐

  1. MR 的 mapper 数量问题

    看到群里面一篇文章涨了贱识 http://www.cnblogs.com/xuxm2007/archive/2011/09/01/2162011.html 之前关注过 reduceer 的数量问题,还 ...

  2. QT:程序忙碌时的进度条——开启时间循环,等结束的时候再退出

    当程序在执行一项(或多项)耗时比较久的操作时,界面总要有一点东西告诉用户“程序还在运行中”,那么,一个“没有终点”的进度条就是你需要的了.PS:最好把耗时的操作扔到一个子线程中去,以免他阻塞了界面线程 ...

  3. php coding中的一些小问题

    最近在SAE上写微博应用,碰到一些小问题,记下来,以供参考: 1.出错提示: Fatal error: Can't use function return value in write context ...

  4. ERROR 2003 &lpar;HY000&rpar;&colon; Can&&num;39&semi;t connect to MySQL server on &quot&semi;192&period;168&period;xxx&period;xxx&quot&semi; &lpar;111&rpar;

    mac  homebrew 安装的mysql5.6 除本机外无法被其他ip的电脑访问. 网上查原因 有几个: 1.my.cnf配置中 查看是否有   bind-address = 127.0.0.1  ...

  5. 怎么发现RAC环境中&amp&semi;&num;39&semi;library cache pin&amp&semi;&num;39&semi;等待事件的堵塞者(Blocker)&quest;

    怎么发现RAC环境中的'library cache pin'等待事件的堵塞者(Blocker) 參考自 How to Find the Blocker of the 'library cache pi ...

  6. DBMS&lowbar;LOB的简单用法以及释放DBMS&lowbar;LOB生成的临时CLOB内存

    dbms_lob包(一) dbms_lob包(二) 如何释放DBMS_LOB.CREATETEMPORARY的空间 Temporary LOB导致临时表空间暴满. oracle数据库中的大对象1——永 ...

  7. 关于比特币的&OpenCurlyDoubleQuote;冷存储”和Armory的使用

    转自:http://8btc.com/thread-1164-1-1.html 最近随着比特币话题的火热,又有一批人卖房或倾产换成比特币入圈,这一次与以前不同的是,以前倾产入圈的人都是技术人员,有足够 ...

  8. 为什么我用了&dollar;&lpar;&rpar;&period;height&lpar;&rpar;还是对不齐呢?

    有一个这样的需求:有两个显示内容的框,要使他们高度一致,因为他们存放的内容多少和结构不一样,左边内容少,右边内容多.这就导致了右边会比左边高,解决方法就是超出部分用滚轮显示,那这时就先要调整右边的高度 ...

  9. iOS7自定义back按钮和pop交互手势

    Clambake for iPhone有一个回退按钮在所有的导航条上.这是一个简单的没有文字箭头. 实现一个自定义按钮是简单的.类似这个设置controller 的navigationItem一个le ...

  10. Hystrix 断路器

    断路器: 当客户端访问服务端,发现服务端有异常不能进行访问时,就会执行一个fallback 方法.