1. 程式人生 > >機器學習演算法總結--樸素貝葉斯

機器學習演算法總結--樸素貝葉斯

這次需要總結的是樸素貝葉斯演算法,參考文章:

簡介

樸素貝葉斯是基於貝葉斯定理與特徵條件獨立假設的分類方法。

貝葉斯定理是基於條件概率來計算的,條件概率是在已知事件B發生的前提下,求解事件A發生的概率,即P(A|B)=P(AB)P(B),而貝葉斯定理則可以通過P(A|B)來求解P(B|A)

P(B|A)=P(A|B)P(B)P(A)
其中分母P(A)可以根據全概率公式分解為:P(A)=ni=1P(Bi)P(A|Bi)

特徵條件獨立假設是指假設各個維度的特徵x1,x2,...,xn互相獨立,則條件概率可以轉化為:

P(x|yk)=P(x1,x2,...,xn|yk
)=i=1nP(xi|yk)

樸素貝葉斯分類器可表示為:
f(x)=argmaxykP(yk|x)=argmaxykP(yk)ni=1P(xi|yk)kP(yk)ni=1P(xi|yk)
而由於對上述公式中分母的值都是一樣的,所以可以忽略分母部分,即可以表示為:
f(x)=argmaxP(yk)i=1nP(xi|yk)
這裡P(yk)是先驗概率,而P(yk|x)則是後驗概率,樸素貝葉斯的目標就是最大化後驗概率,這等價於期望風險最小化。

引數估計

極大似然估計

樸素貝葉斯的學習意味著估計P(yk)P(xi|yk),可以通過極大似然估計來估計相應的概率。

這裡寫圖片描述

如上圖所示,分別是P

(yk)P(xi|yk)的極大似然估計。

當求解完上述兩個概率,就可以對測試樣本使用樸素貝葉斯分類演算法來預測其所屬於的類別,簡單總結的演算法流程如下所示:

這裡寫圖片描述

貝葉斯估計/多項式模型

極大似然估計可能會出現所要估計的概率值為0的情況,這會影響到後驗概率的計算,使分類產生偏差。解決這個問題的辦法是使用貝葉斯估計,也被稱為多項式模型。

特徵是離散的時候,使用多項式模型。多項式模型在計算先驗概率P(yk)和條件概率P(xi|yk)時,會做一些平滑處理,具體公式為:

P(yk)=Nyk+αN+kα

N是總的樣本個數,k是總的類別個數,N

相關推薦

機器學習演算法總結--樸素

這次需要總結的是樸素貝葉斯演算法,參考文章: 簡介 樸素貝葉斯是基於貝葉斯定理與特徵條件獨立假設的分類方法。 貝葉斯定理是基於條件概率來計算的,條件概率是在已知事件B發生的前提下,求解事件A發生的概率,即P(A|B)=P(AB)P(B),而貝葉

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

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

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

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

機器學習演算法樸素

樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法。演算法的核心思想就是比較概率的大小,認定概率大的類別為所屬類別下面是公式推導下面是樸素貝葉斯的python程式碼實現import numpy as np from functools import reduce de

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

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

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

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

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

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

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

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

機器學習實戰】樸素

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

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

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

生成學習演算法樸素演算法

2  樸素貝葉斯演算法 在GDA中,特徵向量是連續的實值向量。現在讓我們討論一種不同的學習演算法,在這個演算法中,是離散值。 對於我們的激勵的例子,考慮使用機器學習建立一個電子郵件的垃圾郵件過濾器。這裡,我們希望根據它們是未經請求的商業(垃圾)電子郵件還是非垃圾郵件進行分

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

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

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

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

資料探勘經典演算法總結-樸素分類器

貝葉斯定理(Bayes theorem),是概率論中的一個結果,它跟隨機變數的條件概率以及邊緣概率分佈有關。在有些關於概率的解說中,貝葉斯定理(貝葉斯更新)能夠告知我們如何利用新證據修改已有的看法。 通常,事件A在事件B(發生)的條件下的概率,與事件B在事件A的條件下的概率

機器學習:半樸素分類器

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

機器學習入門之樸素

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

機器學習實戰之樸素

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

python機器學習庫sklearn——樸素分類器

在scikit-learn中,一共有3個樸素貝葉斯的分類演算法類。分別是GaussianNB,MultinomialNB和BernoulliNB。其中GaussianNB就是先驗為高斯分佈的樸素貝葉斯,MultinomialNB就是先驗為多項式分佈的樸素

【python】機器學習實戰之樸素分類

一,引言   前兩章的KNN分類演算法和決策樹分類演算法最終都是預測出例項的確定的分類結果,但是,有時候分類器會產生錯誤結果;本章要學的樸素貝葉斯分類演算法則是給出一個最優的猜測結果,同時給出猜測的概率估計值。 1 準備知識:條件概率公式 相信學過概率論的同學對於概

機器學習入門實戰——樸素實戰新聞組資料集

樸素貝葉斯實戰新聞組資料集 關於樸素貝葉斯的相關理論知識可檢視:樸素貝葉斯法 關於新聞組資料集 20newsgroups資料集是用於文字分類、文字挖據和資訊檢索研究的國際標準資料集之一。一些新聞組的主題特別相似(e.g. comp.sys.ibm.pc.h