機器學習-朴素貝葉斯


概率分類器:

  • 朴素貝葉斯是一種直接衡量標簽和特征質檢的概率關系的有監督學習算法, 是一種專注分類的算法, 朴素貝葉斯的算法根源是基於概率論和數理統計的貝葉斯理論, 因此它是根正苗紅的概率模型.

關鍵概念:

  • 聯合概率: X取值為x和Y的取值為y, 兩個事件同時發生的概率, 表示為: P(X=x, Y=y)
  • 條件概率: 在X取值為x的前提下, Y取值為y的概率, 表示為P(Y=y|X=x)
  • 在概率論中, 我們可以證明, 兩個事件的聯合概率等於這兩個事件任意條件概率*這個條件事件本身的概率
  • 簡單一些, 則可以將上面的式子寫成:
  • 由上面的式子, 我們可以得到貝葉斯理論等式:
  • 而這個式子,就是我們一切貝葉斯算法的根源理論, 我們可以把我們得的特征X當成是我們的條件事件, 而我么要求解的Y標簽, 當成是我們被滿足條件后, 會被影響的結果, 而兩者之間的概率關系就是P(Y|X), 這個概率在機器學習中, 被我們稱之為后驗概率, 即是說我們先知道了條件, 再去求結果, 而標簽Y在沒有任何條件限制下取值為某個值的概率, 被我們寫作P(Y), 於后驗概率相反, 這是完全沒有任何條件限制的, 標簽的先驗概率, 而我們的P(X|Y)被稱為"類的條件概率", 表示當Y的取值固定的時候, X為某個值的概率.

在機器學習中:

  • P(Y), 通常表示標簽取到少數類的概率, 少數類往往使用正樣本表示,也就是P(Y=1), 本質就是所有樣本標簽為1的樣本所占的比例, 
  • 對於每一個樣本而言:
    •  對於分子而言, P(Y=1)就是少數類占總樣本量的比例, P(X|Y=1)則需要稍微復雜一點的過程來求解
    • 由此可知, 推廣到n個特征來說:
    • 這個式子證明, 在Y=1的條件下, 多個特征的取值被同時取到的概率, 就等於Y=1的條件下, 多個特征的取值被分別取到的概率相乘., 其中假設X1,X2是有條件獨立則可以讓公式P(X1|X2, Y=1)=P(X1|Y=1), 這是在假設x2是一個對x1在某個條件下取值完全無影響的變量 

    • 假設特征之間是有條件獨立的, 可以解決眾多問題, 也簡化了很多計算過程, 這是朴素貝葉斯被稱為"朴素"的理由
    • 我們貝葉斯理論等式的分母P(x), 我們可以使用全概率公式來求解P(X)
    • 其中m代表標簽的種類, 也就是說, 對於二分類來說:

貝葉斯的性質與最大后驗估計

  • 朴素貝葉斯是一個不建模的算法, 朴素貝葉斯是第一個有監督, 不建模的分類算法
  • 實際貝葉斯的決策過程:
  • 對於一個二分類來說
  • 在分類的時候 我們選擇P(Y=1|X)和P(Y=0|X)中較大的一個所對應的Y的取值, 作為這個樣本的分類 在比較兩個類別的時候, 兩個概率計算的分母是一致的, 因此我們可以不用計算分母, 只考慮分子的大小, 當我們分別計算出分子的大小之后, 就可以通過讓兩個分子相加, 來獲得分母的值, 以此來避免計算一個樣本上所有特征下的概率P(X),這個過程, 被我們稱為"最大喉炎估計"(MAP), 在最大后驗估計中, 我們只需要求解分子, 主要是求解一個樣本下每個特征取值下的概率P(xi|Y=yi), 再求連乘便能夠獲得響應的概率
  • 當購買無數個漢堡的時候, 形成的細條曲線就叫做概率密度函數
  • 一條曲線下的面積, 就是這條曲線所代表的函數的積分, 如果我們定義曲線可以用函數f(x)表示, 我們整條曲線下的面積就是:
  • 其中dx是f(x)上的微分, 在某些特定的f(x)下, 餓哦們可以證明, 上述積分等於1, 總面積是1,, 這說明一個連續型特征X的取值x取到某個區間[xi, xi+ξ]之內的概率就為這個區間上概率密度曲線下的面積, 所以我們的特征Xi在區間[xi,xi+ξ]中取值的概率可以表示為
  • 現在,我們呢就將求解連續型變量下某個點取值的概率問題沒轉化稱了一個求解一個函數f(x)在點xi上的取值問題.

