樸素貝葉斯 咱們在乎圖分類階段使用了多項式樸素貝葉斯算法來將輸入的問題分到對應的意圖類別下,讓咱們先來看看什麼式樸素貝葉斯。樸素貝葉斯算法是基於貝葉斯定理與特徵條件獨立假設的分類 方法。 貝葉斯公式推導過程: c 隨機事件的其中一種狀況,好比電影領域問答中的意圖分類可能包括:閒聊,評分,上映時間,演員等,把用戶問問題當作是隨機事件,則用戶問評分的問題就是隨機事件的其中一種狀況。 x 泛指與隨機事件相關的因素,這裏作爲機率的條件。 P(c|x) 條件 x 下,c 出現的機率。好比 P(「評分」|「功夫這部電影評分怎麼樣?」)就是表示問題「功夫這部電影評分怎麼樣?」的意圖是「評分」的機率。 P(x|c) 知出現 c 狀況的條件下,條件 x 出現的機率,後驗機率,能夠根據歷史數據計算得出。 P(c) 不考慮相關因素,c 出現的機率。 P(x) 不考慮相關因素,x 出現的機率。 由推導過程能夠獲得 P(c|x) = P(c)P(x|c)/P(x) 假設咱們有電影領域問題和所屬意圖分類的數據集,那麼P(c(i))=c(i)出現的次數/全部狀況出現的總次數,(例如:c(i)多是‘評分’意圖或者‘上映時間’意圖); 根據特徵條件獨立假設的樸素思想能夠得出以下式子: p(x|c) = Πp(xi|c) (1<=i<=d),d 爲屬性的個數 至此獲得樸素貝葉斯的具體公式:(這裏的 c 就是 c(i)) 利用該公式進行分類的思想就是計算全部的 p(c(i)|x),而後取值(機率)最大的 c(i)作爲所屬分類。用公式表達以下: h 是基於樸素貝葉斯算法訓練出來的 hypothesis(假設),它的值就是貝葉斯分類器對於給定的 x 因素下,最可能出現的狀況c。y 是 c 的取值集合。這裏去掉了 P(x)是由於它和 c 的機率沒有關係,不影響取最大的 c。 樸素貝葉斯直觀上理解,就是和樣本屬性以及樣本類別的出現頻率有關,利用已有的樣本屬性和樣本類別計算出的各個機率,來代入新的樣本的算式中算出屬於各種別的機率,取出機率最大的作爲新樣本的類別。 因此爲了計算準確,要知足以下幾個條件: • 各種別下的訓練樣本數量儘量均衡 • 各訓練樣本的屬性取值要覆蓋全部可能的屬性的值 • 引入拉普拉斯修正進行平滑處理。
多項式樸素貝葉斯 再選擇樸素貝葉斯分類的時候,咱們使用了one-hot的思想來構建句向量,其中的值都是0或1的離散型特徵,因此使用多項式模型來計算 p(xi|c)會更合適(對於連續性的值,選用高斯模型更合適): Dc 表示訓練集 D 中第 c 類樣本組成的集合,外加兩條豎線 表示集合的元素數量; Dc,xi 表示 Dc 中第 i 個特徵上取值爲 xi 的樣本組成的集 合。 爲避免出現某一維特徵的值 xi 沒在訓練樣本中與 c 類別同時出 現過,致使後驗機率爲 0 的狀況,會作一些平滑處理: K表示總的類別數; Ni表示第 i 個特徵可能的取值的數量。