Machine Learning Algorithms Study Notes(3)--Learning Theory
Machine Learning Algorithms Study Notes
高雪松
@雪松Cedro
Microsoft MVP
本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 229 的学习笔记。
Machine Learning Algorithms Study Notes 系列文章介绍
3 Learning Theory
3.1 Regularization and model selection
模型选择问题:对于一个学习问题,可以有多种模型选择。比如要拟合一组样本点,可以使用线性回归,也可以用多项式回归。那么使用哪种模型好呢(能够在偏差和方差之间达到平衡最优)?
还有一类参数选择问题:如果我们想使用带权值的回归模型,那么怎么选择权重w公式里的参数?
形式化定义:假设可选的模型集合是,比如我们想分类,那么SVM、logistic回归、神经网络等模型都包含在M中。
3.1.1 Cross validation
我们的第一个任务就是要从M中选择最好的模型。
假设训练集使用S来表示,如果我们想使用经验风险最小化来度量模型的好坏,那么我们可以这样来选择模型:
|
遗憾的是这个算法不可行,比如我们需要拟合一些样本点,使用高阶的多项式回归肯定比线性回归错误率要小,偏差小,但是方差却很大,会过度拟合。因此,我们改进算法如下:
|
这种方法称为hold-out cross validation或者称为简单交叉验证。
由于测试集是和训练集中是两个世界的,因此我们可以认为这里的经验错误接近于泛化错误(generalization error)。这里测试集的比例一般占全部数据的1/4-1/3。30%是典型值。
还可以对模型作改进,当选出最佳的模型后,再在全部数据S上做一次训练,显然训练数据越多,模型参数越准确。
简单交叉验证方法的弱点在于得到的最佳模型是在70%的训练数据上选出来的,不代表在全部训练数据上是最佳的。还有当训练数据本来就很少时,再分出测试集后,训练数据就太少了。
我们对简单交叉验证方法再做一次改进,如下:
|
这个方法称为k-fold cross validation(k-折叠交叉验证)。说白了,这个方法就是将简单交叉验证的测试集改为1/k,每个模型训练k次,测试k次,错误率为k次的平均。一般讲k取值为10。这样数据稀疏时基本上也能进行。显然,缺点就是训练和测试次数过多。
极端情况下,k可以取值为m,意味着每次留一个样例做测试,这个称为leave-one-out cross validation。
如果我们发明了一种新的学习模型或者算法,那么可以使用交叉验证来对模型进行评价。比如在NLP中,我们将训练集中分出一部分训练,一部分做测试。
参考文献
[1] Machine Learning Open Class by Andrew Ng in Stanford http://openclassroom.stanford.edu/MainFolder/CoursePage.php?course=MachineLearning
[2] Yu Zheng, Licia Capra, Ouri Wolfson, Hai Yang. Urban Computing: concepts, methodologies, and applications. ACM Transaction on Intelligent Systems and Technology. 5(3), 2014
[3] Jerry Lead http://www.cnblogs.com/jerrylead/
[4]《大数据-互联网大规模数据挖掘与分布式处理》 Anand Rajaraman,Jeffrey David Ullman著,王斌译
[5] UFLDL Tutorial http://deeplearning.stanford.edu/wiki/index.php/UFLDL_Tutorial
[6] Spark MLlib之朴素贝叶斯分类算法 http://selfup.cn/683.html
[7] MLlib - Dimensionality Reduction http://spark.apache.org/docs/latest/mllib-dimensionality-reduction.html
[8] 机器学习中的数学(5)-强大的矩阵奇异值分解(SVD)及其应用 http://www.cnblogs.com/LeftNotEasy/archive/2011/01/19/svd-and-applications.html
[9] 浅谈 mllib 中线性回归的算法实现 http://www.cnblogs.com/hseagle/p/3664933.html
[10] 最大似然估计 http://zh.wikipedia.org/zh-cn/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1
[11] Deep Learning Tutorial http://deeplearning.net/tutorial/
Machine Learning Algorithms Study Notes(3)--Learning Theory的更多相关文章
- Machine Learning Algorithms Study Notes(1)--Introduction
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 目 录 1 Introduction 1 1.1 ...
- Machine Learning Algorithms Study Notes(2)--Supervised Learning
Machine Learning Algorithms Study Notes 高雪松 @雪松Cedro Microsoft MVP 本系列文章是Andrew Ng 在斯坦福的机器学习课程 CS 22 ...
- Machine Learning Algorithms Study Notes(6)—遗忘的数学知识
机器学习中遗忘的数学知识 最大似然估计( Maximum likelihood ) 最大似然估计,也称为最大概似估计,是一种统计方法,它用来求一个样本集的相关概率密度函数的参数.这个方法最早是遗传学家 ...
- Machine Learning Algorithms Study Notes(4)—无监督学习(unsupervised learning)
1 Unsupervised Learning 1.1 k-means clustering algorithm 1.1.1 算法思想 1.1.2 k-means的不足之处 1 ...
- Machine Learning Algorithms Study Notes(5)—Reinforcement Learning
Reinforcement Learning 对于控制决策问题的解决思路:设计一个回报函数(reward function),如果learning agent(如上面的四足机器人.象棋AI程序)在决定 ...
- 机器学习(Machine Learning)与深度学习(Deep Learning)资料汇总
<Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍很全面,从感知机.神经网络.决策树.SVM.Adaboost到随机森林.D ...
- 5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics
5 Techniques To Understand Machine Learning Algorithms Without the Background in Mathematics Where d ...
- 机器学习算法之旅A Tour of Machine Learning Algorithms
In this post we take a tour of the most popular machine learning algorithms. It is useful to tour th ...
- 机器学习(Machine Learning)&深度学习(Deep Learning)资料
机器学习(Machine Learning)&深度学习(Deep Learning)资料 機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008 ...
随机推荐
- 如何停止CSS3的动画?
前言 我们在移动端一般使用zepto框架,与其说zepto是jquery的轻量级替代版,不如说是html5替代版我们在js中会用到animate方法执行动画,这个家伙可是真资格的动画,完全是css一点 ...
- 设置跨域的iframe的高度
原因 如下图,A域中有个B域的页面,但是B的页面的长度不确定,A无法去设置一个准确的高度. PS:iframe高度设置auto是无效的 解决办法 如上图, (1)在B页面中加一个A的代理页面的ifra ...
- Navigator对象、Screen对象
Navigator对象: Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象: Navigator对象集合:plugins[] 返回对 ...
- JavaScript学习笔记-数组
数组 数组中的每个元素的位置是索引,索引是基于32位的由0开始的数值,最大索引为(2的32次方-2),最大长度为(2的32次方-3) 数组是无类型的:元素可为任意类型:动态的:可根据需要自动增长.缩减 ...
- ALV的颜色分为行的颜色、列的颜色和CELL的颜色
ALV的颜色分为行的颜色.列的颜色和CELL的颜色.任务要求,将一定的Tabellenfeld 用黄色填充,也就是说CELL的颜色 DATA:ls_cellcolorTYPElvc_s_scol,co ...
- SAP打印机配置
SAP打印机配置 一.SAP打印原理 SAP的打印过程分两个步骤: 1.创建假脱机请求: 2.创建输出请求: 在点击打印按钮后,系统会提示创建假脱机请求后,你可以选择直接生成输出请求,或者手动生成输出 ...
- Understanding the Uncertain Geographic Context Problem
"The areal units (zonal objects) used in many geographical studies are arbitrary, modifiable, a ...
- [UITableView _endCellAnimationsWithContext:]
由于项目需要,做一个UITableView来实现删除功能. 1.TableView是分组的. 2.点击删除按钮后,某行被删除. 出现:[UITableView _endCellAnimat ...
- 如何为Swift进行宏定义
这阵子一直在自学Swift, 因为之前iOS的开发一直用Objective-C, 所以习惯了C语言那种宏定义方式, Swift作为一款更加安全的语言, 放弃了C语言中的宏定义, 有效的防止预编译时代码 ...
- 【Android】不使用WebView来执行Javascript脚本(Rhino)
前言 动态执行脚本能有效的降低重要功能硬编码带来的问题,尤其是依赖于第三方的应用,可以通过动态脚本+在线参数(例如友盟在线参数)再不更新应用的情况下升级功能. 声明 欢迎转载,但请保留文章原始出处:) ...