1. 程式人生 > >樸素貝葉斯——理論篇

樸素貝葉斯——理論篇

在學習樸素貝葉斯時,需要注意以下幾個關鍵點:

1.它是構建分類器的簡單方法,不是一個訓練分類器的單一方法,而是一系列基於相同原理的演算法,例如(基於高斯分佈的樸素貝葉斯和基於多項式的樸素貝葉斯等)。

2.它是一個基於貝葉斯定理與特徵獨立性假設的分類方法。這裡我想解釋一下特徵獨立性假設:指的是樣本所包含的屬性在判斷其是否為某一類時的概率分佈上是獨立的。(至於為什麼要這樣子假設,後面我會進行說明)

3.樸素貝葉斯的基本過程


                 樸素貝葉斯通過訓練資料集學習聯合概率分佈p(X,Y)。具體地,學習一下先驗概率分佈和條件概率分佈。先驗概率分佈如式(1):


    條件概率分佈:


於是學習到聯合概率分佈P(X,Y).

      條件概率分佈有指數級數量的引數,其估計實際是不可行的。假設特徵可能取值為個,j=1,2,....,n,Y可能取值有K個,那麼引數個數為。 其中N為樣本的個數,l為特徵的個數,下標表示樣本,上標表示特徵。

   由式(2)可知條件概率P(x|c)是所有屬性上的聯合概率,有著指數數量的引數,難以從有限的訓練樣本中直接估計得到。因此,樸素貝葉斯對條件概率分佈作了條件獨立性的假設:其等價於說明用於分類的特徵在類確定的條件下都是條件獨立的。這一假設使得樸素貝葉斯法變得簡單,但是有時會犧牲一定的分類準確率。根據條件獨立性假設,我們可以將條件概率轉化為:


   4.樸素貝葉斯分類。

     樸素貝葉斯分類時,對於給定的輸入,通過學習到的模型計算後驗概率分佈,將後驗概率最大的類作為的類輸出。後驗概率計算根據貝葉斯定理進行:


      上式是樸素貝葉斯法分類的基本公式。於是,樸素貝葉斯分類器可以表示為:


    在式(5)中分母對所有的都是相同的,所以可以簡化為:


 5.樸素貝葉斯概率計算及引數估計

    由3可知,在樸素貝葉斯法中,學習意味著估計先驗概率和條件概率。若有充足的獨立同分布樣本,則可容易地估計出類先驗概率如式(1),

    對於離散屬性而言,令表示在第i個特徵上取值為的樣本組成的集合,則條件概率可估計為:


 對於連續屬性可考慮概率密度函式,假定

,其中分別是第類樣本在第i個屬性上取值的均值和方差,則有


  注:根據類別計算特徵中的均值和方差。

6.貝葉斯估計

  上述為極大似然估計,用極大似然估計可能會出現所要估計的概率值為0的情況,著時會影響到後驗概率的計算結果,使得分類產生偏差,計,具體地,條件概率的貝葉斯估計是


 式中大於等於0.等價於在隨機變數各個取值的頻數上賦予一個正數。當其等於0時,就是極大似然估計,常取=1,這時稱為拉普拉斯平滑 。可以觀察到對於任何l=1,2,...,Sj,k=1,2,..,K,有



 表明(4.9)確為一種概率分佈。同樣先驗概率的貝葉斯估計是:


  注意:拉普拉斯修正實質上假設了屬性值與類別均勻分佈,這是樸素貝葉斯學習過程中額外引入的關於資料的先驗。顯然,拉普拉斯修正避免了因訓練集樣本不充分而導致概率估計值為0的問題,並且在訓練樣本集變大時,修正過程所引入的先驗的影響也會逐漸變得可忽略,使得估計值漸趨於實際概率值。

   在現實生活中,樸素貝葉斯分類器有多種使用方式。例如:若任務對預測速度要求較高時,則給定訓練集,可將樸素貝葉斯分類器涉及的所有概率估計值事先計算好儲存起來,這樣進行預測試只需要查表即可進行判斷;若任務更替比較頻繁,則可採用“”懶惰學習“方式,先不進行任何訓練,待收到預測請求時再根據當前資料集進行概率估計值;當資料不斷增加時,則可在現有估計基礎上,僅對新增樣本值所涉及的概率估計進行計數修正即可實現增量學習。

