1. 程式人生 > >機器學習-23:MachineLN之樸素貝葉斯

機器學習-23:MachineLN之樸素貝葉斯

你要的答案或許都在這裡小鵬的部落格目錄

學習樸素貝葉斯需要清楚下面幾個概念:

貝葉斯模型是指模型引數的推斷用的是貝葉斯估計方法,也就是需要指定先驗分佈,再求取後驗分佈。

貝葉斯分類是一類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱貝葉斯分類。而貝葉斯分類中最簡單的一種:樸素貝葉斯,即對條件概率分佈作了條件獨立性假設,

下面看一下某大神舉的簡單例子,看一下這種條件獨立性建設的方便性和實用性:

某個醫院早上收到了六個門診病人,如下表:


接下來,來了第七個看病的人,是一個打噴嚏的建築工人,計算他患上感冒的概率?照我們的經驗職業、症狀和疾病之間應該是存在聯絡的,但是使用要樸素貝葉斯,就要假設是獨立的。

根據貝葉斯定理:

     P(A|B) = P(B|A) P(A) / P(B)

可得:

        P(感冒|打噴嚏x建築工人) 

            = P(打噴嚏x建築工人|感冒) x P(感冒)  /  P(打噴嚏x建築工人)

那麼可求得概率:(樸素體現在下面,既然獨立,就可以分開相乘

        P(感冒|打噴嚏x建築工人) 

            = P(打噴嚏|感冒) x P(建築工人|感冒) x P(感冒)  / P(打噴嚏) x P(建築工人)

        P(感冒|打噴嚏x建築工人)  = 0.66 x 0.33 x 0.5 / 0.5 x 0.33  = 0.66

1. 樸素貝葉斯 學習與分類:

樸素貝葉斯 (naive Bayes) 法是基於貝葉斯定理與特徵條件獨立假設的分類方法。對於給定的訓練資料集,首先基於特徵條件獨立假設學習輸入/輸出的聯合概率分佈;然後基於此模型,對給定的輸入x,利用貝葉斯定理求出後驗概率最大的輸出Y。

結合上面的例子看下面的公式更好理解:

基本方法:樸素貝葉斯法通過訓練資料集學習X和Y的聯合概率分佈P(X,Y)。具體地,學習以下先驗概率分佈及條件概率分佈。

先驗概率分佈:

條件概率分佈:

條件概率分佈有指數級數量的引數,其估計實際是不可行的。樸素貝葉斯法對條件概率分佈作了條件獨立性的假設。條件獨立性假設是說用於分類的特徵在類確定的條件下都是條件獨立的。


樸素貝葉斯法實際上學習到生成資料的機制,所以屬於生成模型。

樸素貝葉斯法通過最大後驗概率(MAP)準則進行類的判決,基於貝葉斯定理,後驗概率為:


分母相同,則分類器可表示為:

2. 樸素貝葉斯引數估計

根據上面的分類器表示式,可以看出回來,在使用的時候我們需要求解:先驗概率 和 條件概率分佈,也就是引數估計,主要有極大似然估計 和 貝葉斯估計:

極大似然估計:

先驗概率的極大似然估計:


設第j個特徵x(j)可能取值的集合為,條件概率的極大似然估計:


演算法流程如下:


貝葉斯估計:

用極大似然估計可能會出現所要估計的概率值為0的情況,使分類產生偏差,解決這一問題的方法是採用貝葉斯估計。條件概率的貝葉斯估計為:


式中lamda>=0。等價於在隨機變數各個取值的頻數上賦予一個正數。常取lamda=1,稱為拉普拉斯平滑( Laplace smoothing)。同樣,先驗概率的貝葉斯估計為:


推薦閱讀:




相關推薦

機器學習-23MachineLN樸素

你要的答案或許都在這裡:小鵬的部落格目錄 學習樸素貝葉斯需要清楚下面幾個概念: 貝葉斯模型是指模型引數的推斷用的是貝葉斯估計方法,也就是需要指定先驗分佈,再求取後驗分佈。 貝葉斯分類是一類演算

Python機器學習與實戰筆記樸素分類

1聯合概率分佈 p(x,y)=p(y)P(x|y)  或者p(A交B)=p(A)xp(B)  p(A交B)不容易求,假設條件獨立拆分成兩個事件的乘積 2基本假設條件獨立性 3利用貝葉斯定理 p(y|x)=P(x,y)/p(x)=p(y)P(x|y)/sum(y-i)[p(

【斯坦福---機器學習】複習筆記樸素演算法

本講大綱: 1.樸素貝葉斯(Naive Bayes) 2.神經網路(Neural Networks) 3.支援向量機(Support vector machines) 1.樸素貝葉斯 前面講的主要是是二元值的特徵,更一般化的是xi可以取{1,2,3

機器學習實戰(三)樸素NB(Naive Bayes)

目錄 0. 前言 1. 條件概率 2. 樸素貝葉斯(Naive Bayes) 3. 樸素貝葉斯應用於文字分類 4. 實戰案例 4.1. 垃圾郵件分類案例 學習完機器學習實戰的樸素貝葉斯,簡單的做個筆記。文中

機器學習實戰讀書筆記(3)--樸素

基於貝葉斯決策理論的分類方法 優點:在資料較少的情況下仍然有效,可以處理多類別問題 缺點:對輸入資料的準備方式比較敏感,需要標稱資料.確定貝葉斯最優假設的計算代價較大 樸素貝葉斯是貝葉斯決策理論的一部分.貝葉斯決策理論的核心思想:一個數據集包括2類(或兩類以上

<機器學習實戰>讀書筆記--樸素

1.樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法, 最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Naive Bayesian Model,NBM) 2.樸素貝葉斯公式 P(B|A)的意思是在A事件的情況下,發生B事件的概率。 3.樸素貝

機器學習(十二)樸素分類

樸素貝葉斯分類 作者:hjimce 本篇博文是我學習《機器學習實戰》這邊書時候的學習筆記。記得之前看到這個演算法名的時候,我以為很難,因為我不是很喜歡概率論的知識,其實最主要的原因是因為已經概率論的相關知識都忘光了,所以一直不想去複習,於是就覺得這個演算法不好學。不

自動化機器學習(AutoML)自動調參

一、Python實現自動貝葉斯調整超引數 【導讀】機器學習中,調參是一項繁瑣但至關重要的任務,因為它很大程度上影響了演算法的效能。手動調參十分耗時,網格和隨機搜尋不需要人力,但需要很長的執行時間。因此,誕生了許多自動調整超引數的方法。貝葉斯優化是一種用模型找到函

機器學習實戰第四章——樸素分類(原始碼解析)

樸素貝葉斯分類 #coding=utf-8 ''' Created on 2016年1月9日 @author: admin ''' from numpy import * # 載入資料集函式 def loadDataSet(): # 定義郵件列表 p

機器學習筆記(一)樸素的Python程式碼實現

上研究生的時候,一心想讀生物資訊學的方向,由此也選修了生物數學,計算生物學等相關課程。給我印象最深的是給我們計算生物學的主講老師,他北大數學系畢業,後來做起了生物和數學的交叉學科研究。課上講的一些演算法比如貝葉斯,馬爾科夫,EM等把我給深深折磨了一遍。由於那時候

機器學習筆記(六)——樸素法的引數估計

一、極大似然估計 在上一筆記中,經過推導,得到了樸素貝葉斯分類器的表示形式: y=argmaxckP(Y=ck)∏jP(X(j)=x(j)|Y=ck)(1) 也就是說,樸素貝葉斯方法的學習是對概率P(Y=ck)和P(X(j)=x(j)|Y=ck)的

機器學習演算法(三)——樸素演算法及R語言實現方法

樸素貝葉斯演算法也是一種常用的分類演算法,尤其在對文字文件分類的學習任務中,樸素貝葉斯分類是最有效的演算法之一。所謂的樸素,即假設在給定目標值時屬性值之間相互條件獨立,雖然這一假設看似不合理,但其最終的分類效果卻普遍較好。 一、概述 1、貝葉斯公式 2、最大後驗假設(MA

機器學習實戰(4)——樸素(下)

一、大概框架1、貝葉斯決策:對某個資料點進行分類,有多個類別供你選擇,我們自然要選擇可能性最大那個,這就是貝葉斯決策的核心思想舉個例子:如果你面前有一個黑人,讓你判斷他是哪個洲的人,給你三個選擇:亞洲人、非洲人、美洲人,你會選擇哪個?哈哈哈,這麼簡單的問題,你居然還問的出口,

機器學習-帶你搞懂樸素分類演算法

帶你搞懂樸素貝葉斯分類演算法 你搞懂樸素貝葉斯分類算 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。而樸素樸素貝葉斯分類是貝葉斯分類中最簡單,也是常見的一種分類方法。這篇文章我儘可能用直白的話語總結一下我們學習會上講到的樸素貝葉斯分

白話機器學習演算法(九)樸素

樸素貝葉斯,確實很樸素,原理也很簡單,但是用途很厲害;很多涉及概率的機器學習演算法都要用到這些東西:最大似然估計(MLE),貝葉斯估計(最大後驗MAP),EM(也是最大似然估計,只是方法不同),最大熵; 先說點廢話,再寫點公式吧: 最大似然估計:我取什麼樣的引數,使得當前資

機器學習基礎——帶你實戰樸素模型文字分類

本文始發於個人公眾號:TechFlow 上一篇文章當中我們介紹了樸素貝葉斯模型的基本原理。 樸素貝葉斯的核心本質是假設樣本當中的變數服從某個分佈,從而利用條件概率計算出樣本屬於某個類別的概率。一般來說一個樣本往往會含有許多特徵,這些特徵之間很有可能是有相關性的。為了簡化模型,樸素貝葉斯模型假設這些變數是獨

機器學習】--機器學習樸素從初始到應用

rac AC 一個 pam 數據 ast 出現 相對 解決方法 一、前述 機器學習算法中,有種依據概率原則進行分類的樸素貝葉斯算法,正如氣象學家預測天氣一樣,樸素貝葉斯算法就是應用先前事件的有關數據來估計未來事件發生的概率。 二、具體 1、背景--貝葉斯定理引入對於兩個關聯

機器學習樸素分類方法

本文轉載自http://holynull.leanote.com/post/Logistic-2 樸素貝葉斯分類方法 前言 樸素貝葉斯分類演算法是機器學習領域最基本的幾種演算法之一。但是對於作者這樣沒有什麼資料基礎的老碼農來說,理解起來確實有一些困難。所以撰寫此文幫

機器學習實踐(九)—sklearn樸素演算法

一、樸素貝葉斯演算法 什麼是樸素貝葉斯分類方法 屬於哪個類別概率大,就判斷屬於哪個類別 概率基礎 概率定義為一件事情發生的可能性 P(X) : 取值在[0, 1] 聯合概率、條件概率與相互獨立

機器學習樸素(Naive Bayes)

貝葉斯概率以18世紀的一位神學家托馬斯·貝葉斯(Thomas Bayes)的名字命名。 一、為什麼叫樸素貝葉斯? 樸素貝葉斯是經典機器學習演算法之一,是基於概率論的分類演算法,其原理簡單,易於實現,多使用於文字分類,如垃圾郵件過濾、新聞分類等。 樸素貝葉斯中的樸素是來源