机器学习:朴素贝叶斯算法的原理及应用场景、优缺点简单介绍
一、朴素贝叶斯算法概述
朴素贝叶斯是一种基于贝叶斯定理的简单概率分类算法。它假设特征之间相互独立,这是其“朴素”的由来。
二、贝叶斯定理基础
贝叶斯定理是整个算法的核心,其公式如下:
P(A∣B)=P(B∣A)P(A)P(B)P(A|B)=\frac{P(B|A)P(A)}{P(B)}P(A∣B)=P(B)P(B∣A)P(A)
在分类问题中,我们设AAA为类别变量(如垃圾邮件和非垃圾邮件类别),BBB为特征向量(如邮件中的单词出现情况)。
三、算法原理细节
-
先验概率计算
- 对于训练数据集中的每个类别yiy_iyi,先验概率P(yi)P(y_i)P(yi)的计算如下:
P(yi)=NyiNP(y_i)=\frac{N_{y_i}}{N}P(yi)=NNyi
其中NyiN_{y_i}Nyi是属于类别yiy_iyi的样本数量,NNN是总的样本数量。例如,若有100封邮件,其中60封是非垃圾邮件,那么非垃圾邮件的先验概率P(y=非垃圾邮件)=60100=0.6P(y =非垃圾邮件)=\frac{60}{100}=0.6P(y=非垃圾邮件)=10060=0.6。 -
条件概率计算
- 对于离散型特征xjx_jxj,在类别yiy_iyi下的条件概率P(xj∣yi)P(x_j|y_i)P(xj∣yi)计算公式为:
P(xj∣yi)=Nyi,xjNyiP(x_j|y_i)=\frac{N_{y_i,x_j}}{N_{y_i}}P(xj∣yi)=NyiNyi,xj
这里Nyi,xjN_{y_i,x_j}Nyi,xj是在类别yiy_iyi中特征xjx_jxj出现的次数,NyiN_{y_i}Nyi是类别yiy_iyi中的样本数量。比如在非垃圾邮件类别中,单词“优惠”出现了10次,非垃圾邮件有60封,那么P(x=“优惠”∣y=非垃圾邮件)=1060=16P(x =“优惠”|y =非垃圾邮件)=\frac{10}{60}=\frac{1}{6}P(x=“优惠”∣y=非垃圾邮件)=6010=61。- 对于连续型特征,通常假设其服从高斯分布(正态分布)。此时,条件概率计算公式为:
P(xj∣yi)=12πσyi,j2exp(−(xj−μyi,j)22σyi,j2)P(x_j|y_i)=\frac{1}{\sqrt{2\pi\sigma_{y_i,j}^2}}\exp\left(-\frac{(x_j - \mu_{y_i,j})^2}{2\sigma_{y_i,j}^2}\right)P(xj∣yi)=2πσyi,j21exp(−2σyi,j2(xj−μyi,j)2)
其中μyi,j\mu_{y_i,j}μyi,j是类别yiy_iyi中特征xjx_jxj的均值,σyi,j2\sigma_{y_i,j}^2σyi,j2是类别yiy_iyi中特征xjx_jxj的方差。 -
后验概率计算与分类决策
- 对于一个待分类的样本x=(x1,x2,⋯ ,xn)x=(x_1,x_2,\cdots,x_n)x=(x1,x2,⋯,xn),计算它属于每个类别yiy_iyi的后验概率P(yi∣x)P(y_i|x)P(yi∣x)。根据贝叶斯定理和朴素假设(特征相互独立),可得:
P(yi∣x)=P(x∣yi)P(yi)P(x)P(y_i|x)=\frac{P(x|y_i)P(y_i)}{P(x)}P(yi∣x)=P(x)P(x∣yi)P(yi)
由于P(x)P(x)P(x)对于所有类别都是相同的,在比较不同类别后验概率大小时可以忽略。所以实际计算P(yi∣x)P(y_i|x)P(yi∣x)时主要计算P(x∣yi)P(yi)P(x|y_i)P(y_i)P(x∣yi)P(yi),而根据朴素假设P(x∣yi)=∏j=1nP(xj∣yi)P(x|y_i)=\prod_{j = 1}^{n}P(x_j|y_i)P(x∣yi)=∏j=1nP(xj∣yi)。- 最后,通过比较样本xxx属于各个类别yiy_iyi的后验概率P(yi∣x)P(y_i|x)P(yi∣x),将样本分类到后验概率最大的类别,即:
y^=argmaxyiP(yi∣x)\hat{y}=\arg\max_{y_i}P(y_i|x)y^=argyimaxP(yi∣x)
四、应用场景与优势
-
应用场景
- 文本分类:比如垃圾邮件过滤。可以把邮件中的单词作为特征,利用朴素贝叶斯判断邮件是垃圾邮件还是正常邮件。
- 情感分析:用于分析文本(如产品评论)的情感倾向,是正面还是负面。将评论中的词汇等作为特征来计算概率。
- 疾病诊断辅助:在医疗领域,以患者的症状作为特征,帮助判断可能患有的疾病类别。
-
优势
- 算法简单易懂,容易实现。其计算过程主要是基于概率公式的统计计算,代码实现较为直观。
- 对小规模数据表现良好。在数据量不大的情况下,能够快速地训练模型并且得到不错的分类效果。
- 对缺失数据不太敏感。即使部分特征值缺失,依然可以根据其他特征来计算后验概率进行分类。
五、局限性
- 朴素贝叶斯假设特征之间相互独立,这在很多实际情况中并不成立。例如在文本分类中,单词之间往往存在语义关联,像“电脑”和“软件”经常同时出现,这与独立性假设相违背。
- 对输入数据的准备方式(如离散化、特征选择等)比较敏感。不同的特征处理方式可能会导致分类结果有较大差异。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)