1. 程式人生 > >機器學習之樸素貝葉斯(NB)分類演算法與Python實現

機器學習之樸素貝葉斯(NB)分類演算法與Python實現

樸素貝葉斯(Naive Bayesian)是最為廣泛使用的分類方法,它以概率論為基礎,是基於貝葉斯定理和特徵條件獨立假設的分類方法。

一、 概述

1.1 簡介

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

Q1
通過概率來衡量事件發生的可能性。概率論和統計學恰好是兩個相反的概念,統計學是抽取部分樣本進行統計來估算總體的情況,而概率論是通過總體情況來估計單個事件或者部分事情的發生情況。因此,概率論需要已知的資料去預測未知的事件。
例如,我們看到天氣烏雲密佈,電閃雷鳴並陣陣狂風,在這樣的天氣特徵(F)下,我們推斷下雨的概率比不下雨的概率大,也就是p

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

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

1.2 條件概率與貝葉斯定理

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

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

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

互補事件:事件A的補集,也就是事件A不發生的時候的事件,記為Ac。這個時候,要麼A發生,要麼Ac發生,P(A)+P(Ac)=1

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

P(A|B)=P(AB)P(B)
概率的乘法法則(multiplication rule of probability):
P(AB)=P(A)P(B|A)orP(AB)=P(B)P(A|B)
獨立事件交的概率:
兩個相互獨立的事件,其交的概率為:
P
(AB)=P(A)P(B)

更多概率論基本概念,參見:概率論基本概念

(2)貝葉斯定理(Bayes’s Rule):
如果有k個互斥且有窮個事件
B1,B2Bk,並且,P(B1)+P(B2)++P(Bk)=1和一個可以觀測到的事件A,那麼有:

P(Bi|A)=P(BiA)P(A)=P(Bi)P(A|Bi)P(B1)P(A|B1)+P(B2)P(A|B2)++P(Bk)P(A|Bk)
p(A) :事件A發生的概率;
p(AB) :事件A 和事件B同時發生的概率
p(A|B) :表示事件A在事件B發生的條件下發生的概率,

1.3 樸素貝葉斯分類的原理

樸素貝葉斯基於條件概率、貝葉斯定理和獨立性假設原則
(1)首先,我們來看條件概率原理:

基於概率論的方法告訴我們,當只有兩種分類時:
如果p1(x,y)>p2(x,y),那麼分入類別1
如果p1(x,y)<p2(x,y),那麼分入類別2

(2)其次,貝葉斯定理
同樣的道理,引入貝葉斯定理,有:

