1. 程式人生 > >機器學習筆記(五):樸素貝葉斯分類器

機器學習筆記(五):樸素貝葉斯分類器

一、概述

1.1 簡介

樸素貝葉斯(Naive Bayesian)是基於貝葉斯定理和特徵條件獨立假設的分類方法,它通過特徵計算分類的概率,選取概率大的情況進行分類,因此它是基於概率論的一種機器學習分類方法。因為分類的目標是確定的,所以也是屬於監督學習。

Q1:什麼是基於概率論的方法?

通過概率來衡量事件發生的可能性。概率論和統計學恰好是兩個相反的概念,統計學是抽取部分樣本進行統計來估算總體的情況,而概率論是通過總體情況來估計單個事件或者部分事情的發生情況。因此,概率論需要已知的資料去預測未知的事件。

例如,我們看到天氣烏雲密佈,電閃雷鳴並陣陣狂風,在這樣的天氣特徵(F)下,我們推斷下雨的概率比不下雨的概率大,也就是p(下雨)>p(不下雨)p(下雨)>p(不下雨),所以認為待會兒會下雨。這個從經驗上看對概率進行判斷。

而氣象局通過多年長期積累的資料,經過計算,今天下雨的概率p(下雨)=85%,p(不下雨)=15%p(下雨)=85%,p(不下雨)=15%,同樣的,p(下雨)>p(不下雨)p(下雨)>p(不下雨),因此今天的天氣預報肯定預報下雨。這是通過一定的方法計算概率從而對下雨事件進行判斷。

Q2:樸素貝葉斯,樸素在什麼地方?

之所以叫樸素貝葉斯,因為它簡單、易於操作,基於特徵獨立性假設,假設各個特徵不會相互影響,這樣就大大減小了計算概率的難度。

1.2 條件概率與貝葉斯定理

(1)概率論中幾個基本概念

事件交和並:

A和B兩個事件的交,指的是事件A和B同時出現,記為A∩B;

A和B兩個事件的並,指的是事件A和事件B至少出現一次的情況,記為A∪B。

互補事件:

事件A的補集,也就是事件A不發生的時候的事件,記為 A c A^c 。這個時候,要麼A發生,要麼 A

c A^c 發生, P ( A ) + P ( A c ) = 1 P(A)+P(A^c)=1

條件概率(conditional probability):

某個事件發生時另外一個事件發生的概率,如事件B發生條件下事件A發生的概率:

P ( A B ) = P ( A B ) P ( B ) P(A|B)=\frac{P(A\cap B)}{P(B)}

概率的乘法法則(multiplication rule of probability):

P ( A B ) = P ( A ) P ( A B ) o r P ( A B ) = P ( B ) P ( A B ) P(A\cap B)=P(A)P(A|B)orP(A\cap B)=P(B)P(A|B)

獨立事件交的概率:

兩個相互獨立的事件,其交的概率為:

P ( A B ) = P ( A ) P ( B ) P(A\cap B)=P(A)P(B)

(2)貝葉斯定理(Bayes’s Rule):

如果有k個互斥且有窮個事件

B 1 , B 2 , , B k B_1,B_2,\dots,B_k ,並且, P ( B 1 ) + P ( B 2 ) + + P ( B k ) = 1 P(B_1)+P(B_2)+\dots+P(B_k)=1 和一個可以觀測到的事件A,那麼有:

P ( B i A ) = P ( B i A ) P ( A ) = P ( B i ) P ( A B i ) P ( B i ) P ( A B i ) + P ( B 2 ) P ( A B 2 ) + + P ( B k ) P ( A B k ) P(B_i|A)=\frac{P(B_i\cap A)}{P(A)}=\frac{P(B_i)P(A|B_i)}{P(B_i)P(A|B_i)+P(B_2)P(A|B_2)+\dots+P(B_k)P(A|B_k)}

p ( A ) : A p(A):事件A發生的概率
p ( A B ) : A B p(A\cap B):事件A和事件B同時發生的概率
p ( A B ) : A B p(A|B):表示事件A在事件B發生的條件下發生的概率

1.3 樸素貝葉斯分類的原理

