01 分类方法
之前我们学习了一种分类方法——K近邻法(KNN),今天我们再学习一种更常用的分类方法
朴素贝叶斯法
这里,我们先区分一下“分类”和“聚类”
分类的目的是学会一个分类函数或分类模型(也常常称作分类器 ),该模型能把新输入的数据映射到给定类别中的某一个类中。
聚类(clustering)是指根据“物以类聚”原理,将本身没有类别的样本聚集成不同的组(簇),并且对每一个这样的簇进行描述的过程。它的目的是使得属于同一个簇的样本之间应该彼此相似,而不同簇的样本应该足够不相似。
我们在上一篇文章中讲到的K-Means就属于聚类算法,KNN、朴素贝叶斯则属于分类方法。
下面详细讲解朴素贝叶斯方法。
02 相关概念
学习朴素贝叶斯之前,先理清下面三个概念,要不然你的脑袋会晕掉的。
先验概率
事件发生前的预判概率。可以是基于历史数据的统计,可以由背景常识得出,也可以是人的主观观点给出。一般都是单独事件概率,如P(X),P(Y)。条件概率
一个事件发生后另一个事件发生的概率。一般的形式为P(X|Y),表示Y发生的条件下X发生的概率。后验概率
事件发生后求的反向条件概率;或者说,基于先验概率求得的反向条件概率。表达形式与条件概率相同。如P(Y|X)
03 朴素贝叶斯
基本假设
朴素贝叶斯,英文叫Naive Bayes。
Naive?
那是有原因的,朴素贝叶斯对输入变量做了一个很强的假设——条件独立
就是这么个意思:条件独立
输入变量之间是相互独立的,没有概率依存关系。(若相互依存,那叫贝叶斯网络)
即,用于分类的特征(xj)在类(y=ck)确定的条件下,都是相互独立的,即
P(X=x|Y=ck)=P(X1=x2,X2=x2...Xn=xn|Y=ck)
=P(X1=x1|Y=ck)P(X2=x2|Y=ck)...P(Xn=xn|Y=ck)
贝叶斯公式
基本原理:P(X,Y)=P(Y|X)P(X)=P(X|Y)P(Y) => P(Y|X)=P(X|Y)P(Y)/P(X)
于是对于后验概率P(Y|X),有:朴素贝叶斯分类器
根据贝叶斯公式,朴素贝叶斯分类器就产生了:
y=f(x)=argmax(P(Y|X))
这个分类器要做的就是,对于新输入x,计算所有可能的Y对应的后验概率P(Y|X),认为后验概率最大的那个Y就是这个新输入x的类。
04 朴素贝叶斯的参数估计方法
参数估计目的
根据上一节,朴素贝叶斯分类器其实就是先验概率P(Y)和条件概率P(X|Y)的乘积,要使用朴素贝叶斯分类器,就要估计先验概率P(Y=ck)和条件概率P(Xj=ajl|Y=ck),这就是参数估计。
常使用极大似然估计和贝叶斯估计去求这两个概率。
极大似然估计
-
先验概率
-
条件概率
贝叶斯估计
-
先验概率
-
条件概率
上式的朗母达=1时,叫做——拉普拉斯平滑(Laplace smoothing)
相比于极大似然估计,贝叶斯估计可以处理有概率为0的情况,加入了Sj、K等参数,其中Sj是X的第i个参数的第j个特征可能的数值个数,K是Y可能的类别个数。
05 朴素贝叶斯算法过程
在看下面这个算法过程的时候,建议你脑子里一直想着一个实例:垃圾邮件分类。
算法过程看完可能还是云里雾里,我们举个例子说明吧。
06 总结
今天我们学习了另一种分类方法:朴素贝叶斯法,它实现简单,学习和预测的效率较高,是一种很常用的分类方法,比如垃圾邮件分类、商品映射到行业体系等。
注意区分分类和聚类方法。
下期我们将学习另一种分类方法——决策树,敬请期待~~