Andrew Ng机器学习课程10
Andrew Ng机器学习课程10
a example
如果hypothesis set中的hypothesis是由d个real number决定的,那么用64位的计算机数据表示的话,那么模型的个数一共有k=264d,那么训练样本的数量由上一节课的公式可推出训练样本的数量为:
。为保证ERM在这样的hypothesis set上能够达到一定的error bound,训练样本的数量需要达到上式得要求。
VC dimension
假定有d个点的数据集S,hypothesis set H能够shatter(打散)S,即将S中的数据点分为任意的标签,就说H 能 shatter S 。二维平面上的没有线性分类器能够shatter 4个数据点的。
然后定义了VC dimension,指的就是H能够打散的S中的最大数据点数,只要存在就行,不一定包含所有这些数据点(比如在一条直线上)的情况。再解释就是,只能shatter VC dimension个数据点,而不能shatter 任意一个增加一个的数据点。推广一下,对于n维度的线性分类器,其VC dimension是n+1。
对于hypothesis set 可以有无限多个hypothesis,但是能够shatter的数量却是有限的VC dimension,这就可以用来给出一个generalization error bound,解释学习算法的有效性。得出m的阶数必须至少跟vc dimension d的阶数相同。实际上VC dimension大致跟参数的个数相近,或者呈线性关系。
问题:为何SVM不过拟合?
具有large margin的classifier通常有较低的VC dimension,主要是因为具有这样large margin的hypothesis能够shatter的点数要比正常的要少,也就说明了VC dimension较少。 而在理论上数学上的分析,large margin使得模型的VC dimension有一个upper bound,而且这个upper bound跟X的维度无关,也就说即使将X转换为无限维度,也不影响其VC dimension。
算法横向连接:
logistic regression 和SVM都是两种对empirical risk minimization 算法的近似。其实就是选择误差函数是那种,我记得台大林轩田的解释就比较清楚,回过头来再看看。
Model Selection
比如choose the 多相似的次数,局部线性回归中的窗口宽度,或者是SVM中的L1 regularizer的C的大小等。
下面将如何进行选择:
比较所有的model中training error最小的?too stupid
hold-out cross validation:
70%作为training set,然后30%作为validation set,或者交叉验证等。通常样本数据是非常宝贵的,比较难的的,对于留出30%的数据来进行model selection是比较浪费的。
k-fold CV
将所有的数据分为k个部分,
leave one out CV,当数据量非常少时,才进行这样的操作,训练时间比较长。
VC dimension的这个bound实际上是非常loose的,只具有指导意义。
feature selection
forward search algorithm:
贪婪算法类似,每次选择剩余中最好的特征,从一个开始,选择最好的validation error的feature,然后加入F中,然后从剩余的中在寻找与F中已有的合在一起具有最好的validation error的特征加入F中,就这样一步一步的选出k个最好的特征。
这个算法被叫做wrapper feature selection,
backward search algorithm:
每次从F中删除一个最没用的特征
这不一定能找到最好的特征子集。对于文本特征,特征特别多,
filter feature selection method
对于特征xi对于y的影响度,比如相关度,correct(xi,y),MI(xi,y),定义可以参看《数学之美》中的一些文本处理的章节。K-L divergence,mutual information,两者之间的p(x,y)与p(x)p(y)的KL divergence,如果是比较大,则x能够tell一些y的information,如果不相干,或者独立,则两者距离特别近,,选择k个最大相关度或者互信息的特征,而k的选择依然是通过cross validation来选择,top 1,top 2,等等
2015-9-11 艺少
Andrew Ng机器学习课程10的更多相关文章
- Andrew Ng机器学习课程10补充
Andrew Ng机器学习课程10补充 VC dimension 讲到了如果通过最小化训练误差,使用一个具有d个参数的hypothesis class进行学习,为了学习好,一般需要参数d的线性关系个训 ...
- Andrew Ng机器学习课程笔记(五)之应用机器学习的建议
Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.h ...
- Andrew Ng机器学习课程笔记(四)之神经网络
Andrew Ng机器学习课程笔记(四)之神经网络 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365730.html 前言 ...
- Andrew Ng机器学习课程笔记(一)之线性回归
Andrew Ng机器学习课程笔记(一)之线性回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364598.html 前言 ...
- Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归)
title: Andrew Ng机器学习课程笔记--week1(机器学习介绍及线性回归) tags: 机器学习, 学习笔记 grammar_cjkRuby: true --- 之前看过一遍,但是总是模 ...
- Andrew Ng机器学习课程笔记--汇总
笔记总结,各章节主要内容已总结在标题之中 Andrew Ng机器学习课程笔记–week1(机器学习简介&线性回归模型) Andrew Ng机器学习课程笔记--week2(多元线性回归& ...
- Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计
Andrew Ng机器学习课程笔记(六)之 机器学习系统的设计 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7392408.h ...
- Andrew Ng机器学习课程笔记(三)之正则化
Andrew Ng机器学习课程笔记(三)之正则化 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7365475.html 前言 ...
- Andrew Ng机器学习课程笔记(二)之逻辑回归
Andrew Ng机器学习课程笔记(二)之逻辑回归 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7364636.html 前言 ...
随机推荐
- PHP中使用 Memcached 的测试案例
<?php class MemcacheController extends ControllerBase { public function indexAction() { session_s ...
- 繁繁的数字 背包DP
繁繁的数字 背包DP 问一个数\(n\)有多少种二进制分解方案数 \(n\le 10^5\) 如7有7=4+2+1=4+1+1+1=2+2+2+1=2+2+1+1+1=2+1+1+1+1+1=1+1+ ...
- linux系列目录
一:linux系列部分 linux系列(一):ls命令 linux系列(二):cd命令 linux系列(三):pwd命令 linux系列(四):mkdir命令 linux系列(五):rm命令 lin ...
- ArcGIS Enterprise 10.7.1新特性:批量发布服务
ArcGIS Enterprise 10.7.1提供了批量发布GIS服务的功能,能大大简化GIS系统管理员的工作量. 作为发布人员和管理人员,支持向Portal for ArcGIS添加云存储.文件共 ...
- Ceilometer和Gnocchi的监控架构解析
1 采集模块整体架构 采集模块主要分为三大块. Ceilometer:用于采集数据并处理数据后发送到gnocchi服务去存储 Gnocchi:用于将采集数据进行计算合并和存储并提供rest api方 ...
- js 中的方法注入(aop)
js 中的方法注入 java中很多框架支持 apo 的注入, js中也可以类似的进行实现 主要是通过扩展js中方法的老祖 Function 对象来进行实现. Function.prototype.af ...
- 数组不能用for each ,
数组不能用for each 不能用这 for(String xkz:xkzzj){ SjshdcDTO sjshdcDTO = cpcyService.findSjshdcDTOById(xkz); ...
- nginx代理mysql
实验环境: 两台编译安装的mysql 一台编译安装的nginx 192.168.3.1 ...
- js jquery 实现 排班,轮班,日历,日程。使用fullcalendar 插件
如果想用fullcalendar实现排班功能,或者日历.日程功能.那么只需要简单的几步: 这里先挂官网链接: fullcalendar fullcalendar官网下载链接 一.下载及简单配置 1.这 ...
- GO语言Error处理
Go语言没有提供像Java.C#.Python语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛.好处就是避免漏掉本应处理的错误.坏处是代码啰嗦. 错误与异常区别 错误指的是可能 ...