導航:首頁 > 源碼編譯 > 貝葉斯優化演算法有保存模型嗎

貝葉斯優化演算法有保存模型嗎

發布時間:2023-09-30 13:06:13

1. 貝葉斯分類演算法的基本步驟

主要有以下7個步驟:
1. 收集大量的垃圾郵件和非垃圾郵件,建立垃圾郵件集和非垃圾郵件集。
2. 提取郵件主題和郵件體中的獨立字元串,例如 ABC32,¥234等作為TOKEN串並統計提取出的TOKEN串出現的次數即字頻。按照上述的方法分別處理垃圾郵件集和非垃圾郵件集中的所有郵件。
3. 每一個郵件集對應一個哈希表,hashtable_good對應非垃圾郵件集而hashtable_bad對應垃圾郵件集。表中存儲TOKEN串到字頻的映射關系。
4. 計算每個哈希表中TOKEN串出現的概率P=(某TOKEN串的字頻)/(對應哈希表的長度)。
5. 綜合考慮hashtable_good和hashtable_bad,推斷出當新來的郵件中出現某個TOKEN串時,該新郵件為垃圾郵件的概率。數學表達式為:
A 事件 ---- 郵件為垃圾郵件;
t1,t2 …….tn 代表 TOKEN 串
則 P ( A|ti )表示在郵件中出現 TOKEN 串 ti 時,該郵件為垃圾郵件的概率。

