机器学习笔记 线性判别分析(上)
2015-10-05 01:14
239 查看
机器学习笔记 线性判别分析(上)
http://www.cnblogs.com/cklwanfifa/p/4852492.html前面我们简要说明了贝叶斯学习的内容。由公式可以看出来,我们假定已经知道了似然概率的密度函数的信息,才能进行后验概率的预测。但有的时候,这些信息可能是不方便求出来的。因此,密度函数自身的估计问题成为了一个必须考虑的问题。
第一种思考的方法是跳出估计密度函数的问题,直接对样本集使用线性回归的方法。这样做虽然简单粗暴,但是仅仅适用于“连续型”分类的问题,或者说按照“自然顺序”分类。比如说小明今天晚上跪老婆的地方可能是{地毯,地板,搓衣板,钉板},可以看到不同的分类其实是对老婆怒气值这样一个连续函数的映射。但是大多数情况,分类的标签并不是按照自然顺序分类的,因此线性回归并不可行。当然,如果是二分类的问题情况会相对好一些,但是回归值并不是特别好解释,因此可以用一个sigmoid函数将R映射到(0,1)上,回归值自然地能够表示属于此分类的概率。这也就是logistic模型的主要内容。
第二种思考的方式是将高斯分布作为分类器概率密度函数的模型。
其中均值是μ,协方差矩阵是Σ 。
将密度函数带入贝叶斯分类器,取对数将相同的的值删去,便可得到判别函数的形式
在这里,全部类的协方差矩阵的最大似然估计是类内样本的协方差矩阵汇集而成。
这样的方法叫做线性判别分析,也就是(LDA)。但实际上,我们可以不用估计全部类的协方差矩阵,直接将类内样本的协方差矩阵带入。那么判别函数即变为
这是一个关于x的二次函数,因此也叫二次判别分析(QDA)。
QDA和LDA之间的关系是一个典型的bias-variance trade-off ,也就是方差和偏差的取舍。这是机器学习里面一个核心的问题。简单来说,机器学习模型的预测值和真实值之间的差异可以分解为方差和偏差这两个此消彼长的量的综合(再加上一个不可约的误差,在此不考虑)。通俗来说,高方差低误差的模型意味着过于灵敏,当需要预测的真实函数并没有变化,而只是使用了不同的样本,就能够使预测值产生较大的变化。反之,高误差低方差意味着过于迟钝,即使真实的函数发生变化,依然不会使预测值改变。因此在其中如何取舍,就成了一个很重要的问题。
很容易可以看出,LDA相对方差更低,而QDA相对误差更低。因此,在样本集比较少,对协方差矩阵很难估计准确时,采用LDA更加合适。而当样本集很大,或者类间协方差矩阵差异比较大的时候,采用QDA更加合适。
相关文章推荐
- 为什么学习JavaEE
- LintCode "Delete Digits"
- Leetcode Word Search
- HDU 1213
- 【转】hadoop中map和reduce的数量设置问题
- 机器学习笔记 线性判别分析(中)
- Freescale Yocto Project搭建
- 原子操作 vs 非原子操作
- HDU 5135 Little Zu Chongzhi's Triangles (2014年广州赛区现场赛I题)
- CSS样式----图文详解(二):css属性
- 1041. 考试座位号(15)
- JNI字符串转字节数组指针方法
- 项目管理-成本管理
- Ubuntu 15.04趟坑笔记
- 解题报告 之 ZOJ 3329 One Person Game
- 字符串操作函数
- 掌握VS2010调试 -- 入门指南
- Nginx 引入线程池
- Leetcode那点事儿
- already defined in *.obj 的问题额解决方法