高斯判别分析(GDA)和朴素贝叶斯(NB)
生成模型和判別模型
監督學習一般學習的是一個決策函數y=f(x)y=f(x)y=f(x)或者是條件概率分布p(y∣x)p(y|x)p(y∣x)。
判別模型直接用數據學習這個函數或分布,例如Linear Regression和Logistic Regression。
生成模型是先用數據學習聯合概率分布p(x,y)p(x,y)p(x,y),然后使用貝葉斯公式求p(y∣x)p(y|x)p(y∣x)
p(y∣x)=p(y)p(x∣y)p(x)p(y|x)=\frac{p(y)p(x|y)}{p(x)}p(y∣x)=p(x)p(y)p(x∣y)?
y=arg?max?yp(y∣x)y=\arg\max_yp(y|x)y=argymax?p(y∣x)
又yyy不影響p(x)p(x)p(x),故
y=arg?max?yp(y)p(x∣y)y=\arg\max_yp(y)p(x|y)y=argymax?p(y)p(x∣y)
高斯判別分析
假設:
y~Bernoulli(?)x∣y=0~N(μ0,Σ)x∣y=1~N(μ1,Σ)y \sim Bernoulli(\phi) \\ x|y=0 \sim \mathcal{N}(\mu_0,\Sigma) \\x|y=1 \sim \mathcal{N}(\mu_1, \Sigma)y~Bernoulli(?)x∣y=0~N(μ0?,Σ)x∣y=1~N(μ1?,Σ)
那么p(y)=?y(1??)(1?y)p(x∣y=0)=12πn/2∣Σ∣1/2exp?(?12(x?μ0)TΣ?1(x?μ0))p(x∣y=1)=12πn/2∣Σ∣1/2exp?(?12(x?μ1)TΣ?1(x?μ1))p(y) =\phi^y(1-\phi)^{(1-y)} \\ p(x|y=0) =\frac{1}{2\pi^{n/2}|\Sigma|^{1/2}}\exp \left(-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0)\right) \\ p(x|y=1) =\frac{1}{2\pi^{n/2}|\Sigma|^{1/2}}\exp \left(-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)\right) p(y)=?y(1??)(1?y)p(x∣y=0)=2πn/2∣Σ∣1/21?exp(?21?(x?μ0?)TΣ?1(x?μ0?))p(x∣y=1)=2πn/2∣Σ∣1/21?exp(?21?(x?μ1?)TΣ?1(x?μ1?))
于是使用極大似然估計求得參數μ0,μ1,Σ,?\mu_0,\mu_1,\Sigma,\phiμ0?,μ1?,Σ,?
最終GDA模型如下:
樸素貝葉斯模型
在樸素貝葉斯模型中我們假設給定yyy,所有的特征x1,x2,…,xnx_1, x_2, \ldots, x_nx1?,x2?,…,xn?都是獨立的,這是一個非常重要的假設。有了這個假設,我們就可以很方便的求解p(x∣y)p(x|y)p(x∣y)了,而yyy服從伯努利分布,p(x,y)p(x,y)p(x,y)也就有了。
p(x∣y)=p(x1∣y)p(x2∣y)…p(xn∣y)p(x|y)=p(x_1|y)p(x_2|y)\ldots p(x_n|y)p(x∣y)=p(x1?∣y)p(x2?∣y)…p(xn?∣y)
對于離散情況,我們假定p(xi∣y)p(x_i|y)p(xi?∣y)服從多項式分布(包括二項式分布)。
對于連續情況,我們假定p(xi∣y)p(x_i|y)p(xi?∣y)服從高斯分布。
然后使用極大似然估計求解模型中參數,最后使用y=arg?max?yp(x,y)y=\arg\max_y p(x,y)y=argmaxy?p(x,y)求得yyy。
在連續情況下,我們一般使用高斯判別分析;在離散情況下,則使用樸素貝葉斯模型。
轉載博客:高斯判別分析(GDA)和樸素貝葉斯(NB)
總結
以上是生活随笔為你收集整理的高斯判别分析(GDA)和朴素贝叶斯(NB)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python进阶(小白也能看懂)——装饰
- 下一篇: Python的第一种数据类型——Numb