学习理论之模型选择——Andrew Ng机器学习笔记(八)
来源:互联网 发布:云盘系统源码 编辑:程序博客网 时间:2024/06/06 12:49
内容提要
这篇博客主要的内容有:
1. 模型选择
2. 贝叶斯统计和规则化(Bayesian statistics and regularization)
最为核心的就是模型的选择,虽然没有那么多复杂的公式,但是,他提供了更加宏观的指导,而且很多时候是必不可少的。now let’s begin
模型选择
假设我们训练不同的模型去解决一个学习问题,比如我们有一个多项式回归模型
我们先假设一个模型的有限几何
交叉验证
解决上面模型选择问题的一个简单想法就是我用70%的数据对每一模型进行训练,用30%的数据进行训练误差的计算,然后我们在比较各个模型的训练误差,就可以选择出训练误差比较小的模型了。如果对这些误差不用请参看(学习理论之经验风险最小化——Andrew Ng机器学习笔记(七))这篇博客。
如果我们的训练数据非常容易的就可以得到,那么上面这个方法将是一个不错的方法,因为它只需要遍历训练模型一次就可以得到一个比较好的模型。但是训练数据往往不是非常容易就可以得到,之前我就采集过一次实验数据,那的的确是一次非常痛苦的过程。所以我们就想高效的利用我们来之不易的训练数据,有人就提出来K重交叉验证(k-fold cross validation)算法,算法过程如下:
- 将训练集
S 分成k 份,分别记为S1,S2,...,Sk - 对于每一个
Mi ,都执行如下过程:
forj=1,2,...,k
在S1,S2,...Sj−1,Sj+1,...Sk 上训练模型Mi ,得到假设函数hij 。
利用Sj 计算hij 的训练误差,然后求平均值。- 选择出训练误差最小的模型
Mi ,然后在整个训练集上训练整个模型,最后我们就得到了对于这个训练集最好的模型
这个算法主要的思想就是:对于每一个模型,我们一次用
特征选择
特征选择 ( Feature Selection )也称特征子集选择( Feature Subset Selection , FSS ) ,或属性选择( Attribute Selection ) ,是指从全部特征中选取一个特征子集,使构造出来的模型更好。
为什么要特征选择
先举个例子,之前我们举过邮件分类的例子,整个邮件中的单词是否出现构成的0,1向量作为其特征向量。但是,当其中出现“deep leaning”等单词对判断判断是否为垃圾邮件作用不大,反而出现“buy”等单词对判断作用大,所以我们就行将其中作用不大的这些单词剔除掉。剔除的过程就是特征选择的过程。下面我们再来看看更加严格的说明
在机器学习的实际应用中,特征数量往往较多,其中可能存在不相关的特征,特征之间也可能存在相互依赖,容易导致如下的后果:
1. 特征个数越多,分析特征、训练模型所需的时间就越长
2. 特征个数越多,容易引起“维度灾难”,模型也会越复杂,其推广能力会下降
特征选择能剔除不相关(irrelevant)或亢余(redundant )的特征,从而达到减少特征个数,提高模型精确度,减少运行时间的目的。另一方面,选取出真正相关的特征简化了模型,使研究人员易于理解数据产生的过程。
下面我们介绍特征选择的算法
前向搜索和后向搜索
先来看前向搜索,他的核心思想就是尝试特征向量所有组合,从中选择出训练误差最小的特征向量的自向量,原始特征向量的维度为n,具体描述如下:
1. 初始化特征向量
2. 循环直到到达阈值或者循环n趟
令
3. 输出最终训练误差最小的特征向量的子集
实际上这个算法就是在遍历这样一个排列树(关于算法的书上有排列树的概念):
并且以广度优先的方式进行遍历。不同就是,每一层只保留一个训练误差最小的节点。
与前向搜索思想相反的搜索算法叫后向搜索,他的核心思想是:先将
前向搜索和后向搜索属于封装特征选择(wrapper model feature selection),Andrew Ng老师还解释为什么称为“Wraper”原因,说这算个就像“wrapper”一样套在你的学习算法外面,在执行的时候需要不断重复的调用你的学习算法。前向搜索和后向搜索都有两层循环,并且最坏情况下循环计数都到达
滤特征选择算法(Filter feature selection method)
有时候前向和后向搜索的复杂度是无法接收的,比如在邮件分类中,特征向量的维数有时候会到达5000,甚至更高。这时的复杂度我们接收不了。所以就有了滤特征选择算法,它是一种启发式搜索算法,其中我们会定义个评价函数
定义S(i)
这个
其中
在信息论中有用来评价不同概率分布之间的差异的方法,有时候
当
k值的确定
将所有的特征依据
整个过程中我们一直在欠拟合和过拟合之间平衡,下面我们再来看看另外一个完成这种使命的另外一种方法。
贝叶斯统计和规则化(Bayesian statistics and regularization)
在这一部分我们主要讨论的是假设函数
这样求的原理是我们认为
其中
是根据我们的学习算法而定的,比如在逻辑回归之中:
而且:
在知道
需要特别说是:
上面的这种方法有一个最大的问题就是
可以看出这个式子和最大似然估计特别像,只是在他的最后多了
在最后我们再来看看
图中的红线表示我们用最大似然估计得到
但是,最大似然估计也可以经过修正后得到类似的效果,假如是线性回归:
通过这样的修正得到的
end
- 学习理论之模型选择——Andrew Ng机器学习笔记(八)
- 学习理论之经验风险最小化——Andrew Ng机器学习笔记(七)
- Andrew Ng 机器学习笔记(八)
- 监督学习之广义线性模型——Andrew Ng机器学习笔记(三)
- Andrew NG机器学习课程笔记系列之——机器学习之神经网络模型-上(Neural Networks: Representation)
- Andrew NG机器学习课程笔记系列之——机器学习之神经网络模型-下(Neural Networks: Representation)
- 非监督学习之混合高斯模型和EM算法——Andrew Ng机器学习笔记(十)
- Andrew NG机器学习课程笔记(八)
- Andrew Ng机器学习笔记(四)——GLM广义线性模型
- 监督学习之生成学习算法——Andrew Ng机器学习笔记(四)
- 监督学习之梯度下降——Andrew Ng机器学习笔记(一)
- 监督学习之Logistic regression——Andrew Ng机器学习笔记(二)
- 监督学习之支持向量机——Andrew Ng机器学习笔记(五)
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- Andrew NG机器学习课程笔记系列之——机器学习之正则化(Regularization)
- Andrew NG机器学习课程笔记系列之——机器学习之逻辑回归(Logistic Regression)
- Andrew Ng机器学习课程笔记(四)之神经网络
- Andrew Ng 机器学习笔记(一)
- Java中的内部类
- JSP+Servlert中的Filter详解
- 创建版本库
- duilib corner属性的贴图技巧——让图片自动贴到控件的的某一边或者一角并自适应控件的大小
- UIViewController的生命周期
- 学习理论之模型选择——Andrew Ng机器学习笔记(八)
- app流量优化
- 终极飞行棋地图实现和逻辑判断
- MODBUS通信协议精析(未完成待续)
- python项目之 天气程序 带GUI
- Git(一)基本介绍和安装
- iOS开发 X-code技巧
- Precision Helper:最佳免费 CHM 制作软件
- Mongodb Notes