Andrew Ng机器学习课程10补充


VC dimension

讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训练样本。到这里需要指出一点,这个结果是基于empirical risk minimization得到的,而对于那些大部分的discriminative的学习算法采用的通过最小化training error或者training error的近似值,前面推导的结论并不总是可以用,而对于non_ERM 学习,给出好的理论保证仍然是一个活跃的研究领域。

In other words, the number of training examples needed to learn “well” using H is linear in the VC dimension of H.而对于大部分的hypothesis classes,VC dimension粗略的等于参数的个数。


model selection

How can we automatically select a model that represents a good tradeoff between the twin evils of bias and variance?

最直观的方法:直接选择最smallest training error的hypothesis

这种方法不行,比如多项式的阶数,这种方法总会选择得到high-variance,high-degree polynomial model。

hold-out cross validation

随机把S分为训练集和验证集,在训练集上训练hypothesis model,在验证集上获取hypothesis,然后选择最小验证误差的hypothesis,之后再用全部的数据进行训练。但是对于那些对初始条件或者初始数据比较敏感的算法,最好不要再进行retraining,因为在训练集上表现好的model,并不一定意味着在验证集上也表现好。这种hold-out cross validation的方法主要的缺点就是waste样本数据,即使是采用了retraining。

k-fold cross validation

随机将S分割为大小相同的k份,每次在k-1份上进行训练,而在另外一份上进行validation,循环k次,将每次得到的误差进行平均作为estimated generalization error,然后挑选最低的model,最后retraining这个model在整个S上。一般选择k为10。

leave-one-out cross validation

上一个方法中,将k=样本数量m,就叫做leave-one-out cross validation。

上面两种方法进行cross validation都会有计算量的问题,实际上当样本数量足够多时,可以采用hold-out cross validation,样本数量不足而计算能力达到要求时,可以采用k-fold或者leave one out的cross validation。

Feature Selection

Feature Selection是model selection的一种特殊和重要的案例,主要有两种方法:前向搜索和后向搜索,前向搜索是从空集开始逐个添加剩余最好的进来,而后向搜索是从满集开始,逐个剔除其中最差的出去。这两种方法的缺点就是计算量大。

还有一种是filter feature selection,采用启发式的选择,计算量相比上面两种要小,主要的思想是计算xi与y的相关度,或者是互信息等。

Andrew Ng机器学习课程10补充的更多相关文章

  1. Andrew Ng机器学习课程10

    Andrew Ng机器学习课程10 a example 如果hypothesis set中的hypothesis是由d个real number决定的,那么用64位的计算机数据表示的话,那么模型的个数一 ...

  2. Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

    Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...

  3. Andrew Ng机器学习课程笔记(四)之神经网络

    Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...

  4. Andrew Ng机器学习课程笔记(一)之线性回归

    Andrew Ng机器学习课程笔记(一)之线性回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 ...

  5. Andrew Ng机器学习课程13

    Andrew Ng机器学习课程13 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要从一般的角度介绍EM算法及其思想,并推导了EM算法的收敛性.最后 ...

  6. Andrew Ng机器学习课程12

    Andrew Ng机器学习课程12 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 引言:主要讲述了batch learning和online learnin ...

  7. Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)

    title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...

  8. Andrew Ng机器学习课程笔记--汇总

    笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...

  9. Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计

    Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...

随机推荐

  1. Python学习之--用户输入以及运算

    一. 用户输入:input 1. 函数input() 让程序暂停运行,等待用户输入一些文本. 2.使用int()将字符串转为数值 二.运算:+-*. 1.求模运算符 (%)将两个数相除并返回余数: 2 ...

  2. AutoCAD .NET二次开发(一)

    其他话不多说,直接进入主题,既然是二次开发,当然是用CAD平台已经封装好了很多类,我们需要熟悉和使用它们.常用的AutoCAD .NET API的四个主要DLL文件是: 名称 作用 备注 AcDbMg ...

  3. shell脚本编程之条件判断

    条件测试类型: 整数测试 字符测试 文件测试 条件测试的表达式的三种方法: 1.[ expression ] 命令测试 2.[[ expression ]] 关键字测试 3.test expressi ...

  4. 搭建K8S集群

    一.前言 我们将现有的虚拟机称之为Node1,用作主节点.为了减少工作量,在Node1安装Kubernetes后,我们利用VirtualBox的虚拟机复制功能,复制出两个完全一样的虚拟机作为工作节点. ...

  5. LAMP企业架构读写分离

    1.1  LAMP企业架构读写分离 LAMP+Discuz+Redis缓解了MYSQL的部分压力,但是如果访问量非常大,Redis缓存中第一次没有缓存数据,会导致MYSQL数据库压力增大,此时可以基于 ...

  6. ubuntu之路——day11.2 快速搭建系统并进行迭代、在不同的划分上进行训练和测试

    快速搭建系统并进行迭代 1.建立dev/test set,并确定你的目标 2.快速建立初始化的系统 3.使用前面提到的bias/variance分析和错误分析来进行模型优化和迭代 针对以上的过程,An ...

  7. package.json 字段说明

    以vue的package.json为例: { // 名称 "name": "vue", // 版本 "version": "2.6 ...

  8. 深入理解JS中&&和||

    写了这么多JS,才发现JS的语法既是属于C语系的,又与一般C语系的编程语言某些地方有很大区别,其中&&和||就是其中一例. C语系中的&&和|| C语系的&&a ...

  9. Tensorflow 2 Cifar10离线数据集手动下载、离线安装、本地加载、快速读取

    Tensorflow 2 Cifar10离线数据集手动下载.离线安装.本地加载.快速读取 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq.com   查 ...

  10. 003 centos7中关闭防火墙

    在centos7中,防火墙有了新的变化.下面是常用的几个命令. 1.查看状态 systemctl status firewalld 2.关闭防火墙 systemctl stop firewalld.s ...