1. 程式人生 > >機器學習筆記5——樸素貝葉斯演算法

機器學習筆記5——樸素貝葉斯演算法

在上一講中,我們瞭解到了樸素貝葉斯以及laplace平滑。這一小節中,我們將要改進樸素貝葉斯演算法。原有的樸素貝葉斯中的特徵值xi是隻取0和1兩個值,現在要對樸素貝葉斯進行一般化,以適應於特徵值取值範圍為{1,2,...,k}這種情況。

一般化過程中,對p(xi|y)的建模不再是簡單的伯努力而是多項式分佈。事實上,即使原始的輸入特徵是連續的值,也可以將它離散化,將它們分為幾組離散值,然後再使用樸素貝葉斯演算法。

就以最開始的預測房屋價格這個問題舉例,如果輸入特徵xi代表房屋面積,那麼就可以將連續的值離散化為如下樣式:


因此,如果房屋面積為890平方英尺,我們可以將對應的特徵值xi設為3。之後就可以使用樸素貝葉斯演算法。當連續的特徵值並沒有用多元正態分佈進行良好的建模時,就可以通過對特徵離散化然後使用樸素貝葉斯演算法,這種方法也可以得到好的分類器結果。

針對文字分類的事件模型

上一節講述了生成學習演算法,下面將結束對這一演算法的討論並且介紹一種針對文字分類的模型。前面講到的樸素貝葉斯演算法在很多分類的問題上有良好的表現,那麼對於文字分類問題,有一個與其相關的模型的表現效果會更好。

在文字分類的特定語境下,樸素貝葉斯被稱作多變數伯努力事件模型(換個稱呼而已)。在這一模型中,我們假設電子郵件的生成方式:無論是垃圾郵件傳送者還是非垃圾郵件傳送者向你傳送下一封郵件,這封郵件都是隨機決定的(根據類先驗概率p(y))。其次,郵件的傳送者決定郵件中是否包含某個單詞i,且每個單詞出現在郵件中的概率是獨立的。根據概率p(xi=1|y)=ϕi|y得到,一封郵件最終的概率為p

(y)ni=1p(xi|y)

此處我們提出一個不同的模型,被稱作多項式事件模型。為了描述這一模型,我們會用不同的符號來代表郵件的一些特徵。xi代表郵件中的第i個單詞。因此,xi是一個整數且取值範圍為{1,...,|V|},此處的|V|代表了字典的長度。一封包含n個單詞的郵件可以用長度為n的向量(x1,x2,...,xn)表示;此處的n針對不同的郵件有不同的值。舉個例子,如果一封郵件以“A NIPS …,”開頭,那麼x1=1(字典中的第一個單詞是“a”),x2=35000(如果“nips”在字典中處於第35000個位置)。

在多項式事件模型中,我們假設一封郵件的生成方式是通過一個隨機的過程,垃圾郵件還是非垃圾郵件一開始是隨機確定好了的(取決於p

(y))。然後,郵件中的第一個單詞x1從多項式分佈中選取生成,第二個單詞x2與第一個單詞相互獨立,但都從多項式分佈中選取,接下來的x3x4的選取也是如此,直到所有的n個單詞都生成成功。因此,一封郵件整體的概率為p(y)ni=1p(xi|y)。這個等式與之前講的多變數伯努力事件模型得到的概率更是相似,但是公式的含義是完全不一樣的。尤其是xi|y現在是多項式,而不是伯努力分佈。

在我們的心模型中引數ϕy=p(y)p(xj=k|y=1) ϕi|y=0=p(xj=k|y=0)。我們之前假設了p(xj|y)對所有的j值的概率相同(郵件中生成的單詞無論位置如何,都不影響後續的概率計算)。

如果給出如下訓練集{(x(i),y(i));i=1,...,m},其中x(i)=(x(i)1,x(i)2,...,x(i)ni)(其中,ni是在第i個訓練樣本中的單詞總數),關於引數的似然估計的等式如下:


分別對引數進行最大似然估計,等式分別如下:


當估計引數ϕk|y=0ϕk|y=1時,如果我們使用Laplace平滑方法,那麼會在等式的分子上+1,分母上+|V|,然後更改後的等式如下所示:


儘管樸素貝葉斯演算法不一定是最好的分類演算法,但它的效果經常出乎意料的好。而且執行起來也非常的簡單好操作,不得不說是一個非常好的可以嘗試使用的演算法。

相關推薦

機器學習筆記5——樸素演算法