概率模型得評估指標

  • 布里爾分數 Brier Score
    • 概率預測得准確程度被稱為"校准程度", 是衡量算法預測出得概率和真實結果得差異得一種方式, 一種比較常用得指標叫做布里爾分數, 它被計算為是概率預測相對於測試樣本得均方誤差, 表示為:
    • 其中N是樣本數量, pi為朴素貝葉斯預測出得概率, oi是樣本所對應得真實結果, 只能取到0或者1, 如果事件發生則為1, 如果不發生則為0, 這個指標衡量了我們概率距離真實標簽得結果得差異, 其實看起來非常想是均方誤差, 布里爾分數得范圍是從0到1, 分數越高, 則預測結果越差勁, 校准程度越差, 因此布里爾分數越接近0越好, 由於她得本質也是一種損失, 所在再sklearn中, 布里爾得分被命名為brier_score_loss.

對數似然函數, LogLoss

  • 另一種常用得概率損失衡量是對數損失(log_loss), 有叫做對數似然, 邏輯損失或者交叉損失, 它是多元邏輯回歸以及一些拓展算法, 由於是損失, 因此對數似然函數得取值越小, 則證明概率估計越准確, 模型越理想, 值得注意得是, 對數損失只能用於評估分類型模型,對於一個樣
             
             
             
    本, 如果樣本得真實標簽y_true再{0,1}中取值, 並且這個樣本再類別1得概率下, 概率估計為y_pred, 則這個樣本得對應得歲數損失函數:
    • 只不過在邏輯回歸中得損失函數, 我們得真實標簽是由yi表示, 預測值(概率估計)是由yθ(xi)來表示, 僅僅是表示的方式不同. 注意, 這里的log表示以e為底的自然對數
  • 注意到, 我們用log_loss得出的結論和我們使用布里爾分數得出的結論不一致, 當使用布里爾分數作為評判標准的時候, svc的效果是最差的, 邏輯回歸和貝葉斯的結果相近, 而是用似然對數的時候, 雖然再邏輯回歸最強大, 但貝葉斯卻沒有svc的效果好. 那是因為邏輯回歸和svc都是以最優化目的求解模型, 然后進行分類的算法, 而朴素貝葉斯卻沒有最優化的過程, 對數似然函數直接指向模型最優化方向, 甚至就是邏輯回歸的損失函數本身, 因此在邏輯回歸和svc上的表現的更好

選擇對數似然還是布里爾分數參考下表:

需求 優先使用對數似然 有限使用布里爾分數
衡量模型 要對比多個模型, 或者衡量模型的不同變化 衡量單一模型
可解釋性 機器學習和深度學習之間的行家交流,學術論文 商業報告, 老板開會, 業務模型的衡量
最優化問題 邏輯回歸, svc 朴素貝葉斯
數學問題 概率只能無限接近0或者1, 無法取到0或者1 概率可以取到0或者1, 比如樹, 隨機森林
  • 貝葉斯原理簡單, 根本沒有什么參數,但是產出概率的算法有自己的調節方式, 就是調節概率的校准程度, 校准程度越高,模型對概率的預測越准確, 算法再做判斷時就越有自信, 模型就會越穩定,如果我們追求模型再概率上必須盡量貼近真實概率, 那我們就可以使用可靠性曲線來調節概率的校准程度

可靠性曲線:

  • 可靠性曲線, 又叫做概率校准曲線, 可靠性圖, 這是一條以預測概率為橫坐標, 真實標簽為縱坐標的曲線, 我們希望預測概率和真實值越接近越好, 最好兩者相等, 因此一個模型/算法的概率校准曲線越靠近對角線越好, 因此校准曲線也是我們模型評估指標之一, 和布里爾分數相似, 概率校准曲線時對於標簽某一類來說的, 因此一類標簽就會有一條曲線, 或者我們可以使用一個多類標簽下的平均來表示一整個模型的概率校准曲線, 但通常來說, 曲線用於二分類的情況很多.
  • 繪制可靠性曲線, 縱坐標時標簽, 但是我們繪制出來以后, 圖像雜亂無章
  • 因此, 我恩希望預測概率很靠近真實值, 那我們的真實取值必然也是需要一個概率才可以, 而真實標簽額概率時不可獲取的, 所以, 一個簡單的做法時, 將數據進行分箱, 然后規定每個箱子中真實的少數類所占的比例為每個箱子上的真實概率trueproba, 這個箱子中預測概率的均值為這個箱子的預測概率predproba, 然后以trueproba為縱坐標, predproba為橫坐標, 來繪制我們的可靠性曲線
  • 對於貝葉斯, 如果概率校准曲線呈現sigmoid函數耳朵鏡像情況, 則說明數據集中的特征不是相互條件獨立,
  • 支持向量機得概率校准曲線效果其實時典型得置信度不足得分類器得表現, 大量得樣本點集中在決策邊界附近, 因此許多樣本點得置信度靠近0.5左右, 即便決策邊界能夠將樣本點判斷正確, 模型本身對這個結果也不是非常確信得, 相對的, 離決策邊界很遠得點得置信度就會很高, 因為她很大可能性上不會被判斷錯誤, 支持向量機在面對混合度較高得數據得時候, 有着天生得置信度不足得缺點.

