贝叶斯算法常用于分类
已知类别集合y:(y1,y2,y3…yn)和(特征)项集和x(x1,x2,x3…xm),确定映射规则y =f(x)使xi都可以唯一映射到Y中。 其中Y叫做类别集合,其中每一个元素是一个类别,而X叫做项集合,其中每一个元素是一个待分类项,f叫做分类器。分类算法的任务就是构造分类器f。
贝叶斯公式: p(y|x) = p(x|y) * p(y) / p(x)
朴素贝叶斯:x子项发生的概率都是独立的:
p(y|x) = p(x|y)* p(y) / p(x) = { p(x1|y) p(x2|y) p(xn|y) p(y)} / { p(x1)p(x2)*p(xn) }
- 对贝叶斯公式的理解:
p(y|x)可以看做是根据x找到其对应的y,其在数学上的含义为x发生的前提下y发生的概率。
p(y|x) = p(x|y) * p(y) / p(x)这个公式的意义在于当我们正推的时候不好计算时可以采用逆推的方式,不是有句话叫做事后诸葛亮嘛,从p(y|x)即从结果看过程或者说换个角度有时候就更容易计算了。
那么这个公式是怎么来的呢?在概率上p(A|B) = p(AB) / p(B)。
p(AB)考虑的范围
p(A|B)考虑的范围
也就是说p(A|B)考虑的集合 = 全部集合*p(B),集合的大小和子集概率成反比。
这样理解:p(AB)是综合考虑了A、B同时发生的概率,但是p(A|B)是在默认了B是已经发生的情况,其范围更小,所以p(A|B)和p(AB)的差别就在于是否考虑B的概率p(B)。同理P(B|A) = P(AB) / p(A) –> p(AB) = p(B|A) * p(A)。
于是:p(B|A) = p(AB) / p(B) = p(B|A) * p(A) / p(B) 。
- 对朴素贝叶斯公式的理解
虽然p(y|x) = p(x|y) * p(y) / p(x),但是p(x|y)还是不好算啊,又不能真的根据以前的结果来计算,例如p(丑|嫁人),嫁给丑八怪以前不存在不代表以后不存在啊,所以还是得用数据说话。
朴素贝叶斯简化了计算:x子项x1,x2…xn相互独立时,
p(x|yi) = p(x1|yi) * p(x2|yi) * … p(xn|yi)。
为什么呢,前面说了p(x|yi)表示x在yi的前提下发生的概率,因此在yi下p(x) = p(x1)p(x2)….*P(xn)。把yi下补充完整公式就成了上面那个样子。
注意:具体x中未必包含全部子项,右边的式字也相对应。
参考资料:
http://www.cnblogs.com/leoo2sk/archive/2010/09/17/naive-bayesian-classifier.html