1. 程式人生 > >深入解析樸素貝葉斯演算法

深入解析樸素貝葉斯演算法

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


下面我們就圍繞上面2個步驟進行介紹。

基本概念:

先驗概率:是根據以往的經驗和分析得到的概率(先驗概率是我們在未知條件下對事件發生可能性猜測的數學表示)
後驗概率:事情已經發生,要探求這件事情發生的原因是由某個因素引起的可能性大小(根據結果反推是由那個原因引起的)
(下面的例子參考這個老哥的部落格:https://www.cnblogs.com/yemanxiaozu/p/7680761.html)

P (

) =
P ( ) P ( ) P(加了醋|吃起來是酸的)=\frac{P(加了醋,且吃起來是酸的)}{P(吃起來是酸的)}

= P ( ) P ( ) P =\frac{P(吃起來是酸的|加了醋)*P(加了醋)}{P(吃起來是酸的)}

= P ( ) P ( ) P ( ) P ( ) + P ( ) P ( ) =\frac{P(吃起來是酸的|加了醋)*P(加了醋)}{P(吃起來是酸的|加了醋)*P(加了醋)+P(吃起來是酸的|肉變質)*P(肉變質)}

其中 P ( ) P(加了醋|吃起來是酸的) 就是後驗概率,所謂後驗概率是一種果因概率,即在一個結果已經發生的條件下,可能是其中一個原因造成的概率有多大。

貝葉斯公式: P ( Y X ) = P ( X Y ) P ( Y ) P ( X ) P(Y|X)=\frac{P(X|Y)P(Y)}{P(X)}
貝葉斯公式是由聯合概率公式推匯出來的:
P ( Y , X ) = P ( Y X ) P ( X ) = P ( X Y ) P ( Y ) P(Y,X)=P(Y|X)P(X)=P(X|Y)P(Y)

概率論與數理統計中關於貝葉斯公式的解釋:
“如果我們把事件Y看做【結果】,把諸事件X1.X2……看做導致這個結果的可能的【原因】,則可以形象的把全概率公式看做成為【由原因推結果】;而貝葉斯公式則恰好相反,其作用於【由結果推原因】:現在有一個【結果】Y已發生,在眾多可能的【原因】中,到底是哪一個導致了這個【結果】”

用機器學習視角理解貝葉斯公式
在機器學習的視角下,我們把X理解為“具有某特徵”,把Y理解成“類別標籤”,則

P ( " " " " ) = P ( " " ) P ( " " ) P ( " " ) P("屬於某類"|"具有某特徵")=\frac{P("具有某特徵"|“屬於某類”)P("屬於某類")}{P("具有某特徵")}

P(“屬於某類”|“具有某特徵”)=在已知某樣本“具有某特徵”的條件下,該樣本“屬於某類”的概率。所以叫做『後驗概率』。
P(“具有某特徵”|“屬於某類”)=在已知某樣本“屬於某類”的條件下,該樣本“具有某特徵”的概率。
P(“屬於某類”)=(在未知某樣本具有該“具有某特徵”的條件下,)該樣本“屬於某類”的概率。所以叫做『先驗概率』。
P(“具有某特徵”)=(在未知某樣本“屬於某類”的條件下,)該樣本“具有某特徵”的概率。

樸素貝葉斯法的學習與分類

樸素貝葉斯法通過訓練集學習聯合概率分佈 P ( X , Y ) P(X,Y) ,具體的,學習以下先驗概率分佈及條件概率分佈
先驗概率分佈
P ( Y = c k ) , k = 1 , 2 K P(Y=c_k),k=1,2…K ----------------------(1)
條件概率分佈
P ( X = x Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( n ) = x ( n ) Y = c k ) , k = 1 , 2 K P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},……X^{(n)}=x^{(n)}|Y=c_k),k=1,2…K ------------(2)

由(1)和(2)可得到聯合概率分佈 P ( X , Y ) P(X,Y)

樸素貝葉斯法對條件概率分佈做了條件獨立性的假設所以得名為樸素
具體的,條件獨立性假設是:
P ( X = x Y = c k ) = P ( X ( 1 ) = x ( 1 ) , X ( n ) = x ( n ) Y = c k ) = j = 1 n P ( X ( j ) = x ( j ) Y = c k ) P(X=x|Y=c_k)=P(X^{(1)}=x^{(1)},……X^{(n)}=x^{(n)}|Y=c_k)=∏_{j=1}^{n}P(X^{(j)}=x^{(j)}|Y=c_k)

相關推薦

深入解析樸素演算法

樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法。 1)對於給定的資料集,首先基於特徵條件獨立假設學習輸入\輸出的聯合概率分佈; 2)然後基於此模型,對給定的輸入 x

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

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

樸素演算法原理

(作者:陳玓玏) 1. 損失函式 假設我們使用0-1損失函式,函式表示式如下: Y Y Y為真實

樸素演算法應用——垃圾簡訊分類

理解貝葉斯公式其實就只要掌握:1、條件概率的定義;2、乘法原理 P (

機器學習——樸素演算法

概率定義為一件事情發生的可能性 概率分為聯合概率和條件概率  聯合概率:包含多個條件,且所有條件同時成立的概率 記作:P(A,B)  P(A,B)=P(A)P(B) 條件概率:就是事件A在另外一個事件B已經發生的條件概率 記作:P(A|B)  

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

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

樸素演算法優化與 sklearn 實現

1. 引言 上一篇日誌中,我們主要介紹了貝葉斯演算法,並提供了 python 實踐: 樸素貝葉斯演算法的推導與實踐 但執行上一篇日誌中的示例,我們發現出現了下面的結果: ['love', 'my', 'dalmation'] 屬於非侮辱類 ['stu

樸素演算法的推導與實踐

1. 概述 在此前的文章中,我們介紹了用於分類的演算法: k 近鄰演算法 決策樹的構建演算法 – ID3 與 C4.5 演算法 但是,有時我們無法非常明確地得到分類,例如當資料量非常大時,計算每個樣本與預測樣本之間的距

機器學習——樸素演算法Python實現

簡介 這裡參考《統計學習方法》李航編進行學習總結。詳細演算法介紹參見書籍,這裡只說明關鍵內容。 即 條件獨立下:p{X=x|Y=y}=p{X1=x1|Y=y} * p{X2=x2|Y=y} *...* p{Xn=xn|Y=y} (4.4)等價於p{Y=ck|X=x

深入理解樸素(Naive Bayes)

之間 計算 else 不同 樸素 foo 防止 zeros 甜美 https://blog.csdn.net/li8zi8fa/article/details/76176597 樸素貝葉斯是經典的機器學習算法之一,也是為數不多的基於概率論的分類算法。樸素貝葉斯原理簡單,也很

第3章 樸素演算法 (二 演算法實戰)

3.6樸素貝葉斯實踐 3.6.1樸素貝葉斯之微博評論篩選 以微博評論為例。為了不影響微博的發展,我們要遮蔽低俗的言論,所以要構建一個快速過濾器,如果某條評論使用了負面或者侮辱性等低俗的語言,那麼就將該留言標誌為內容不當。過濾這類內容是一個很常見的需求。對此問題建

機器學習樸素演算法

樸素貝葉斯屬於監督學習的生成模型,實現簡單,沒有迭代,學習效率高,在大樣本量下會有較好表現。但因為假設太強——特徵條件獨立,在輸入向量的特徵條件有關聯的場景下,並不適用。 樸素貝葉斯演算法:主要思路是通過聯合概率建模,運用貝葉斯定理求解後驗概率;將後驗概率最大者對應的類別作

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

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

樸素演算法的python實現

import numpy as np import re #詞表到向量的轉換函式 def loadDataSet(): postingList = [['my', 'dog', 'has', 'flea', 'problems', 'help', 'please']

2.樸素演算法

樸素貝葉斯程式碼(原理很簡單) 直接上程式碼 import numpy as np from collections import Counter,defaultdict class Nbayes: def __init__(self): self

樸素演算法-My way of ML7

預備知識 聯合概率:包含多個條件,所有條件同時成立概率P(A,B)=P(A)P(B) 條件概率:事件A發生在事件B發生的條件之下的概率。所有的特徵值無關的時候才能適用條件概率 樸素貝葉斯的前提是: 特徵條件獨立,哈哈,這也是她被叫做樸素的原因,因為特徵之間很難獨

資料探勘領域十大經典演算法之—樸素演算法(超詳細附程式碼)

簡介 NaïveBayes演算法,又叫樸素貝葉斯演算法,樸素:特徵條件獨立;貝葉斯:基於貝葉斯定理。屬於監督學習的生成模型,實現簡單,沒有迭代,並有堅實的數學理論(即貝葉斯定理)作為支撐。在大量樣本下會有較好的表現,不適用於輸入向量的特徵條件有關聯的場景。 基本思想 (1)

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

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

機器學習實戰讀書筆記(四):樸素演算法

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

Python實現樸素演算法 --- 過濾垃圾郵件

# -*- coding:utf-8 -*- import numpy as np import random import re __author__ = 'yangxin' """ 過濾垃圾郵件 """ class FilterSpam(object): #