樸素貝葉斯演算法記錄

2021-09-02 22:34:02 字數 1600 閱讀 6034

目錄前言

訓練過程

1、確定有多少類

2、確定樣本

3、訓練流程

4、生成訓練矩陣

分類**

如何求概率值?

詞袋模型

分詞框架

通過樸素貝葉斯演算法對樣本資料進行訓練,完成對新輸入的分類**。樣本是各種各樣的問題及該問題對應的類別。

乙個樣本包括問題及其對應的分類,通過對樣本資料的梳理,確定以下幾個數:

① 總樣本個數               n

② 每一類樣本的個數    n

③ 每一類的佔比           n/n

(1) 對所有樣本的問題進行分詞-->結果:分詞結果以及每乙個詞出現的次數,記錄並更新有多少項,即多少次,即x軸長度

(2) 得到矩陣的x軸詞向量

(3) 記錄每一類詞總量,計算總詞數

(1) 分詞結果中單詞

計算公式:(這一類樣本數/總樣本數) * (該單詞在本類中出現的次數/本類所有樣本生成的詞個數)

p(c1| x) = ( p(x | c1) * p(c1) ) / p(x)

①   p(x)和類別無關,所以如果僅僅是為了區分類別,而不是求具體概率,這裡p(x)可以省略不考慮

p(x)=p(x1)*p(x2)...p(xn),p(x1)=x1這個詞出現的次數/所有詞的總個數[和分類無關,是整個語料的統計]。

②  p(x|c1)=p(x1,x2...xn|c1)=p(x1|c1)*p(x2|c1)...p(xn|c1)

p(x1|c1)=x1單詞出現的次數/c1類所有單詞的個數

[矩陣中每乙個單詞對應每乙個分類的概率值,分類c1中x1單詞出現的概率]

③  p(c1) = c1這一類語料的個數/總語料的個數

(2) l拉普拉斯平滑

1/(該類詞總數+所有的詞數)

p(x1|c1)=(n1+1)/(n+n)

這裡,n1是單詞x1在c1類中出現的次數,可能為0

這裡,n是c1類中所有單詞出現的次數總和

這裡,n是所有單詞的數目,這是乙個固定值,即詞向量的長度,總共多少個單詞。

1、對新輸入的記錄進行分詞,按照矩陣的x軸生成對應的詞向量,不存在詞為0個

2、拿生成的詞向量代入到矩陣中,得出每一類對應的概率值,取最大的,即為**的分類

即求p(c|x)的大小 c代表分類,每一類的對應出來的結果,求分子最大的極為結果.

1.待**語料,在分完詞之後,分詞結果中的詞有些可能沒有在詞向量矩陣中,而且分詞結果的詞也不一定剛好有所有的詞向量那麼,在向量矩陣中不存在的詞捨棄掉,寫入到表記錄。詞向量中的詞在分詞結果不存在的詞記為0,存在的詞記為1。

2.計算概率

為1的,直接取到對應詞在該矩陣中的概率值

為0的,根據拉普拉斯平滑,值為  1/該類詞總量

在**中,可以加入詞頻優化,新輸入待**的記錄,在分詞之後,記住每乙個詞的個數,在計算每一類的概率時候,拿詞出現的頻度*概率 得到結果來比較。

分詞框架使用ikanalyzer,設定行業字典,設定停用詞字典。

by  金鼓通訊

樸素貝葉斯演算法

首先樸素貝葉斯分類演算法利用貝葉斯定理來 乙個未知類別的樣本屬於各個類別的可能性,選擇可能性最大的乙個類別作為該樣本的最終類別。對於計算而言,需要記住乙個公式。p c x p x c p c p x 類似於概率論條件概率公式。其中x代表含義為最終類別,例如 yes?no。c為屬性。使用樸素貝葉斯演算...

樸素貝葉斯演算法

計算貝葉斯定理中每乙個組成部分的概率,我們必須構造乙個頻率表 因此,如果電子郵件含有單詞viagra,那麼該電子郵件是垃圾郵件的概率為80 所以,任何含有單詞viagra的訊息都需要被過濾掉。當有額外更多的特徵時,此概念的使用 利用貝葉斯公式,我們可得到如下概率 分母可以先忽略它,垃圾郵件的總似然為...

樸素貝葉斯演算法

對於樸素貝葉斯演算法,我的理解就是 使用已知的概率和結果,來 事情的條件。舉乙個例子就是,我們通過統計得到了不同年齡段喜歡吃冰激凌的比例,比如各採訪了500個青少年 中年人和老年人,得到有450個青少年 300個中年人和50個老年人喜歡吃冰激凌。我們還通過統計,知道了在社會中假設小孩子佔20 中年人...