p(ci|x,y)=p(x,y

相關推薦

機器學習樸素(NB)分類演算法Python實現

樸素貝葉斯(Naive Bayesian)是最為廣泛使用的分類方法,它以概率論為基礎,是基於貝葉斯定理和特徵條件獨立假設的分類方法。 一、 概述 1.1 簡介 樸素貝葉斯(Naive Bayesian)是基於貝葉斯定理和特徵條件獨立假

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

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

機器學習樸素分類方法

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

機器學習樸素(Naive Bayes)

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

機器學習樸素(附垃圾郵件分類

樸素貝葉斯分類器介紹概述  樸素貝葉斯分類器技術基於貝葉斯定理,特別適用於輸入維數較高的情況。儘管樸素貝葉斯方法簡單,但它通常比更復雜的分類方法更勝一籌。                  

機器學習樸素演算法程式碼實現

                                    樸素貝葉斯演算法與程式碼實現 演算法原理 樸素貝葉斯是經典的機器學習演算法之一,也是為數不多的基於概率論的分類演算法。樸素貝葉斯原理簡單,也很容易實現,多用於文字分類,比如垃圾郵件過濾。 該演算法的優點在於簡單易懂、學習效率高、在某些領

機器學習樸素分類器附C++程式碼

一、基本概念: 先驗概率(prior probability):是指根據以往經驗和分析得到的概率,如全概率公式,它往往作為"由因求果"問題中的"因"出現的概率。比如,拋一枚硬幣,正面朝上的概率P(A)=1/2,就是先驗概率。聯合概率:表示兩個事件共同發生的概率。A與B的

機器學習樸素分類實現

問題如下 比如:有如下的需求,要判斷某一句英語是不是侮辱性語句 分析思路 對於機器來說,可能不容易分辨出某一句話是不是侮辱性的句子,但是機器可以機械的進行分析,何為機械的進行分析,就是判斷某一個句子中侮辱性的單詞是不是達到一定數量(當然這

機器學習樸素模型及程式碼示例

一、樸素貝葉斯的推導 樸素貝葉斯學習(naive Bayes)是一種有監督的學習,訓練時不僅要提供訓練樣本的特徵向量X,而且還需提供訓練樣本的實際標記Y,是一種基於貝葉斯定理和特徵條件獨立假設的分類方法。 1. 貝葉斯定理: 貝葉斯定理: 。 對於分

資料探勘十大演算法(九):樸素原理、例項Python實現

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

大資料Spark(七)--- Spark機器學習樸素,酒水評估和分類案例學習,垃圾郵件過濾學習案例,電商商品推薦,電影推薦學習案例

一、Saprk機器學習介紹 ------------------------------------------------------------------ 1.監督學習 a.有訓練資料集,符合規範的資料 b.根據資料集,產生一個推斷函式

機器學習系列——樸素分類器(二)

表示 -h line log ima 條件 code 樸素貝葉斯 spa 貝葉斯定理: 其中: 表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:。 機器學習系列——樸素貝葉斯分類器(二)

機器學習面試--樸素

eight str 存儲 hint 做的 均值 相關性 似然 actual 關鍵詞:先驗概率;條件概率和後驗概率;特征條件獨立;貝葉斯公式;樸素貝葉斯;極大似然估計;後驗概率最大化; 期望風險最小化;平滑方法 樸素貝葉斯分類的定義如下: 1. 設 x = a1,a2, ..

sklearn庫學習樸素分類

樸素貝葉斯模型 樸素貝葉斯模型的泛化能力比線性模型稍差,但它的訓練速度更快。它通過單獨檢視每個特徵來學習引數,並從每個特徵中收集簡單的類別統計資料。想要作出預測,需要將資料點與每個類別的統計資料進行比較,並將最匹配的類別作為預測結果。 GaussianNB應用於任意連續資料,

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

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

機器學習實戰——樸素Python實現記錄

問題:regEx= re.compile('\\W*') 屬於列印錯誤。 正確:     regEx = re.compile('\W*') regEx = re.compile('\W*') 關於'\W' 和'\w'區別,可參考部落格:https://

機器學習多項式分類器multinomialNB

機器學習之多項式貝葉斯分類器multinomialNB # -*- coding: utf-8 -*- """ Created on Sun Nov 25 11:28:25 2018 @author: muli """ from sklearn import nai

機器學習六】NB

程式碼先貼上,後續總結 from numpy import * # 過濾網站的惡意留言 侮辱性:1 非侮辱性:0 # 建立一個實驗樣本 def loadDataSet(): postingList = [['my','dog','has','flea','problems','h

機器學習_13.樸素

樸素貝葉斯 樸素貝葉斯試講連續取值的輸入對映為離散取值的輸出的演算法,用於解決分類問題。基本思想在與分析待分類樣本出現每個輸出類別中的後驗概率,並取最大後驗概率的類別作為分類的輸出。從模型最優化的角度看,樸素貝葉斯分類是平均意義上預測能力最優的模型,即使期望風險最小化。其中,期望風險是風險函式的

機器學習實戰-樸素

資料集參考自https://blog.csdn.net/c406495762/article/details/77341116 樸素貝葉斯:首先,何為樸素?樸素要求的是條件特徵之間相互獨立。我們都知道大名鼎鼎的貝葉斯公式,其實樸素貝葉斯的思想很簡單。就是通過計算屬於某一類別的後驗概率,然後比較大小,哪一類的