P1 ( ti ) = ( ti 在 hashtable_good 中的值)
P2 ( ti ) = ( ti 在 hashtable_ bad 中的值)
則 P ( A|ti ) =P2 ( ti ) /[ ( P1 ( ti ) +P2 ( ti ) ] ;
6. 建立新的哈希表hashtable_probability存儲TOKEN串ti到P(A|ti)的映射
7. 至此,垃圾郵件集和非垃圾郵件集的學習過程結束。根據建立的哈希表 hashtable_probability可以估計一封新到的郵件為垃圾郵件的可能性。
當新到一封郵件時,按照步驟2,生成TOKEN串。查詢hashtable_probability得到該TOKEN 串的鍵值。
假設由該郵件共得到N個TOKEN 串,t1,t2…….tn,hashtable_probability中對應的值為 P1 , P2 , ……PN , P(A|t1 ,t2, t3……tn) 表示在郵件中同時出現多個TOKEN串t1,t2……tn時,該郵件為垃圾郵件的概率。
由復合概率公式可得
P(A|t1 ,t2, t3……tn)=(P1*P2*……PN)/[P1*P2*……PN+(1-P1)*(1-P2)*……(1-PN)]
當 P(A|t1 ,t2, t3……tn) 超過預定閾值時,就可以判斷郵件為垃圾郵件。

2. 樸素貝葉斯以及三種常見模型推導

樸素貝葉斯演算法Naive Bayes定義中有兩個關鍵定義:特徵之間強假設獨立和貝葉斯定理.這兩個定義就是樸素貝葉斯的關鍵.接下來先了解一下這兩個定義.

貝葉斯定義是概率論中的一個定理,它跟隨機變數的條件概率以及邊緣概率分布有關.

通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A(發生)的條件下的概率是不一樣的,然而,這兩者之間是有確定的關系的,貝葉斯定理就是這種關系的陳述。貝葉斯公式的一個用途在於通過已知的三個概率函數推出第四個.

直接給出公式:

其中,P(A|B)是指事件B發生的情況下事件A發生的概率(條件概率).在貝葉斯定理中,每個名詞都有約定俗成的名稱:

按這些術語,貝葉斯定理可以表述為:

後驗概率 = (似然性 * 先驗概率)/標准化常量

也就是說,後驗概率與先驗概率和相似度的乘積成正比.

同時,分母P(B),可以根據全概率公式分解為:

如果P(X,Y|Z)=P(X|Z)P(Y|Z),或等價地P(X|Y,Z)=P(X|Z),則稱事件X,Y對於給定事件Z是條件獨立的,也就是說,當Z發生時,X發生與否與Y發生與否是無關的。

應用在自然語言處理中,就是說在文章類別確定的條件下,文章的各個特徵(單詞)在類別確定的條件下是獨立的,並不相關,用通俗的話說,在文章類別確定的條件下,文章各個詞之間出現與否沒有相關性(事實上,並不成立).這是一個非常強的假設,但對問題的求解來說變得更加簡單.

設輸入空間 為n為向量的集合,輸出空間為類標記集合 .輸入為特徵向量 ,輸出為類標記 . X是定義在輸入空間X上的隨機變數,Y是定義在輸出空間Y上的隨機變數.P(X,Y)是X和Y的聯合概率分布.訓練數據集:

由P(X,Y)獨立同分布產生.因此樸素貝葉斯模型也是一個生成模型.

樸素貝葉斯演算法通過訓練集學習聯合概率分布P(X,Y),具體地,學習先驗概率分布以及條件概率分布.其中先驗概率分布

條件概率分布

, k=1,2,...,K

通過兩個概率得到聯合概率分布P(X,Y) = P(X|Y)P(Y).

條件概率分布P(X=x|Y=c_k)有指數級數量的參數,其估計實際上不可行的.假設 有 個取值,j=1,2,...,n,Y有K個取值,那麼參數個數為 .

指數級的參數估計事實上並不可行,因此樸素貝葉斯演算法針對各個特徵之間做了假設,也就是對條件概率分布作了條件獨立性假設,這是一個很強的假設,通過這個假設,我們的參數求解變得可行,這也就是樸素貝葉斯的"樸素"的由來.這種情況下,我們同樣假設 有 個取值,j=1,2,...,n,Y有K個取值,那麼參數個數為 ,需要估計的參數量大大減少.條件獨立性假設是

樸素貝葉斯演算法分類時,對給定輸入x,通過學習到的模型計算後驗概率分布 ,將後驗概率最大的類作為輸入x的類輸出.後驗概率根據貝葉斯定理計算:

上面的公式是後驗概率分布中的一項,由於對於相同輸入x下不同類別的後驗概率的分母都相同,而最終的類輸出是後驗概率分布中概率最大對應的類別,所以我們可以簡化為只比較分子的大小就可以確定最終的結果,也就是說,最終類輸出為:

.

如果我們對右邊的乘積概率取log,連乘積就可以轉換成為和,計算更簡單(加法總比乘法簡單),上訴公式存在一種變種:

.

同時這種形式,也可以看做是一種線性回歸,權重系數為1.

介紹完,樸素貝葉斯的概率模型之後,我們目前的主要問題就集中在如何估計這個模型的 個參數: ,估算出參數,我們就可以對輸入向量x做預測.針對這些參數的求解方法不同,存在不同的樸素貝葉斯類型,具體介紹三種:伯努利樸素貝葉斯,多項式樸素貝葉斯和高斯樸素貝葉斯.不同類型的樸素貝葉斯對參數的求法不同,而根源在於對P條件概率(X=x|Y=c_k)的假設分布不同,也就是說在給定類別的情況下,對X假設的分布不同:伯努利假設是伯努利分布(其實應該是多變數伯努利分布),多項式假設是多項式分布,而高斯也就是假設是高斯分布(其實是多變數高斯分布).然後,我們細化到三種不同類型的樸素貝葉斯理論中.

伯努利樸素貝葉斯,其實應該叫"Multi-variate Naive Bayes",假設P(X=x|Y=c_k)是多變數伯努利分布.在了解多變數伯努利分布之前,先介紹一下什麼是(單變數的)伯努利分布.

伯努利分布,又叫做兩點分布或0-1分布,是一個離散型概率分布.稱隨機變數X有伯努利分布,參數為p(0< p <1),它分別以概率p和1-p取1和0為值.

最簡單的例子就是拋硬幣,硬幣結果為正或反.

冪次運算變成乘法運算,更簡單.當x=1時,概率是P(X=1)=p,當x=0時,概率P(X=0)=1-p,這樣就可以將兩種情況合在一起.

了解了什麼是伯努利分布之後,我們再看什麼是多元伯努利分布(多變數 multi-variate Bernoulli).

多元伯努利分布,通俗的講就是同時進行多個不同的伯努利實驗, ,其中x是一個向量, 也是一個向量,表示不同伯努利實驗的參數.

伯努利多項式將文檔的生成模型P(X=x|Y=c_k)假設服從為多元伯努利分布,由於我們之前做的特徵獨立性假設, 是一個向量形式,而其中 ,也就是說x向量是onehot形式的向量(每個維度值是0或1),表示這個維度的特徵是否出現.特徵集 有n個特徵,特徵集的維度決定了輸入空間X的維度,而且特徵集的維度可以對應到輸入空間的各個維度上.

因為特徵之間的獨立性,所以多元伯努利變成各個伯努利分布的連乘積,需要注意的一點是 因為是伯努利分布,0-1,特徵出現有一個概率p,特徵不出現也有一個概率1-p .最終模型的參數估計完成之後,對新樣本進行預測時,如果某個特徵不出現,需要 乘上這個特徵不出現的概率 ,不能只計算特徵出現的概率!!!兩個向量直接相乘,並不能得到最終的結果.

對應的伯努利樸素貝葉斯模型為:

為了簡化運算,我們可以將分母忽略,雖然對應的結果不是真正的概率,但是相同樣本的各個後驗概率之間的大小關系保持不變,同時如果兩邊同時做log運算,後驗概率之間的大小關系同樣保持不變.因此,

.

了解了多元伯努利分布之後,接下來的工作就是對參數進行估計,計算 , .

參數估計的過程也是樸素貝葉斯分類器學習的過程.而參數估計可以使用極大似然估計.先驗概率 的極大似然估計是

, k=1,2,...,K

其中,I(x)是一個指示函數,如果x為真,I(x)結果為1,如果x為假,I(x)=0.用語言描述來說, 這個概率等於在N個樣本的數據集中,類別為 的樣本所佔的比例.

條件概率 的極大似然估計是:

用語言描述來說,條件概率 等於在類別為 的樣本集合(數據集的子集)中,第i個特徵等於 的概率, 是0或1,而且 服從伯努利分布,所以只需要計算一個,比如P , ,因為兩個概率和為1(這是 同一個變數 ).

這些參數估計完之後,樸素貝葉斯就完成了學習過程,接下來就可以使用它去進行預測了(應用才是最終的目的).

由於 是伯努利分布,參數p在[0,1]之間,有可能存在 ,也就是存在0概率.

舉例來說,在當前類別下的所有樣本中特徵i都出現了(=1),根據上面的條件概率極大似然估計,可以知道 ,那麼對應的, ,那麼當新樣本來的時候,加入存在一條記錄x,它很巧地沒有第i個特徵(這不巧了嗎?不是),由於0概率的存在,那麼使用上面的貝葉斯公式,就會出現屬於某個列別的概率為0, .但這種情況是應該避免的,那麼如何避免呢?

我們在對條件概率進行極大似然估計時,針對分子和分母做一些小變動,

其中, 表示第i個特徵不同取值的個數,由於這里是one-hot,取值為2,所以 , 乘以 是保證 個不同取值對應的條件概率之和為1,不偏袒任意一種情況,一視同仁.

To Be Continued.

多項式樸素貝葉斯,假設P(X=x|Y=c_k)是多項式分布.在了解多項式樸素貝葉斯之前,先介紹一下什麼是多項式分布?

將伯努利分布的單變數擴展到d維向量 ,其中 ,且 ,假設 的概率是 ,並且 ,則將得到離散分布:

.

其中x, 都是d維向量形式.在此的基礎上擴展二項分布到多項式分布(Multinomial distribution),該分布描述的是在n次獨立實驗中有 詞 的概率,其密度函數可以表達為如下形式:

多項式分布的期望,方差如下:

多項式分布應用到樸素貝葉斯上,對於文檔分類問題來說,假設給定文檔類型的基礎上文檔生成模型 是一個多項式分布.這樣對應關系就是:

需要注意的是,應用在文本分類的多項式樸素貝葉斯模型之前,一般多項式條件概率如下:

我們的多項式樸素貝葉斯概率模型為:

這里為了方便,首先我們假設文章長度和文章的類別之間沒有相關性(事實上也並不成立,比如說相對較長的郵件,相比垃圾郵件而言,正常郵件的概率更大),也就是說P(|x|)的分布與文章所屬類別無關.另一方面,由於最終所屬類別是後驗概率最大對應的類別,所以,我們可以將文章長度P(|x|)建模的概率,忽略掉,就像我們之前忽略伯努利分布中的分母一樣.

再者,為了更加方便,我們通常對兩邊取log運算,將冪次運算轉換成線性運算:

我們也可以將文章長度階乘省略,然後變成:

.

這樣就變成線性運算,就和線性回歸一樣,運算高效而簡單.

將文檔模型對應到多項式分布上得到多項式樸素貝葉斯,在我們對其做出假設分布之後,剩下的工作就是對假設分布下每個類別下的d個條件概率以及先驗分布進行估計.此外,還需要說明的一點是:多項式樸素貝葉斯模型採用詞袋模型,每個 表示第i個特徵出現的次數,也就是詞頻term-frequency,有時候也可以使用tf-idf作為值.

參數估計的過程也是樸素貝葉斯分類器學習的過程.而參數估計可以使用極大似然估計.先驗概率 的極大似然估計是

, k=1,2,...,K

其中,I(x)是一個指示函數,如果x為真,I(x)結果為1,如果x為假,I(x)=0.用語言描述來說, 這個概率等於在N個樣本的數據集中,類別為 的樣本所佔的比例.

條件概率 的極大似然估計是:

用語言描述來說,條件概率 等於在類別為 的樣本集合(數據集的子集)中,第t個特徵出現的概率等於 類樣本第t個特徵出現的總次數(考慮詞頻,不再是0,1)占 類樣本的總詞數(文章長度之和,文章單詞特徵是固定的,考慮了詞頻)的比例.

為了方便理解,將 表示為第k類樣本集合中第t個特徵出現的總次數, 表示為在所有樣本中第k類樣本的總詞數(第k類樣本長度之和,考慮頻數),簡寫成:

和伯努利樸素貝葉斯模型類似,有可能存在某一維度,數據集在這一維度上都是0,對應到文檔分類上,就是這個詞在所有文章中都沒有出現過(詞典選的不好,特徵選擇不好),這種情況就會出現0概率.所以我們需要對條件概率做一點小改動:

其中,d表示數據維度為d(有d個特徵,每個特徵都加 ,保證概率和為1, 需要乘d).當 時,叫做Laplace Smoonthing拉普拉斯平滑,當然 也可以小於1.

To Be Continued

高斯樸素貝葉斯,假設P(X=x|Y=c_k)是多元高斯分布.在了解高斯樸素貝葉斯之前,先介紹一下什麼是高斯分布,什麼是多元高斯分布?

高斯分布又稱正態分布,在實際應用中最為廣泛。對於單變數 ,高斯分布的參數有兩個,分別是均值 和方差 ,其概率密度函數為

其中, 是D維均值向量, 是DxD的協方差矩陣, 是 的行列式.多元高斯分布的期望是 ,方差是

特殊的, 如果D個維度之間相互獨立,那麼多元高斯分布就可以表示成單元高斯分布概率密度函數的連乘積 .

高斯樸素貝葉斯模型是假設條件概率P(X=x|Y=c_k)是多元高斯分布,另一方面,由之前的特徵的條件獨立性假設,我們就可以通過對每個特徵的條件概率建模, 每個特徵的條件概率 也服從高斯分布 .

在 類下第i個詞對應的高斯分布為:

其中, , 表示c類下第i個特徵的均值和方差.

由於特徵之間的獨立性假設,我們可以得到條件概率:

一共有d個特徵.

高斯樸素貝葉斯變成:

.

了解了多元高斯分布分布之後,接下來的工作就是對參數進行估計,計算 和 .

先驗概率和之前的估算方法相同,不再描述.主要是對高斯分布的均值和方差的估計,採用的方法仍然是極大似然估計.

均值的估計 是在樣本類別 中,所有 的平均值;

方差的估計 為樣本類別 中所有 的方差.

對於一個連續的樣本值,帶入高斯分布,就可以求出它的概率分布了.

所有參數估計完成之後,就可以計算給定樣本的條件概率 ,進而可以計算 ,之後就可以確定樣本類別,完成模型預測.

閱讀全文

與貝葉斯優化演算法有保存模型嗎相關的資料

熱點內容
程序員那麼可愛陸漓和姜逸城吻戲 瀏覽:802
android獲取窗口大小 瀏覽:180
程序員為世界帶來的貢獻 瀏覽:214
程序員招聘自薦信 瀏覽:693
魔獸鍵位設置命令宏 瀏覽:645
程序員沒有目標了 瀏覽:828
搶答器c程序編程 瀏覽:703
什麼app可以自己玩 瀏覽:76
刨客app是什麼 瀏覽:963
cad輸入命令欄不見了 瀏覽:834
做故事集可以用什麼app 瀏覽:692
qq郵箱發送壓縮包 瀏覽:672
程序員桌面機器人 瀏覽:589
xjr快速開發平台源碼 瀏覽:159
java介面runnable 瀏覽:31
python怎麼運行web伺服器 瀏覽:349
notepad編程代碼 瀏覽:740
什麼安卓的毛病最少 瀏覽:611
hp的pjl設備訪問命令 瀏覽:635
googlewebp圖片壓縮技術 瀏覽:215