樸素貝葉斯基於條件概率、貝葉斯定理和獨立性假設原則

(1)首先,我們來看條件概率原理:

基於概率論的方法告訴我們,當只有兩種分類時:

如果 p 1 ( x , y ) > p 2 ( x , y ) p1(x,y)>p2(x,y) ,那麼分入類別1
如果 p 1 ( x , y ) < p 2 ( x , y ) p1(x,y)<p2(x,y) ,那麼分入類別2

(2)其次,貝葉斯定理

同樣的道理,引入貝葉斯定理,有:

p ( c i x , y ) = p ( x , y c i ) p ( c i ) p ( x , y ) p(c_i|x,y)=\frac{p(x,y|c_i)p(c_i)}{p(x,y)}

其中, x , y x,y 表示特徵變數, c i c_i 表示分類, p ( c i x , y ) p(c_i|x,y) 即表示在特徵為 x , y x,y 的情況下分入類別 c i c_i 的概率,因此,結合條件概率和貝葉斯定理,有:

  • 如果 p ( c 1 x , y ) > p ( c 2 x , y )

    相關推薦

    機器學習筆記樸素分類

    一、概述 1.1 簡介 樸素貝葉斯(Naive Bayesian)是基於貝葉斯定理和特徵條件獨立假設的分類方法,它通過特徵計算分類的概率,選取概率大的情況進行分類,因此它是基於概率論的一種機器學習分類方法。因為分類的目標是確定的,所以也是屬於監督學習。 Q1:什麼是基於概率論的方

    Python3《機器學習實戰》學習筆記樸素實戰篇之新浪新聞分類

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

    機器學習筆記續——樸素演算法的後驗概率最大化含義

      上一節中講了樸素貝葉斯演算法將例項分到後驗概率最大的類。這等價於期望風險最小化。 假設使用0-1損失函式: L(Y,f(X))={1,0,Y≠f(X)Y=f(X) 上式中的f(x)是分類決策函式, 這時,期望風險函式是: Rexp(f)=E[L(Y

    學習筆記樸素在Web安全中的六個應用

    一、檢測Web異常操作        1.資料蒐集:一樣        2.特徵化             使用詞集模型,統計全部操作命令,去重後形

    機器學習筆記2——使用樸素演算法過濾中英文垃圾郵件

    在上一篇文章《使用樸素貝葉斯演算法對文件分類詳解》中,我們實現了用樸素貝葉斯演算法對簡單文件的分類,今天我們將利用此分類器來過濾垃圾郵件。 1. 準備資料——文字切分 之前演算法中輸入的文件格式為單詞向量,例如['my', 'dog', 'has', 'flea', 'p

    生成式學習演算法之----樸素分類

    樸素貝葉斯分類器(演算法)與樸素貝葉斯假設 在高斯判別分析模型(GDA)中,特徵向量$ x$ 是連續實值向量。現在我們來討論分量$ x_j$ 取離散值的貝葉斯樸素貝葉斯模型。 在文字分類問題中,有一個問題是分出一個郵件是(\(y=1\) )或者不是(\(y=1\) )垃圾郵件。我們的訓練資料集是一些標好是否是

    機器學習實戰》筆記樸素

    4.1 基於貝葉斯決策理論的分類方法 樸素貝葉斯是貝葉斯決策理論的一部分,貝葉斯決策理論的的核心思想,即選擇具有最高概率的決策。若p1(x,y)和p2(x,y)分別代表資料點(x,y)屬於類別1,2的概率,則判斷新資料點(x,y)屬於哪一類別的規則是: 4.3 使用條件概率來分類

    機器學習實戰讀書筆記樸素演算法

    樸素貝葉斯 優點: 在資料較少的情況下仍然有效 可以處理多類別問題 缺點:對輸入的資料的準備方式較為敏感 適用資料型別:標稱型資料 p1(x,y)>p2(x,y) 那麼類別是1 p2(x,y)>p1(x,y) 那麼類別是2 貝葉斯決策的核心是選擇具有最高概率的決策

    機器學習實戰教程樸素實戰篇之新浪新聞分類

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

    機器學習實戰——NaiveBayes樸素演算法郵件分類

    樸素貝葉斯分類的原理是條件概率的計算: 在已知先驗概率的條件下,計算後驗概率,後驗概率即是在當前資料條件下屬於分類1或者分類2 的概率,取概率較大的一個為輸出。 貝葉斯準則很熟悉了,不解釋了,但在這個演算法中引入了一個很重要的思想:將文字等資料物件轉化為向量

    機器學習實踐】用Python實現樸素分類

           閱讀學習了《機器學習》第7章的貝葉斯分類器後,為了加深理解和加強python的程式碼能力,因此嘗試使用Python實現樸素貝葉斯分類器,由於初學Python的緣故,程式碼的一些實現方法可能比較繁瑣,可閱讀性有待提高。程式碼如下: #import numpy a

    機器學習實戰——python實現簡單的樸素分類

    基礎公式 貝葉斯定理:P(A|B) = P(B|A)*P(A)/P(B) 假設B1,B2…Bn彼此獨立,則有:P(B1xB2x…xBn|A) = P(B1|A)xP(B2|A)x…xP(Bn|A) 資料(虛構) A1 A2 A3 A4 A5 B

    機器學習筆記支援向量機SVM

    支援向量機是目前機器學習的眾多演算法中使用得最為廣泛的演算法之一,本文主要介紹支援向量機的概念與原理。 目錄 什麼是支援向量機 硬間隔線性支援向量機 軟間隔線性支援向量機 非線性支援向量機     一、什麼是支援向量機 &nbs

    機器學習實戰教程樸素基礎篇之言論過濾器

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

    用Python開始機器學習6樸素分類

    樸素貝葉斯分類器是一個以貝葉斯定理為基礎,廣泛應用於情感分類領域的優美分類器。本文我們嘗試使用該分類器來解決上一篇文章中影評態度分類。1、貝葉斯定理假設對於某個資料集,隨機變數C表示樣本為C類的概率,F1表示測試樣本某特徵出現的概率,套用基本貝葉斯公式,則如下所示:上式表示對

    機器學習回顧篇5樸素演算法

    1 引言 說到樸素貝葉斯演算法,很自然地就會想到貝葉斯概率公式,這是我們在高中的時候就學過的只是,沒錯,這也真是樸素貝葉斯演算法的核心,今天我們也從貝葉斯概率公式開始,全面擼一擼樸素貝葉斯演算法。 2 貝葉斯概率公式 2.1 聯合概率與全概率公式 定義1:完備事件組 ${A_1} \cup {A_2

    機器學習樸素分類,決策函式向量化處理,mask使用技巧

    文章目錄 前面實現的樸素貝葉斯分類器,決策函式是非向量化的: 藉助於numpy向量化處理,相當於平行計算,注意mask使用技巧,用途較廣: 前面實現的樸素貝葉斯分類器,決策函式是非向量化的: 前面提到過大資料處理,儘量避免個人的遍歷等一些函式

    機器學習樸素分類程式碼實現,決策函式非向量化方式

    文章目錄 樸素貝葉斯離散型的演算法描述: 程式碼實現: 實現一個NaiveBayes的基類,以便擴充套件: 實現離散型樸素貝葉斯MultiomialNB類: 實現從檔案中讀取資料: 測試資料: 程式碼測試:

    資料探勘十大演算法樸素 python和sklearn實現

    第三個演算法終於算是稍有了解了,其實當你結合資料瞭解了它的實現原理後,你會發現確實很樸素。這裡對樸素貝葉斯演算法做一個介紹和總結,包括(原理、一個程式碼示例、sklearn實現),皆為親自實踐後的感悟,下面進入正文。 原理: 首先我們需要了解概率論的一些簡單知識:

    資料探勘十大演算法樸素原理、例項與Python實現

    一、條件概率的定義與貝葉斯公式 二、樸素貝葉斯分類演算法 樸素貝葉斯是一種有監督的分類演算法,可以進行二分類,或者多分類。一個數據集例項如下圖所示: 現在有一個新的樣本, X = (年齡:<=30, 收入:中, 是否學生:是, 信譽:中),目標是利用樸素貝