9.後驗概率最大化等價於0-1損失函式時的期望最小化。

  樸素貝葉斯法將例項分到後驗概率最大的類中。這等價於期望風險最小化。假設選擇0-1損失函式:

 

   式中f(x)是分類決策函式。這時,期望風險函式為,期望是對聯合概率分佈P(X,Y)取的。由此條件期望

(12)

  為使期望風險最小化,只需對X=x逐個極小化,由此得到:


參考:《統計學習》、《機器學習》、《機器學習實戰》

相關推薦

樸素——理論

在學習樸素貝葉斯時,需要注意以下幾個關鍵點: 1.它是構建分類器的簡單方法,不是一個訓練分類器的單一方法,而是一系列基於相同原理的演算法,例如(基於高斯分佈的樸素貝葉斯和基於多項式的樸素貝葉斯等)。 2.它是一個基於貝葉斯定理與特徵獨立性假設的分類方法。這裡我想解釋一下特徵

機器學習讀書筆記(四)樸素基礎之網站賬號分類

pan 技巧 nbsp 增強 就是 使用 分類問題 預測 結果 一、條件概率 在學習計算p1和p2概率之前,我們需要了解什麽是條件概率,就是指在事件B發生的情況下,事件A發生的概率,用P(A|B)來表示。 根據文氏圖,可以很清楚地看到在事件B發生的情況下,事件A發

樸素理論--自我理解

例子-正向概率 還是拿質檢員的例子來做分析,假如我是一個質檢員,現在接到了三箱零件需要檢驗,其中第一箱有10個零件,第二箱有20個零件,第三箱有15個。半小時過去了,檢驗的結果出爐,第一箱有1個不合格,第二箱有3個不合格,第三箱2個不合格。 箱子

Python3《機器學習實戰》學習筆記(五):樸素實戰之新浪新聞分類

一 前言 拉普拉斯平滑 垃圾郵件過濾 新浪新聞分類 二 樸素貝葉斯改進之拉普拉斯平滑 上篇文章提到過,演算法存在一定的問題,需要進行改進。那麼需要改進的地方在哪裡呢?利用貝葉斯分類器對文件進行分類時,要計算多個概率的乘積以獲得

NB樸素理論推導與三種常見模型

轉自:http://www.tuicool.com/articles/zEJzIbR 樸素貝葉斯(Naive Bayes)是一種簡單的分類演算法,它的經典應用案例為人所熟知:文字分類(如垃圾郵件過濾)。很多教材都從這些案例出發,本文就不重複這些內容了,而把重點放在理論推導(其實很淺顯,別被“理論”嚇到),三

機器學習實戰教程(五):樸素實戰之新浪新聞分類

原文連結: Jack-Cui,https://cuijiahua.com/blog/2017/11/ml_5_bayes_2.html 一、前言 上篇文章機器學習實戰教程(四):樸素貝葉斯基礎篇之言論過濾器講解了樸素貝葉斯的基礎知識。本篇文章將在此基礎上進行擴充套件,你將看到以下內容: 拉普拉

機器學習實戰教程(四):樸素基礎之言論過濾器

word 最可 dog 一個 mac github上 開課 和數 基礎上 原文鏈接: Jack-Cui,https://cuijiahua.com/blog/2017/11/ml_4_bayes_1.html 一、前言 樸素貝葉斯算法是有監督的學習算法,解決的是分類問題,

樸素實戰之新浪新聞分類

Python版本: Python3.x              作者:崔家華 執行平臺: Windows                    編輯:黃俊嘉 IDE: Sublime text3 一、前言 上篇文章Python3《機器學習實戰》學習筆記(四):樸素貝葉斯基礎篇之言論過濾器講解了樸素貝葉斯的

一句話說明樸素理論

 樸素貝葉斯理論:天真的假設,每個特徵之間是相互獨立的。這就是樸素貝葉斯樸素的"樸素"的地方。以下來自阮一峰的部落格貝葉斯理論:與其他統計學推斷方法截然不同。它建立在主觀判斷的基礎上,也就是說,你可以不

一步步教你輕鬆學樸素模型演算法理論1

