**就是要找更好的估计方法来减少过度拟合情况的发生。 **
大纲
- 贝叶斯统计及正则化
- 在线学习
- 如何使用机器学习算法解决具体问题:诊断算法,销蚀分析,过早优化
笔记:http://www.cnblogs.com/XBWer/p/4336071.html
问题提出
如果选取的特征太少,欠拟合,对于训练集的拟合效果不好,对于测试集的预测效果应该也不会好;但是如果选取的特征太多,过拟合,对于训练集的拟合效果非常好,但是对于测试集的集合效果会变差。
解决过拟合的方法:
-
减少特征的数量:
-人工的选择保留哪些特征;
-模型选择算法(上一讲) -
正则化
-保留所有的特征,但是降低参数的量/值;
-正则化的好处是当特征很多时,每一个特征都会对预测y贡献一份合适的力量;
</br>
1. 贝叶斯统计及其正则化
</br>
贝叶斯公式(用来求后验概率的):
贝叶斯公式
对于参数theta的值
- 频率学派认为这个值是固定的,我们可以通过极大似然估计去猜测这个值。MLE:最大似然估计
- 贝叶斯学派认为这个值是一个随机变量。服从某个先验分布(实际应用中一般是自然分布作为先验分布),theta-p(theta)。后验概率可以用贝叶斯公式求出 MAP:maximum a posteriori 最大后验估计:
这个公式的计算量其实很大,所以实际应用中一般都用最大化后验概率来求出theta,然后带入假设模型htheta(x)中预测:
最大化后验概率可以与极大似然估计求theta的公式比较一下:
极大似然估计发现其实用贝叶斯法求theta只是在末尾加了一个p(theta).
用后验概率法得到的参数theta更不容易拟合,从而降低了过拟合的概率。
</br>
正则化
模型选择的典型方法是正则化。正则化是结构风险最小化策略的实现,是在经验风险上加一个正则化项(regularizer)或罚项(penalty term)。正则化项一般是模型复杂度的单调递增函数,模型越复杂,正则化值就越大。比如,正则化项可以是模型参数向量的范数。
对于代价函数:
-
最大似然估计法是用最小二乘的原理
-
后验概率分布估计则是又引入了一个相当于惩罚项的正则项
这样就可以使得高次项的贡献权重降低,减少过拟合的可能性。
线性回归的正则化
逻辑回归的正则化
</br>
</br>
2. 在线学习
</br>
什么是在线学习?
- 之前学习的算法都属于批量学习(batch learning),一次性批量输入给学习算法,可以被形象的称为填鸭式学习。
- 在线学习(online learning),按照顺序,循序的学习,不断的去修正模型,进行优化。
在线学习首先有一个初始的分类器,当第一个样本到来时,对该样本进行预测,得到预测结果,然后利用该样本的信息对分类器进行更新(比如,考虑感知器算法的更新规则,见笔记 1-2);然后第二个样本到来时做同样的操作,以此类推。这样,我们就对 m 个样本都有一个预测值,只不过它们都是在训练的过程中得到的,对这些预测值进行统计,就得到了在线训练误差。这就是过程上在线学习与批处理的不同之处。
感知器:
就是二类分类的线性分类模型,其输入为样本的特征向量,输出为样本的类别,取+1和-1二值,即通过某样本的特征,就可以准确判断该样本属于哪一类。顾名思义,感知机能够解决的问题首先要求特征空间是线性可分的,再者是二类分类,即将样本分为{+1, -1}两类。
对于感知器算法来说,若正负样本线性可分,那么在线学习算法也是收敛的。
3. 算法的改进方法
</br>
a. 算法诊断
如果现存算法的预测效果比较差,可以考虑的改进因素一般有:
怎么去选择最有效的改进算法是这部分的目的。
-
方差/偏差分析
高方差--过拟合,训练误差很小但泛化误差很大。
需要更多的数据解决或者更少的特征解决。
高方差的误差率
</br>
高偏差--模型本身不合适,比如特征数目过少,表现是训练误差和泛化误差都很大。
需要更多的特征或者更复杂的模型来解决。
高偏差的误差率
</br>
-
是否收敛和目标函数是否正确的判断*
可以画出迭代次数和目标函数的趋势图,但一般很难判断,因为每次优化的只是一小部分。
(这部分还不太懂)
b. 销蚀分析
比如对于垃圾邮件分类器来说,先构建一个初始分类器,然后考虑一些比较高级的特征,比如邮件的语法风格、邮件的主机信息、邮件标题等。先将所有特征全加入到分类器中,然后逐个剔除,观察性能的下降幅度,将那些没有使性能下降或下降很少的特征删去。
网友评论