在上一講中,我們瞭解到了樸素貝葉斯以及laplace平滑。這一小節中,我們將要改進樸素貝葉斯演算法。原有的樸素貝葉斯中的特徵值xi是隻取0和1兩個值,現在要對樸素貝葉斯進行一般化,以適應於特徵值取值範圍為{1,2,...,k}這種情況。 一般化過程中,對p(x

Python機器學習筆記樸素演算法

  樸素貝葉斯是經典的機器學習演算法之一,也是為數不多的基於概率論的分類演算法。對於大多數的分類演算法,在所有的機器學習分類演算法中,樸素貝葉斯和其他絕大多數的分類演算法都不同。比如決策樹,KNN,邏輯迴歸,支援向量機等,他們都是判別方法,也就是直接學習出特徵輸出Y和特徵X之間的關係,要麼是決策函式,要麼是條

【ML學習筆記樸素演算法的demo(機器學習實戰例子)

礙於這學期課程的緊迫,現在需要儘快從課本上掌握一些ML演算法,我本不想經過danger zone,現在看來卻只能儘快進入danger zone,數學理論上的缺陷只能後面找時間彌補了。 如果你在讀這篇文章,希望你不要走像我一樣的道路,此舉實在是出於無奈,儘量不要去做一個心

機器學習之實戰樸素演算法

貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類,而樸素貝葉斯分類可謂是裡面最簡單、入門的一種。 首先關於貝葉斯定理,感覺簡單而偉大,前些天一直在看吳軍的數學之美(沒看過的極力推薦)系列文章,看到自然語言處理從規則模型到統計

我的第一篇學習筆記——使用樸素演算法對文件分類詳解

樸素貝葉斯演算法可以實現對文件的分類,其中最著名的應用之一就是過濾垃圾郵件。先做一個簡單的分類,以論壇的留言為例,構建一個快速的過濾器,來區分哪些留言是負面言論,哪些是正面言論。 我對演算法思路的理解:首先計算訓練集中每個詞語分別在正面(負面)文件中出現的概率以及正面(負面

機器學習系列之樸素演算法(監督學習-分類問題)

''' @description :一級分類:監督學習,二級分類:分類(離散問題),三級分類:貝葉斯演算法 演算法優點: a 樸素貝葉斯模型發源於古典數學理論,有穩定的分類效率 b 對缺失的資料不太敏感,演算法也比較簡

機器學習實戰(Machine Learning in Action)學習筆記————04.樸素分類(bayes)

機器學習實戰(Machine Learning in Action)學習筆記————04.樸素貝葉斯分類(bayes)關鍵字:樸素貝葉斯、python、原始碼解析作者:米倉山下時間:2018-10-25機器學習實戰(Machine Learning in Action,@author: Peter Harri

機器學習實戰:樸素--學習筆記

一、工作原理 我們用 p1(x,y) 表示資料點 (x,y) 屬於類別 1的概率,用 p2(x,y) 表示資料點 (x,y) 屬於類別 2的概率; 那麼對於一個新資料點 (x,y),可以用下面的規則來判斷它的類別: 如果 p1(x,y)

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

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

機器學習實戰》學習筆記樸素分類演算法

貝葉斯決策理論 選擇高概率對應的類別是貝葉斯決策理論的核心思想,即選擇具有最高概率的決策。 樸素貝葉斯 樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法  。最為廣泛的兩種分類模型是決策樹模型(Decision Tree Model)和樸素貝葉斯模型(Nai

機器學習實戰》學習筆記樸素(Naive Bayes)

原理 假如郵箱中有n個單詞, 如果returnVec[i]=0代表這個單詞在這封郵件中不出現, returnVec[i]=1代表這個單詞在郵件中出現了。 設訓練集中每個郵件都有標記為是垃圾郵件和不是垃圾郵件,是垃圾郵件的分類為1,不是垃圾郵件的分類為0。 演算法原理:

機器學習實戰】樸素

一.概述 二.理論基礎 三.文件分類 四.垃圾郵件過濾 五.從個人廣告中獲取區域傾向 六.程式碼問題總結 七.總結   一、概述 貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。本章首先介紹貝葉斯分類演算法的基礎——

統計學習筆記4—樸素

第四章 樸素貝葉斯法 4.1樸素貝葉斯法的學習與分類 4.1.1基本方法 樸素貝葉斯法通過訓練資料集學習聯合概率分佈。 利用先驗概率分佈和條件概率分佈求得聯合概率分佈: 條件概率引數是指數級,太複雜—條件獨立性假設:用於分類的特徵在類確定的條件下是獨立的。

統計學習筆記六----樸素

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

統計學習筆記樸素

簡介 如果說前面筆記中所介紹的方法跟統計沒什麼明顯聯絡的話,那麼這裡介紹的樸素貝葉斯就純粹在用基於統計的方法解決問題。首先樸素貝葉斯是基於貝葉斯和特徵條件獨立假設的分類方法。通過特徵條件獨立假設來學習輸入/輸出的聯合分佈(P(x,y)),同時根據貝葉斯定理預測給定輸入x的後

機器學習 】使用樸素進行文件分類

樸素貝葉斯的一般過程: 1、收集資料:任何方法 2、準備資料:需要數值型或者布林型資料 3、分析資料:有大量特徵時,繪製特徵作用不大,此時使用直方圖效果更好 4、訓練演算法:計算不同的獨立特徵的條件概率 5、測試演算法:計算錯誤率 6、使用演算法:常見的樸素貝葉斯應用是

【十九】機器學習之路——樸素分類

  最近在看周志華《機器學習》的貝葉斯分類器這一章時覺得書上講的很難理解,很多專業術語和符號搞的我頭大,大學時候概率論我還是學的還是不錯的,無奈網上搜了搜前輩的部落格,看到一篇把樸素貝葉斯講的很簡單的文章,頓時豁然開朗。關於貝葉斯分類且聽我慢慢道來: 貝葉

機器學習:半樸素分類器

請點選上面公眾號,免費訂閱。 主要推送關於對演算法的思考以及應用的訊息。培養思維能力,注重過程,挖掘背後的原理,刨根問底。本著嚴謹和準確的態度,目標是撰寫實用和啟發性的文章,歡迎您的關注。 0

機器學習入門之樸素

樸素貝葉斯法 樸素貝葉斯法是基於貝葉斯定理和特徵條件獨立假設分類方法。對於給定訓練集,首先基於特徵條件獨立性的假設,學習輸入/輸出聯合概率(計算出先驗概率和條件概率,然後求出聯合概率)。然後基於此模型,給定輸入x,利用貝葉斯概率定理求出最大的後驗概率作為輸出y

機器學習實戰之樸素

問題1 來源:使用樸素貝葉斯過濾垃圾郵件 描述:spamTest()和textParse()讀檔案時編譯通不過 報錯:UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 199: illegal