详解线性分类-朴素贝叶斯分类器(Naive Bayes Classifer)白板推导系列笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了详解线性分类-朴素贝叶斯分类器(Naive Bayes Classifer)白板推导系列笔记相关的知识,希望对你有一定的参考价值。

朴素贝叶斯是对数据属性之间的关系进行了假设,即各个属性维度之间独立。

 

作者:rushshi

链接:高斯判别分析(GDA)和朴素贝叶斯(NB)_rushshi的博客-CSDN博客

 

$$

\\begingathered

\\left(x_i,y_i)\\righti=1^N,xi\\in \\mathbbR^p,y_i\\in \\left0,1\\right

\\endgathered

$$

朴素贝叶斯假设每一个维度都是独立的,则有

$$

\\beginaligned

p(x_1,\\cdots ,x_p|y)&=p(x_1|y)p(x_2|y,x_1)\\cdots p(x_p|y,x_1,\\cdots ,x_p-1)\\

&根据朴素贝叶斯假设各个维度独立\\

&=p(x_1|y)p(x_2|y)\\cdots p(x_p|y)\\

&=\\prod\\limits_j=1^pp(x_j|y)

\\endaligned

$$

这里需要先假设

$$

\\beginaligned

y &\\sim B(1,\\phi_y)\\

&\\Rightarrow p(y)=\\phi^y(1-\\phi)^1-y\\

p(x_j=1|y=0)&=\\phi_j|y=0\\

p(x_j=1|y=1)&=\\phi_j|y=1\\

\\phi_j|y&=\\phi_j|y=1^y\\phi_j|y=0^1-y\\

p(x_j|y)&=\\phi_j|y^x_j(1-\\phi_j|y)^1-x_j

\\endaligned

$$

对数似然函数

$$

\\beginaligned

L(\\phi_y,\\phi_j|y=0,\\phi_j|y=1)&=\\log \\prod\\limits_i=1^Np(x_i,y_i)\\

&=\\log \\prod\\limits_i=1^Np(x_i|y_i)p(y_i)\\

&=\\log \\prod\\limits_i=1^N\\left(\\prod\\limits_j=1^pp(x_ij|y_i)\\right) p(y_i)\\

&=\\sum\\limits_i=1^N\\left[\\log p(y_i)+\\sum\\limits_j=1^p\\log p(x_ij|y_i)\\right]\\

&=\\sum\\limits_i=1^N\\left[\\underbracey_i\\log \\phi_y+(1-y_i)\\log (1-\\phi_y)(1)+\\underbrace\\sum\\limitsj=1^p[(x_ij\\log \\phi_j|y_i)+(1-x_ij)\\log (1-\\phi_j|y_i)]_(2)\\right]

\\endaligned

$$

对于$\\phi_j|y=0$有

$$

\\beginaligned

(2)&=\\sum\\limits_j=1^p[(x_ij\\log \\phi_j|y_i)+(1-x_ij)\\log (1-\\phi_j|y_i)]\\

&=\\sum\\limits_j=1^p[x_ij\\log \\phi_j|y=01\\lefty_i=0\\right+(1-x_ij)\\log(1- \\phi_j|y=0)1\\lefty_i=0\\right]\\

\\frac\\partial (2)\\partial \\phi_j|y=0&=\\sum\\limits_j=1^p\\left[x_ij \\frac1\\phi_j|y=01\\lefty_i=0\\right-\\left(1-x_ij\\right) \\frac11-\\phi_j|y=01\\lefty_i=0\\right\\right]=0\\

0&=\\sum\\limits_j=1^p[(x_ij-\\phi_j|y=0)1\\lefty_i=0\\right]\\

0&=\\sum\\limits_j=1^p(x_ij\\cdot 1\\lefty_i=0\\right)-\\phi_j|y=0\\sum\\limits_j=1^p1 \\lefty_i=0\\right\\

0&=\\sum\\limits_j=1^p1\\leftx_ij=1\\land y_i=0\\right-\\phi_j|y=0\\sum\\limits_j=1^p1\\lefty_i=0\\right\\

\\widehat\\phi_j|y=0&=\\frac\\sum\\limits_j=1^p1\\leftx_ij=1 \\land y_i=0\\right\\sum\\limits_j=1^p1\\lefty_i=0\\right

\\endaligned

$$

 

 

$\\widehat\\phi_j|y=0$可以理解为$y=0$的样本中$x$维度为$1$的数量除以$y=0$的样本个数

同理可得$\\widehat\\phi_j|y=1$

$$

\\widehat\\phi_j|y=1=\\frac\\sum\\limits_j=1^p1\\leftx_ij=1\\land y_i=1\\right\\sum\\limits_j=1^p1\\lefty_i=1\\right

$$

对于$\\phi_y$

$$

\\beginaligned

(1)&=\\sum\\limits_i=1^N[y_i\\log \\phi_y+(1-y_i)\\log (1-\\phi_y)]\\

\\frac\\partial (1)\\partial \\phi_y&=\\sum\\limits_i=1^N\\left[y_i \\frac1\\phi_y-\\left(1-y_i\\right) \\frac11-\\phi_y\\right]=0\\

0&=\\sum\\limits_i=1^N[y_i(1-\\phi_y)-(1-y_i)\\phi_y]\\

0&=\\sum\\limits_i=1^N(y_i-\\phi_y)\\

\\hat\\phi_y&=\\frac\\sum\\limits_i=1^N1\\lefty_i=1\\rightN

\\endaligned

$$

这里假设$x$只能等于$0,1$,但实际上$x$常常服从于类别分布,实际上思路相同,只是估计参数变多,这里不进行推导

以上是关于详解线性分类-朴素贝叶斯分类器(Naive Bayes Classifer)白板推导系列笔记的主要内容,如果未能解决你的问题,请参考以下文章

手撕朴素贝叶斯分类器源码(Naive Bayesian)

重要朴素贝叶斯分类器详解及中文文本舆情分析(附代码实践)

干货|非常通俗的朴素贝叶斯算法(Naive Bayes)

大数据:Spark mlib Naive bayes朴素贝叶斯分类之多元朴素贝叶斯源码分析

朴素贝叶斯分类器Naive Bayes

Naive Bayesian文本分类器