开发者学堂课程【机器学习算法 :朴素贝叶斯1】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/535/detail/7276
朴素贝叶斯1
内容介绍
一、朴素贝叶斯
二、朴素贝叶斯的模型
二、总结
一、朴素贝叶斯
1.朴素贝叶斯(Naive Baves,NB)是一种少见得基于概率理论的分类算法,例如有几个分类结果,计算样本归属于每一个分类的概率,取概率最大的分类作为最终的输出结果,贝叶斯理论为理论基础通过计算样本归属于不同类别的概率来进行分类,是一种经典的分类算法。
2.贝叶斯理论(偏哲学):基于能获得的最好证据(观察、数据和信息等),来计算信念度(或者假说、主张、命题)的有效方法。信念度即为对事物的真实性和正确性所具有的的信心。
3.朴素:单纯的、粗糙的,简单粗暴的假设给定目标值时属性之间相互条件独立,互补影响。
已知一组事件{A1,A2,…An},通过这组事件去估计一个事件B发生的概率,即求:P(B|A1,A2,…,An)根据贝叶斯公式有:
以上为典型的联合概率,例:P(A1A2)=P(A2|A1)*P(A1)
假设有100个事件,每个事件可能的结果有2个,将所有属性组合起来判断交集,则该事件组的联合分布有2的100次方种组合,无法计算,有可能存在交集是空的情况,但在没有便利之前,并不知道哪些交集是空,所以需要计算2的100次方次,很难计算。
一旦“朴素”,即各事件独立,马上变简单了,就不需要去计算复杂的条件概率下的联合概率、相互之间是独立的。
联合概率就变成了,每一个事件发生的乘积,b 发生条件下 Ai 发生的概率的乘积,计算数量一下子就从2的100次方下降到200个,实际上 a 事件之间并不是相互独立的,不能武断粗暴的理解为独立的,对准确性有影响,但在计算量上来讲,精确的准确的无法计算,做了粗暴的假设后,计算量变得很小。如果事件之间关联性比较大的话,互相影响比较严重,建议不要使用朴素贝叶斯算法,因为前提条件本身不成立。
二、朴素贝叶斯的模型
有 m 个样本,每个样本有 n 个特征,输出为 k 个类别,表示如下:
通过样本学习得到先验概率:P(Y=Cj),j=1,2,…,k
通过样本学习得到条件概率:P(X=x|Y=Cj)=P(X1= x1,X₂ = x2,…Xn = xn|Y =Cj)
通过上述学习结果,可以计算X,Y的联合概率分布:
最终输出结果是某一个类,其中存在一个样本为x的概率是多大。
对上图结果再进行朴素假设得到如下结果
将联合概率变成一组单个概率发生事件的乘积,可算性就变强许多。即可得到最终结果
对新样本的预测
计算 k 个分类的条件概率是为了给新样本找到属于某一个类的概率,找到概率最大的一类,就可以作为新样本最终归属的类。
三、总结
1. 首先得到先验概率
2. 条件概率并不是主要的,因为后续可以将其化简成单个独立事件发生的概率
3. 通过先验概率去计算联合概率分布,即可确定朴素贝叶斯的模型。
4. 再对新样本预测,计算 k 个分类的条件概率,找到最大的一个即可。