贝叶斯定理
贝叶斯定理之所以有用,是因为我们在生活中经常遇到这种情况:我们可以很容易直接得出P(A|B),P(B|A)则很难直接得出,但我们更关心P(B|A),贝叶斯定理就为我们打通从P(A|B)获得P(B|A)的道路。
下面我们直接给出贝叶斯定理
P(B∣A)=P(A∣B)P(B)P(A)
条件概率:
P(A∣B)
表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条件概率。其基本求解公式为:
P(A∣B)=P(AB)P(B)
朴素贝叶斯的思想
朴素贝叶斯的思想基础是这样的:对于给出的待分类项,求解在此项出现的条件下各个类别出现的概率,哪个最大,就认为此待分类项属于哪个类别。通俗来说,就好比这么个道理,你在街上看到一个黑人,我问你你猜这哥们哪里来的,你十有八九猜非洲。为什么呢?因为黑人中非洲人的比率最高,当然人家也可能是美洲人或亚洲人,但在没有其它可用信息下,我们会选择条件概率最大的类别,这就是朴素贝叶斯的思想基础。
朴素贝叶斯分类的正式定义如下:
- 设 x={a1,a2,…,am} 为一个待分类项,而每个a为x的一个特征属性。
- 有类别集合 C={y1,y2,…,yn} 。
- 计算 P(y1∣x),P(y2∣x),…,P(yn∣x) 。
如果 P(yk∣x)=max{P(y1∣x),P(y2∣x),…,P(yn∣x)} ,则 x∈yk 。
那么现在的关键就是如何计算第3步中的各个条件概率。我们可以这么做:1.找到一个已知分类的待分类项集合,这个集合叫做训练样本集。
2.统计得到在各类别下各个特征属性的条件概率估计。即。
P(a1∣y1),P(a2∣y1),…,P(am∣y1) ;
P(a1∣y2),P(a2∣y2),…,P(am∣y2) ;
…
P(a1∣yn),P(a2∣yn),…,P(am∣yn) ;
3.如果各个特征属性是条件独立的,则根据贝叶斯定理有如下推导: P(yi∣x)=P(x∣yi)P(yi)P(x)
因为分母对于所有类别为常数,因为我们只要将分子最大化皆可。又因为各特征属性是条件独立的,所以有: P(x∣yi)P(yi)=P(a1∣yi)P(a2∣yi)…P(am∣yi)P(yi)
根据上述分析,朴素贝叶斯分类的流程可以由下图表示(暂时不考虑验证)
具体例子分析
样本空间D如下表所示:其中 |D|=14.
属性集合为A{age,come,student,credit_rating} 对应的属性个数n=4.
分类属性为:buys_computer,值为{yes,no} 即C1:buys_computer = yes;C2: buys_computer = no; 分类标签个数 m = 2;
有一待分类的数据元X={age<=30,income=medium,student=yes,credit_rating=fail}.
则根据朴素贝叶斯分类器的工作流程我们可以计算出:
P(Ci):
P(buys_computer = “yes”) = 9/14 = 0.643
P(buys_computer = “no”) = 5/14= 0.357
P(xi|Ci):
P(age = “<=30” | buys_computer = “yes”) = 2/9 = 0.222
P(age = “<= 30” | buys_computer = “no”) = 3/5 = 0.6
P(income = “medium” | buys_computer = “yes”) = 4/9 = 0.444
P(income = “medium” | buys_computer = “no”) = 2/5 = 0.4
P(student = “yes” | buys_computer = “yes) = 6/9 = 0.667
P(student = “yes” | buys_computer = “no”) = 1/5 = 0.2
P(credit_rating = “fair” | buys_computer = “yes”) = 6/9 = 0.667
P(credit_rating = “fair” | buys_computer = “no”) = 2/5 = 0.4
P(X|Ci):
P(X|buys_computer = “yes”) = 0.222 x 0.444 x 0.667 x 0.667 = 0.044
P(X|buys_computer = “no”) = 0.6 x 0.4 x 0.2 x 0.4 = 0.019
P(X|Ci)*P(Ci) :
P(X|buys_computer = “yes”) * P(buys_computer = “yes”) = 0.028
P(X|buys_computer = “no”) * P(buys_computer = “no”) = 0.007
因为0.28>0.007所以X属于类:buys_computer = “yes”.
这里的背景色是 |
这里的背景色是: |