文章目录
1. 朴素贝叶斯法的学习与分类1.1 基本方法1.2 后验最大化含义2. 朴素贝叶斯的参数估计2.1 公式推导3. 面试常见问题3.1 朴素贝叶斯与LR的区别?3.2 在估计条件概率P(X|Y)时出现概率为0的情况怎么办?3.3 为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍能取得较好的效果?3.4 朴素贝叶斯的优缺点?参考文献1. 朴素贝叶斯法的学习与分类
1.1 基本方法
数据集由联合概率P(X,Y)独立同分布产生,属于生成模型。
Navie Bayes 通过训练数据集学习联合概率分布P(X,Y)。具体地,学习以下先验概率分布及条件概率分布。
先验分布:
P(Y=ck),k=1,2...KP(Y = {c_k}) ,k = 1,2...KP(Y=ck),k=1,2...K
条件概率分布:
P(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=xn∣Y=ck),k=1,2,...KP(X = x|Y = {c_k}) = P({X^{(1)}} = {x^{(1)}},...,{X^{(n)}} = {x^n}|Y = {c_k}),k = 1,2,...KP(X=x∣Y=ck)=P(X(1)=x(1),...,X(n)=xn∣Y=ck),k=1,2,...K
于是,我们通过贝叶斯定理就学习到了P(X,Y)
"朴素"指的是特征的向量每个特征独立
模型决策函数:
y=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)y = \arg {\max _{{c_k}}}P(Y = {c_k})\prod\limits_j {P({X^{(j)}} = {x^{(j)}}|Y = {c_k})} y=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
策略:
期望风险最小化(等价于MAP)
算法
最大似然法(MLE,这个公式推导很难,过程相当复杂,不需要掌握)。
当然,公式参考在2.1.
1.2 后验最大化含义
期望风险最小化等价于后验最大化,不做数学公式推导,其中损失函数为:0-1损失函数。2. 朴素贝叶斯的参数估计
2.1 公式推导
这里重点做一下公式推导,有点难推导,李航书上没有详细解释(其实本质就是MLE)①联合概率(整个样本):
P(X,Y)=∏iNP(X=xi,Y=yi)=∏iNP(X=xi∣Y=yi)P(Y=yi)P(X,Y) = \prod\limits_i^N {P(X = {x_i},Y = {y_i})} = \prod\limits_i^N {P(X = {x_i}|Y = {y_i})} P(Y = {y_i})P(X,Y)=i∏NP(X=xi,Y=yi)=i∏NP(X=xi∣Y=yi)P(Y=yi)
②先验(单个样本,方便带入):
(注意:函数 I (x)为指示函数:当x为真时,函数值为1,否则为0)
P(Y=yi)=∏kKP(Y=ck)I(yi=ck)P(Y = {y_i}) = \prod\limits_k^K {P{{(Y = {c_k})}^{I({y_i} = {c_k})}}} P(Y=yi)=k∏KP(Y=ck)I(yi=ck)
③条件概率(单个样本,方便带入):
解释符号:
(1)第一个连乘表示类别;第二个连乘表示特征向量的个数(n个);第三个连乘表示第j个特征的值有sj个;
(2)X(j)表示样本的第j个特征,ajl表示第j个特征取第l个值;
(3)注意,这里X并不是全体样本,而是表示随机变量,x表示随机变量的值
P(X=xi∣Y=yi)=∏kKP(X=xi∣Y=ck)I(yi=ck)=∏kK∏jn∏lsjP(X(j)=ajl∣Y=ck)I(xi(j)=ajl,yi=ck)P(X = {x_i}|Y = {y_i}) = \prod\limits_k^K {P{{(X = {x_i}|Y = {c_k})}^{I({y_i} = {c_k})}}} = \prod\limits_k^K {\prod\limits_j^n {{{\prod\limits_l^{{s_j}} {P({X^{(j)}} = {a_{jl}}|Y = {c_k})} }^{I({x_i}^{(j)} = {a_{jl}},{y_i} = {c_k})}}} } P(X=xi∣Y=yi)=k∏KP(X=xi∣Y=ck)I(yi=ck)=k∏Kj∏nl∏sjP(X(j)=ajl∣Y=ck)I(xi(j)=ajl,yi=ck)
④整体样本的对数似然函数为(将②、③带入①):
lnP(X,Y)=∑iN∑kKI(yi=ck)lnP(Y=ck)+∑iN∑jn∑kK∑lsjI(xi(j)=ajl,yi=ck)lnP(X(j)=ajl∣Y=ck)\ln P(X,Y) = \sum\limits_i^N {\sum\limits_k^K {I({y_i} = {c_k})} } \ln P(Y = {c_k}) + \sum\limits_i^N {\sum\limits_j^n {\sum\limits_k^K {\sum\limits_l^{{s_j}} {I({x_i}^{(j)} = {a_{jl}},{y_i} = {c_k})\ln } } } } P({X^{(j)}} = {a_{jl}}|Y = {c_k})lnP(X,Y)=i∑Nk∑KI(yi=ck)lnP(Y=ck)+i∑Nj∑nk∑Kl∑sjI(xi(j)=ajl,yi=ck)lnP(X(j)=ajl∣Y=ck)
⑤用MLE来求解我们需要的两个值,这两个值是:
P(Y=ck)、P(X(j)=ajl∣Y=ck)P(Y = {c_k})、P({X^{(j)}} = {a_{jl}}|Y = {c_k})P(Y=ck)、P(X(j)=ajl∣Y=ck)
⑥求第一个:
(1)把P(Y=ck)堪称自变量,lnP(X,Y)看成自变量的函数,则有以下优化问题:
lnP(X,Y)=∑iN∑kKI(yi=ck)lnP(Y=ck)+∑iN∑jn∑kK∑lsjI(xi(j)=ajl,yi=ck)lnP(X(j)=ajl∣Y=ck)\ln P(X,Y) = \sum\limits_i^N {\sum\limits_k^K {I({y_i} = {c_k})} } \ln P(Y = {c_k}) + \sum\limits_i^N {\sum\limits_j^n {\sum\limits_k^K {\sum\limits_l^{{s_j}} {I({x_i}^{(j)} = {a_{jl}},{y_i} = {c_k})\ln } } } } P({X^{(j)}} = {a_{jl}}|Y = {c_k})lnP(X,Y)=i∑Nk∑KI(yi=ck)lnP(Y=ck)+i∑Nj∑nk∑Kl∑sjI(xi(j)=ajl,yi=ck)lnP(X(j)=ajl∣Y=ck)
s.t.∑kKP(Y=ck)=1s.t.\sum\limits_k^K {P(Y = {c_k}) = 1} s.t.k∑KP(Y=ck)=1
(2)构造拉格朗日函数:
L(P(Y=ck),λ)=lnP(X,Y)+λ(∑kKP(Y=ck)−1)L(P(Y = {c_k}),\lambda ) = \ln P(X,Y) + \lambda (\sum\limits_k^K {P(Y = {c_k}) - 1} )L(P(Y=ck),λ)=lnP(X,Y)+λ(k∑KP(Y=ck)−1)
(3)求导再利用约束条件得:
P(Y=ck)=∑iNI(yi=ck)NP(Y = {c_k}) = {{\sum\limits_i^N {I({y_i} = {c_k})} } \over N}P(Y=ck)=Ni∑NI(yi=ck)
⑦求第二项,同理得:
P(X(j)=ajl∣Y=ck)=∑iNI(xi(j)=ajl,yi=ck)∑iNI(yi=ck)P({X^{(j)}} = {a_{jl}}|Y = {c_k}) = {{\sum\nolimits_i^N {I({x_i}^{(j)} = {a_{jl}},{y_i} = {c_k})} } \over {\sum\nolimits_i^N {I({y_i} = {c_k})} }}P(X(j)=ajl∣Y=ck)=∑iNI(yi=ck)∑iNI(xi(j)=ajl,yi=ck)
⑧至此求解完成,最后对于新的样本我们将样本值带入下面公式:
y=argmaxckP(Y=ck)∏jP(X(j)=x(j)∣Y=ck)y = \arg {\max _{{c_k}}}P(Y = {c_k})\prod\limits_j {P({X^{(j)}} = {x^{(j)}}|Y = {c_k})} y=argckmaxP(Y=ck)j∏P(X(j)=x(j)∣Y=ck)
3. 面试常见问题
3.1 朴素贝叶斯与LR的区别?
前者是生成式模型,后者是判别式模型,二者的区别就是生成式模型与判别式模型的区别。3.2 在估计条件概率P(X|Y)时出现概率为0的情况怎么办?
简单来说:引入λ,当λ=1时称为拉普拉斯平滑。P(Y=ck)=∑iNI(yi=ck)+λN+KλP(Y = {c_k}) = {{\sum\limits_i^N {I({y_i} = {c_k})} + \lambda } \over {N + K\lambda }}P(Y=ck)=N+Kλi∑NI(yi=ck)+λ
P(X(j)=ajl∣Y=ck)=∑iNI(xi(j)=ajl,yi=ck)+λ∑iNI(yi=ck)+SjλP({X^{(j)}} = {a_{jl}}|Y = {c_k}) = {{\sum\nolimits_i^N {I({x_i}^{(j)} = {a_{jl}},{y_i} = {c_k})} + \lambda } \over {\sum\nolimits_i^N {I({y_i} = {c_k})} + {S_j}\lambda }}P(X(j)=ajl∣Y=ck)=∑iNI(yi=ck)+Sjλ∑iNI(xi(j)=ajl,yi=ck)+λ
3.3 为什么属性独立性假设在实际情况中很难成立,但朴素贝叶斯仍能取得较好的效果?
1)对于分类任务来说,只要各类别的条件概率排序正确、无需精准概率值即可导致正确分类;
2)如果属性间依赖对所有类别影响相同,或依赖关系的影响能相互抵消,则属性条件独立性假设在降低计算开销的同时不会对性能产生负面影响。
3.4 朴素贝叶斯的优缺点?
优点:对特征数量较少的数据表现很好,适合多分类任务,适合增量式训练。
缺点:对输入数据的表达形式很敏感(离散、连续,值极大极小之类的)。
参考文献
参考博客
《统计学方法,李航》