導讀:樸素貝葉斯模型是機器學習常用的模型演算法之一,其在文字分類方面簡單易行,且取得不錯的分類效果。所以很受歡迎,對於樸素貝葉斯的學習,本文首先介紹理論知識即樸素貝葉斯相關概念和公式推導,為了加深理解,採用一個維基百科上面性別分類例子進行形式化描述。然後通過程式設計實現樸素貝葉斯分類演算法,並在遮蔽社

樸素分類-理論

> **公號:碼農充電站pro** > **主頁:https://codeshellme.github.io** 貝葉斯原理是英國數學家**托馬斯·貝葉斯**於18 世紀提出的,當我們不能直接計算一件事情(A)發生的可能性大小的時候,可以間接的計算與這件事情有關的事情(X,Y,Z)發生的可能性大小,從而間接

【黎明傳數==>機器學習速成寶典】模型05——樸素【Naive Bayes】(附python代碼)

pytho res tex 機器學習 樸素貝葉斯 spa 什麽 之一 類別 目錄   先驗概率與後驗概率   什麽是樸素貝葉斯   模型的三個基本要素   構造kd樹   kd樹的最近鄰搜索   kd樹的k近鄰搜索   Python代碼(sklearn庫) 先

【Spark MLlib速成寶典】模型04樸素【Naive Bayes】(Python版)

width pla evaluate 特征 mem order 一個數 ble same 目錄   樸素貝葉斯原理   樸素貝葉斯代碼(Spark Python) 樸素貝葉斯原理   詳見博文:http://www.cnblogs.com/itmor

小白python學習——機器學習——樸素演算法

一.大概思路: 1.找出資料集合,所有一個單詞的集合,不重複,各個文件。 2.把每個文件換成0,1模型,出現的是1,就可以得到矩陣長度一樣的各個文件。 3.計算出3個概率,一是侮辱性的文件概率,二是侮辱性文件中各個詞出現的概率,三是非侮辱性文件中各個詞出現的概率。 4.二、三計算方法

不用數學也能講清理論的馬爾可夫鏈蒙特卡洛方法?這文章做到了

大多數時候,貝葉斯統計在結果在最好的情況下是魔法,在最糟糕時是一種完全主觀的廢話。在用到貝葉斯方法的理論體系中,馬爾可夫鏈蒙特卡洛方法尤其神祕。   這篇文章將介紹馬爾可夫鏈蒙特卡洛方法,極其背後的基本數學推理。   首先,什麼是馬爾可夫鏈蒙特卡洛(MCMC)

一步步教你輕鬆學樸素模型實現2

導讀:樸素貝葉斯模型是機器學習常用的模型演算法之一,其在文字分類方面簡單易行,且取得不錯的分類效果。所以很受歡迎,對於樸素貝葉斯的學習,本文首先介紹理論知識即樸素貝葉斯相關概念和公式推導,為了加深理解,採用一個維基百科上面性別分類例子進行形式化描述。然後通過程式設計實現樸素貝葉斯分類演算法,並在遮蔽社

機器學習演算法之樸素(Naive Bayes)--第二

引言 這篇文章主要介紹將樸素貝葉斯模型應用到文字分類任務的技巧和方法。 詞袋模型(The Bag of Words Model) 對於機器學習演算法來說,特徵的選擇是一個很重要的過程。那麼如何從文字訓練集中選出好的特徵呢?在自然語言處理中,一個常見

python機器學習0基礎到入門的心得----入門3 樸素

什麼是樸素貝葉斯 整個形式只做最原始, 最簡單的假設 上一章要求分類器做出多數表決, 給出該樣本到底屬於哪一類, 不過分類器有時會產生錯誤結果, 這時候可以要求分類器給出一個最優的類別猜測結果, 也就是選擇高概率的決策結果, 同時給出這個猜測的概率是多少

機器學習演算法之樸素(Naive Bayes)--第一

引言 先前曾經看了一篇文章,一個老外程式設計師寫了一些很牛的Shell指令碼,包括晚下班自動給老婆發簡訊啊,自動衝Coffee啊,自動掃描一個DBA發來的郵件啊, 等等。於是我也想用自己所學來做一點有趣的事情。我的想法如下: 首先我寫個scrapy指令碼來

第五樸素分類演算法原理分析與程式碼實現

1 #==================================== 2 # 輸入: 3 # 空 4 # 輸出: 5 # postingList: 文件列表 6 # classVec: 分類標籤列表 7 #=