日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

朴素贝叶斯算法_机器学习第三篇:详解朴素贝叶斯算法

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 朴素贝叶斯算法_机器学习第三篇:详解朴素贝叶斯算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、統計知識

01|隨機事件:

1、概念

隨機事件是在隨機試驗中,可能出現也可能不出現,而在大量重復試驗中具有某種規律性的事件叫做隨機事件(簡稱事件)。隨機事件通常用大寫英文字母A、B、C等表示。隨機試驗中的每一個可能出現的試驗結果稱為這個試驗的一個樣本點,記作ωi。全體樣本點組成的集合稱為這個試驗的樣本空間,記作Ω.即Ω={ω1,ω2,…,ωn,…}

隨機事件中的事件形式可能由各種形式,比如{"正面","反面"},{"優","良","差"}。

2、條件概率

P(A|B)=P(AB)/P(B)表示在事件B發生的情況下事件A發生的概率。

3、一些性質

概率的有限可加性:若事件A1、A2、......、Ai.....、Aj這些事件兩兩互斥,則P(∑Ai)=∑P(Ai),表示所有事件發生的概率等于各個事件發生的概率之和。

概率的乘法公式:P(AB)=P(A)P(B|A)=P(B)P(A|B)。若事件A與B相互獨立,則P(AB)=P(A)P(B),推廣到有限多個事件時可表示為:P(A1A2A3.....An)=P(A1)P(A2|A1)P(A3|A1A2)......P(An|A1A2......An-1)。

4、全概率公式

對于比較復雜的概率事件的計算,經常會把它分解成若干個簡單事件的和,通過分別計算這些簡單事件的概率,然后利用概率的可加性計算出所求事件的概率。假設事件A1、A2、......、An是Ω的一個劃分,即兩兩互斥,且

∑Ai=Ω,則B=B∑Ai,再由概率的有限可加性得,P(B)=P(B∑Ai)=P(∑BAi)。

再由概率得乘法公式得P(B)=P(∑BAi)=∑P(Ai)P(B|Ai),這就是全概率公式。

5、貝葉斯公式

假設事件A1、A2、......、An是Ω的一個劃分,B=B∑Ai=∑BAi,則B發生條件下Ai發生得概率為:P(Ai|B)=P(AiB)/P(B)。由乘法公式和全概率公式得P(Ai|B)=P(Ai)P(B|Ai)/∑P(Ai)P(B|Ai)。該公式就是貝葉斯公式。

02|一維隨機變量:

1、概念

一般意義上概率是針對于某一隨機事件而言得,為更深入得研究隨機試驗得結果,我們引入隨機變量得概念,隨機變量得基本思想是把隨機試驗的結果數量化,從而可用一個變量去描述隨機事件。對于隨機事件中出現的某一事件我們用變量的形式去表示。比如{"正面","反面"}可以表示為{1,0},{"優","良","差"}可以表示為{1,2,3}。

2、隨機變量分布

假設X是一隨機變量,他可能取值為X1,X2,....,Xk,并且取各個值對應的概率分別為P1,P2,......Pk,即P(X=Xk)=Pk,K=1,2,....,該式稱為隨機變量X的概率分布。

03|多維隨機變量:

1、概念

通過隨機變量來描述某一隨機事件時,有時候僅用一個維度上的變量去表示是不夠的,比如描述平面的某一個點的位置就需要用X,Y兩條軸(即兩個維度)去表示才可以,如果是描述空間中某個點可能需要X,Y,Z三個維度去表示才可以,我們把一個隨機變量需要從n個維度去表示的變量稱為n維隨機變量。

一般地,當n=2時,稱(X,Y)為二維隨機變量,二維隨機變量的聯合分布為:

F(x,y)=P(X≤x,Y≤y),其中P(X≤x,Y≤y)表示隨機事件{X≤x},{Y≤y}同時發生的概率。

若事件X與Y相互獨立,則P(X≤x,Y≤y)=P(X≤x)P(Y≤y)。

條件分布:P(X≤x|Y≤y)=P(X≤x,Y≤y)/P(Y≤y)。

二、算法知識

01|原理:

樸素貝葉斯算法就是根據貝葉斯公式來對未知事物進行分類,通過已知條件(X=x)計算未知事物分別屬于各個類別(Y=ck)時對應的概率,然后把未知事物判別為概率最大的那一類。

貝葉斯公式:P(Y=ck|X=x)=P(Y=ck)P(X=x|Y=ck)/∑P(Y=ck)P(X=x|Y=ck)。

02|學習過程:

我們要想計算出未知事物屬于哪一個類別的概率較大,即P(Y=ck|X=x)在x等于多少時概率最大,需要先算出P(Y=ck)和P(X=x|Y=ck)。這兩個值可以通過訓練集求得。在具體的求取過程中需要用到一種估計方法就是極大似然估計

極大似然估計是一種概率論在統計中的應用,說的是已知某個隨機樣本滿足某種概率分布,但是其中具體的參數不清楚,參數估計就是通過若干次試驗,觀察其結果,利用結果推出參數的大概值,一般把這個結果作為估計值。

在這里我們用極大似然估計的方法來給P(Y=ck)以及P(X=x|Y=ck)估值,把訓練集中的所有值當成是若干次試驗以后得到的結果,利用極大似然估計的思想,則P(Y=ck)=該類別的頻數/集合總數。P(Y=ck)=∑I(Y=ck)/N,k=1,2,...,K,?

N為集合總數。

P(X=x|Y=ck)=ck類下滿足條件x的值的頻數/屬于ck類值的總數。

P(X=x|Y=ck)=∑I(X=x,Y=ck)/∑I(Y=ck),k=1,2,....,K

上面的I為指示函數,是定義在某一集合X上的函數,表示其中有哪些元素屬于某一子集A,常用于次數的統計,即滿足某一條件的個數。

預估出P(Y=ck)和P(X=x|Y=ck)的值以后,我們就可以利用貝葉斯公式對在X=x的條件下P(Y=ck|X=x)對應的分類是哪一類。


上面的學習過程都只是針對于一維變量進行求取的,在實際的算法應用中,往往是多維的,即多個特征,于是乎:P(X=x|Y=ck)=P(X=x1,X=x2,...,X=xi|Y=ck),xi表示變量x的第i個特征

P(X=x|Y=ck)=P(X=x1,X=2,...,X=xi|Y=ck)=P(X=x1,X=2,...,X=xi)/P(Y=ck)

因為樸素貝葉斯對條件概率做了獨立性假設,所以P(X=x1,X=x2,...,X=xi)/P(Y=ck)=P(X=x1)P(X=x2)...P(X=xi)/P(Y=ck)=

∏P(X=xi|Y=ck)

將上式代入貝葉斯公式中可得出:

P(Y=ck|X=x)=P(Y=ck)∏P(X=xi|Y=ck)/∑P(Y=ck)∏P(X=xi|Y=ck),因為分母∑P(Y=ck)∏P(X=xi|Y=ck)對每個分類ck來說,其值都是相等的,而我們最后是要比較每個ck對應的P(Y=ck|X=x)的大小,所以可以把分母去掉,最后學習到的模型為:y=f(x)=P(Y=ck)∏P(X=xi|Y=ck)。(其中∏P(X=xi|Y=ck)需要讓i取不同的值(即不同的特征)然后用極大似然估計去估計。)

03|測試過程:

將測試數據集代入到學到的模型y=f(x)=P(Y=ck)∏P(X=xi|Y=ck)然后看不同分類所對應的概率,選擇概率最大的分類為待測數據的分類。然后判斷其預測的準確性。

04|貝葉斯估計:

在前面我們估計P(Y=ck)和P(X=x|Y=ck)的值的時候用的是極大似然估計,使用這種方法很有可能出現估計值為0的情況,因為有些特征可能不存在,所以其概率為0,但是P(X=x|Y=ck)=∏P(X=xi|Y=ck),只要有一個特征為0,整個P(X=x|Y=ck)就會為0,這將影響到后續的概率計算,所以這種估計方法有的時候是行不通的,我們需要換另外的估計方法,就是貝葉斯估計。

K為類的個數。

Lj是第j維特征的最大取值。

貝葉斯估計是在極大似然估計的基礎上給分子分母分別加一個常數,當λ=1時稱為拉普拉斯平滑。

05|利用python對留言性質進行判斷:

本實例以及代碼均來自于書籍《機器學習實戰》第4章。

1、背景

某社區為了屏蔽掉一些侮辱性留言,需要構建一個快速過濾器,只要某條留言使用了負面或者侮辱性的語言,那么就將該留言標識為內容不當。

2、準備數據

3、數據處理

4、計算先驗概率

5、調試算法

在前面我們講過采用極大似然估計中可能會出現概率為0的情況,在上面的結果代碼中我們也可以看出,確實有一些結果為0的概率,為了避免這種情況,我們將采用拉普拉斯平滑。

6、應用算法

最后就可利用模型y=f(x)=P(Y=ck)∏P(X=xi|Y=ck)對具體某一條留言的是否包含侮辱性評論進行判斷了。

總結

以上是生活随笔為你收集整理的朴素贝叶斯算法_机器学习第三篇:详解朴素贝叶斯算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。