朴素贝叶斯模型算是比较简单的模型了,首先还是看公式:
当我们要判断一个x他属于哪一类时,也就是要判断他的y值,那么可以通过这个公式转移,朴素贝叶斯分类器的做法比较简单,直接比较分母,因为分子是相同的,我只要找到使得分子最大的那个y,就是x属于的类别,但是这里需要注意的有两点:
1 P(x/y)的计算方法
显然p(y)的计算很简单,而对于,p(x/y)在每一个xi在关于y条件独立的情况下,可以展开为:
n为feature的个数,而对于p(xi/y)的计算,显然也比较简单。
2 分子某一项出现0的情况
在P(x/y)的计算公式中,如果出现了某个p(xi/y)值为0,那么显然p(x/y)=0,还有更加不好的情况就是,对于所有的样本,有一个特征对于任何y值从来都没出现过,那么单单从比较的角度来说,有p(x/yj)=0 (j=1,2,,,k,k是类别数)无法比较。但是如果我们算P(y/x)的值,甚至会出现0除以0的情况,针对这样的情况,有一个叫做拉普拉斯平滑法的东西就可以发挥作用了。
拉普拉斯平滑法针对分子某一项p(xi/y)等于0的情况,他采取了一个办法,使得这一项p(xi/y)不可能是0,他的具体做法是:
分子加1,分母加k(注意这里的k不是表示类别数,这里的k表示xi总共有k种取值),或者可以这样理解,假设xi的每种取值都出现过一次,这样做的好处第一是这一项不会是0了,第二是还满足了概率加起来为1这个条件,即:
其中valej表示的是xi的第j种值。
接下来在说几个关于贝叶斯的理论,这些东西在prml这本书里面有很多涉及。
1关于参数:
对于参数的认识有两种观点,一种是频率学派的,他们认为参数是一个固定不变的值,贝叶斯学派的则认为参数不是固定的,它是符合一定的概率分布的。
2 先验,后验和似然的关系
在某个模型的参数估计问题中,假如有一堆样本,我们有一个观察集合D={t1,t2,...tm},然后我们想估计参数的值,由贝叶斯公式可以得到:
P(D)是一个恒定的和w无关的式子,p(D/w)又称作似然函数和,p(w)则是先验概率,所以得到了:
在贝叶斯理论下,最大似然的方法并不是最好的,原因就是最大似然假设参数是一个固定的数,这和贝叶斯理论矛盾,贝叶斯则选用了另一种最大,叫做maximum posterior(MAP),值得一提的是,岭回归就是由它推导出来的,具体可以看我博客岭回归的介绍。
3 贝叶斯线性回归
既然贝叶斯理论认为参数不是一个固定的数,那么假如对于线性回归这样一个问题,我如何进行模型的求解呢?
其实还是比较简单的,参数既然是一个分布,我就枚举这个分布所有的取值,然后每取一个值,做一次预测,说到这里,应该就会明白,说白了就是一个积分。
这里加粗的是给定的样本集合,这里都省略了两个高斯分布的参数,然后给你一个x,让你预测它的t值,这里需要说明一点的是,这个式子最后的结果还是一个高斯分布,他并不是一个确定的值,这是因为积分里面这两个分布都是高斯分布,其乘积依然是高斯分布,加起来还是高斯分布,所以贝叶斯线性回归最后的结果就是一个高斯分布,而不是一个确定的值。它的结果如下: