我们的分类模型中有M个样本,每个样本有N维,输出的类别有C类。
样本例如(X11,X12,X13...X1n,Y1)(X11,X21,X31...Xn1,Y1)(X21,X,2X23...X2n,Y2)(X12,X2,X32...Xn2,Y2),从样本中我们可以得到先验概率P(Y)P(Y)(K=1,2…C)及条件概率P(X|Y)P(X|Y),然后得到联合概率为:P(XY)P(XY),定义联合概率为
P(XY)=P(Y=Ck)∗P(X=x|Y=Ck)=P(Y=Ck)∗P(X=(x1,x2,...xn)|Y=Ck)
P(XY)=P(Y=Ck)∗P(X=x|Y=Ck)=P(Y=Ck)∗P(X=(x1,x2,...xn)|Y=Ck)
在这里我们假设X的n个维度之间互相独立,得到
P(X=(x1,x2,...xn)|Y=Ck)=P(X1=x1|Y=Ck)P(X2=x2|Y=Ck)∗P(Xn=xn|Y=Ck)
P(X=(x1,x2,...xn)|Y=Ck)=P(X1=x1|Y=Ck)P(X2=x2|Y=Ck)∗P(Xn=xn|Y=Ck)
Creslut=argmaxP(Y|X)=P(X|Y)∗P(Y)P(X)
Creslut=argmaxP(Y|X)=P(X|Y)∗P(Y)P(X)
其中P(Y=Ck)P(Y=Ck)是类别在训练集中中出现的频数,及
P(Y=Ck)=mckm
P(Y=Ck)=mckm
其中mckmck是类别K出现的次数。
上式中由于分母都一样都是P(X)P(X),那么只要计算分子最大化即可。及
Creslut=argmaxP(Y|X)=P(X|Y)∗P(Y)
Creslut=argmaxP(Y|X)=P(X|Y)∗P(Y)
由于朴素贝叶斯的独立性,得到新的计算公式
Creslut=argmaxP(Y|X)=P(Y)∗∏j=1nP(X=xj|Y=Ck)
Creslut=argmaxP(Y|X)=P(Y)∗∏j=1nP(X=xj|Y=Ck)
对于P(Xj=xjα|Y=Ck)(j=1,2,3...n)P(Xj=xjα|Y=Ck)(j=1,2,3...n),对于输入样本的每一特征个数不同,我们这里默认每一个特征的选择都是是特征αα. 对于后验概率中需要后验的就是对于每一个特征的不同选择。
在这里对于每个特征的的不同输入值有三种计算方案:
- 如果该特征是离散值:
P(Xj=xjα|y=Ck)=xjα+λmk+nλ
P(Xj=xjα|y=Ck)=xjα+λmk+nλ
其中λλ是拉普拉斯平滑参数
- 是稀疏的二项式离散值:
P(Xj=xjα|y=Ck)=P(j|Y=Ck)Xjα+(1−P(j|Y=Ck))(1−Xjα)
P(Xj=xjα|y=Ck)=P(j|Y=Ck)Xjα+(1−P(j|Y=Ck))(1−Xjα)
其中XjαXjα取值为0,1。P(j|y=CK)P(j|y=CK)为在类别为K是第j维特征出现的概率
- 该特征是连续值,认为XjXj在类别CkCk中为正态分布
P(Xj=xjα|y=Ck)=12πσ2k−−−−√∗−(Xj−μk)22σ2k
P(Xj=xjα|y=Ck)=12πσk2∗−(Xj−μk)22σk2
其中σ2kσk2是在样本CkCk中所有的可取值的方差,μkμk是在样本CkCk中所有可取值的均值(对于该样本的该特征我们的取值是αα及xjαxjα,对于该特征值的取值为连续函数值)
训练集m个样本,n个维度,输出类别有k类,每一个类别的个数有m1,m2,...mkm1,m2,...mk。
- 计算类别的先验概率P(Y=Ck)=mkmP(Y=Ck)=mkm
- 计算第k个类别的第j维特征取值为αα时的条件概率P(Xjα|Y=Yk)P(Xjα|Y=Yk)其中αα是要求的样本的第j维特征的取值,这个是需要在后验中给出的。
- 由于贝叶斯假设性,我们可以得到
P(X|Y)=∏j=1nP(Xj|Y=Ck)
P(X|Y)=∏j=1nP(Xj|Y=Ck)
那么对于输入样本X的分类CresultCresult的结果是
Cresult=argmax∏j=1nP(Xj|Y=Ck)∗P(Y=Ck)
Cresult=argmax∏j=1nP(Xj|Y=Ck)∗P(Y=Ck)
对于小规模数据表现良好,处理多分类问题
对于缺失值不敏感,常用于文本分类
但需要知道先验概率,而且是通过数据提供的后验数据(就是样本在每个特征上的取值)及先验决定分类,如果先验有问题(数据不平均差距很大)时有错误
按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
→我们致力于为广大网民解决所遇到的各种电脑技术问题 如果您认为本词条还有待完善,请 编辑词条
上一篇MySQL多表查询
下一篇学C语言不知道从哪儿下手?