預測概率直方圖:

  • 概率密度曲線和概率分布直方圖
    • 概率密度曲線: 橫坐標是樣本得取值, 縱坐標時落在這個樣本區間中得樣本得個數, 衡量得每個X得取值區間之內有多少個樣本, 服從高斯分布的X的取值上的樣本的分布
    • 概率分布直方圖: 橫坐標時概率的取值[0,1], 縱坐標是落在這個概率取值范圍中的樣本個數, 衡量的時每個概率取值區間之內有多少樣本, 這個分布, 時沒有任何假設的

校准可靠性曲線:

  • 概率校正對於原本可靠性曲線是形容sigmoid形狀的曲線的算法比較有效

多項式朴素貝葉斯:

  • 多項式分布擅長的分類型變量, 在現實中,我餓們處理連續型變量, 通常會使用高斯朴素貝葉斯
  • 多項式實驗中的實驗結果都很具體, 它所涉及的特征往往是次數, 頻率, 計數, 出現與否這樣的概念, 這些概念都是離散的正整數, 因此sklearn中的多項式朴素貝葉斯不接受負值的輸入
  • 由於這樣的特性, 多項式朴素貝葉斯的特征矩陣經常是稀疏矩陣(不一定總是稀疏矩陣), 並且它經常被用於文本分類, 我們可以使用著名的TF-IDF向量技術, 也可以使用常見並且簡單的單詞技術向量, 手段於貝葉斯配合使用, 着兩種手段屬於常見的文本特征提取的方式,從數學角度來看, 在一種標簽類別Y=c下, 我們有一組分別對於特征的參數向量θc = (θc1, θc2,...,θcn)其中n表示特征的總數, 一個θci表示這個標簽類別下的第i個特征所對應的參數, 這個參數被我們定義為:
  • 記作P(Xi|Y=c), 表示當Y=c這個條件固定的時候, 一組樣本在Xi這個特征上的取值被取到的概率, 注意我們在高斯朴素貝葉斯中求解的概率P(xi|Y)是對於一個樣本來說, 而我們現在求解P(Xi|Y=c)是對於一個特征Xi來說的概率, 對於一個在標簽類別Y=c下, 結構為(m,n)的特征矩陣來說, 我們有:
    • 其中每個xij都是特征Xi發生的次數, 基於這些理解, 我們可以通過平滑后最大似然估計來求解參數θy
  • 對於每個特征Σyj=c, xji是特征下所有標簽的樣本的特征取值之和, 其實就是特征矩陣中每一列的和. Σmi=1Σyj=cxji是所有標簽類別為c的樣本上, 所有特征的取值之和, 其實就是特征矩陣Xy中所有元素的和, α被稱為平滑系數, 我們令α>0, 來防止訓練數據中出現過的一些詞匯沒有出現在測試集中導致的0概率, 以避免讓參數θ為0的情況, 如果我們設置為1, 則這個平滑叫做拉普拉斯平滑, 如果α小於1, 則我們把它叫做利德思通平滑, 兩種平滑都屬於自然語言處理中比較常用的用來分類數據的統計手段

伯努利朴素貝葉斯:

  • 多項式朴素貝葉斯可同時處理二項式分布和多項式分布, 其中二項分布又叫做伯努利分布, 它是一種現實中常見, 並且擁有很多優越數學性質得分布, 因此, 既然有着多項式朴素貝葉斯, 我們自然也就有專門用來處理二項分布得朴素貝葉斯: 伯努利朴素貝葉斯
  • 伯努利朴素貝葉斯類BernoulliN假設數據服從伯努利分布, 並在次基礎上應用朴素貝葉斯得訓練和分類過程, 多元伯努利分布簡單來說,就是數據集中可以存在多個特征, 但每個特征都是二分類得, 可以以布里爾變量表示, 也可以表示為{0,1}或者{-1,1}等任意二分類組合, 因此,這個類要求將樣本轉換為二分類特征向量, 如果數據本身不是二分類得, 那就可以是有那個類中專門用來二值化得參數binarize來改變數據, 伯努利朴素貝葉斯UI多項式朴素貝葉斯非常相似, 都常用於處理文本分類, 但是由於伯努利朴素貝葉斯是處理二項分布得, 所以它更加在意"存在與否", 而不是"出現多少次"這樣得次數或頻率, 這是伯努利貝葉斯於多項式朴素貝葉斯得根本不同, 在文本分類得情況下, 伯努利朴素貝葉斯可以使用單詞出現向量(而不是單詞計數向量)來訓練分類器, 文檔較短得數據集上, 伯努利朴素貝葉斯效果會更加好.

補集朴素貝葉斯

  • TF-IDF: 我們使用單詞在句子中所占的比例來編碼我們的單詞, 就是我們著名的TF-IDF方法, 是通過單詞在文檔中出現的頻率來衡量其權重, ,也就是說, IDF的大小於一個詞的常見程度成反比, 這個詞月常見, 編碼后為它設置的權重會傾向於越小, 以此老壓制頻繁出現的一些無意義的詞.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM