朴素贝叶斯分类算法(2)

计算P(C1|111∙○∙A)和P(C2|111∙○∙A)需要用到P(111∙○∙A|C1)和P(111∙○∙A|C2),此时应用朴素贝叶斯算法,我们需要一个先决条件——各观测项相互独立、没有关联关系。因为如果相互独立,就可以把概率公式拆分成这样:P(111∙○∙A|C1)=P(111|C1)*P(○|C1)*P(A|C1),这样算起来会更容易,而且更少出现等于0的情况。

P(C1|111∙○∙A)= P(111∙○∙A|C1)*P(C1)= P(111|C1)*P(○|C1)*P(A|C1)*P(C1)=1/6*4/5*4/5*5/7=0.076

P(C2|111∙○∙A)= P(111∙○∙A|C2)*P(C2)= P(111|C2)*P(○|C2)*P(A|C2)*P(C2)=1/3*1/2*1/3*2/7=0.016

C1类比C2类概率大多了,自然预测为C1类。肉眼观察也能有这样感觉:虽然111没有在观测项1里出现过,但大部分○和大部分A都属于C1类,那么这条新数据属于C1类的可能性也很大。这就是三个观测项相互独立并共同作用于结果的情况。

实际类别是什么呢?那就没人知道了。其实我在设计第一个表格的时候预想的规则是这样的:只有连着两个1以上的数字是C2类,否则就是C1类。可见算法是很难猜测规则的,尤其训练数据量少的时候。我们只能在已有数据上多尝试几种算法,多试验一些参数,评估正确率最高的算法,再应用到未来的数据上去。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4879bc338ff563ee61eb54fa9b84727a.html