數據分析經典模型——樸素貝葉斯

2021-01-11 人人都是產品經理

編輯導語:做過數據分析的人,想必對貝葉斯模型都不會陌生。貝葉斯預測模型是運用貝葉斯統計進行的一種預測,不同於一般的統計方法,其不僅利用模型信息和數據信息,而且充分利用先驗信息。通過實證分析的方法,將貝葉斯預測模型與普通回歸預測模型的預測結果進行比較,結果表明貝葉斯預測模型具有明顯的優越性。

說到貝葉斯模型,就算是不搞數據分析的都會有所耳聞,因為它的應用範圍實在是太廣泛了。

大數據、機器學習、數據挖掘、數據分析等領域幾乎都能找到貝葉斯模型的影子,在疾病診斷、金融投資、日常生活中也都會用到。

貝葉斯公式不僅可以幫助人們確定導致某一事件發生的最可能的原因,而且在數量上刻畫了隨著新信息的加入,人們對一個事物的認識如何從先驗概率過渡到後驗概率。

要了解貝葉斯,我們先來看看條件概率。

一、條件概率

條件概率是指事件A在事件B發生的條件下發生的概率,條件概率表示為:P(A|B)。

來看下面這個例子:

假設現在有一個裝了7個石塊的罐子,其中4塊是紅色的,3塊是白色的,如圖:

問題1:如果從罐子中隨機取出一塊石頭,那麼是白色的可能性是多少?

回答1:由於取石頭有7種可能,其中3塊是白色,所以取出白色石頭的概率為3/7。

問題2:取出紅色的概率是多少?

回答2:很顯然,答案是4/7。

我們用P(white)來表示取到白色石頭的概率,用P(red)來表示取到紅色石頭的概率,那麼:P(white)=3/7,P(red)=4/7。

很簡單,對吧?

問題來了:現在,我們把這7塊石頭放到兩個桶中,上述概率該如何計算呢?

問題分析:要計算P(white)或者P(red),事先得知道石頭所在桶的信息會不會改變結果?

假定計算的是從B桶取到白色石頭的概率,這個概率可以記作P(white|B),我們稱之為「在已知石頭出自B桶的條件下,取出白色石頭的概率」,這就是條件概率。

從上圖可以看出P(white|A)=2/4,P(white|B)=1/3,依然很簡單。

條件概率的計算公式如下:

P(white|B)=P(white and B)/P(B)

我們來驗證下上述公式:

P(white and B)=球是白色且球是從B桶中取到的=1/7;P(B)=從B桶中取到球的概率=3/7;P(white|B)=P(white and B)/P(B)=(1/7)/(3/7)=1/3;為了方便起見,我們將white替換為A,條件概率可以表示為P(A|B)=P(A and B)/P(B)。

二、貝葉斯公式

知道了條件概率,現在,我們來推算貝葉斯公式:

1. 第一步

條件概率公式兩邊都乘以P(B),可以得到:

P(A and B)=P(A|B)*P(B)

這個公式表示,條件A 和 B同時發生的概率等於B條件下A事件發生的概率乘以B事件發生的概率。

2. 第二步

順序調換。假設條件A 和條件B是兩個獨立的事件,所以我們可以將上述公式順序調換,即:

P(A and B)=P(B and A)=P(B|A)*P(A)

這個公式表示,條件A 和 B同時發生的概率等於B條件下A事件發生的概率乘以B事件發生的概率。

3. 第三步

重新代入條件概率公式:

P(A|B)=P(A and B)/P(B)

代入第二步的公式:

P(A and B)=P(B|A)P(A)

可以得到:

P(A|B)=P(B|A)P(A)/P(B)

貝葉斯公式告訴我們如何交換條件概率的條件與結果,即如果已知P(B|A),要求P(A|B),那麼可以使用上述計算方法。

上述公式中,每個概率又有不同的說法:

P(A)被稱為先驗概率;P(B|A)被稱為後驗概率;P(B)被稱為全概率。

三、貝葉斯公式的應用

以下摘一段 wikipedia 上對貝葉斯的簡介:

所謂的貝葉斯方法源於他生前為解決一個「逆概」問題寫的一篇文章,而這篇文章是在他死後才由他的一位朋友發表出來的。在貝葉斯寫這篇文章之前,人們已經能夠計算「正向概率」,如「假設袋子裡面有N個白球,M個黑球,你伸手進去摸一把,摸出黑球的概率是多大」。而一個自然而然的問題是反過來:「如果我們事先並不知道袋子裡面黑白球的比例,而是閉著眼睛摸出一個(或好幾個)球,觀察這些取出來的球的顏色之後,那麼我們可以就此對袋子裡面的黑白球的比例作出什麼樣的推測」。這個問題,就是所謂的逆概問題。

貝葉斯是機器學習的核心方法之一。

這背後的深刻原因在於,現實世界本身就是不確定的,人類的觀察能力是有局限性的。

沿用剛才那個袋子裡面取球的比方,我們往往只能知道從裡面取出來的球是什麼顏色,而並不能直接看到袋子裡面實際的情況。

這個時候,我們就需要提供一個猜測(hypothesis)。所謂猜測,當然就是不確定的,但也絕對不是兩眼一抹黑瞎矇——具體地說,我們需要做兩件事情:

以病人的分類為例,某個醫院早上收了六個門診病人,如下表:

現在又來了第七個病人,是一個打噴嚏的建築工人,請問他患上感冒的概率有多大?

根據貝葉斯定理:

可得:

假定」打噴嚏」和」建築工人」這兩個特徵是獨立的,因此,上面的等式就變成了:

這是可以計算的。

因此,這個打噴嚏的建築工人,有66%的概率是得了感冒;同理,可以計算這個病人患上過敏或腦震蕩的概率,比較這幾個概率,就可以知道他最可能得什麼病。

這就是貝葉斯分類器的基本方法:在統計資料的基礎上,依據某些特徵,計算各個類別的概率,從而實現分類。

本文由 @CARRIE 原創發布於人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基於CC0協議

相關焦點

  • 「NLP」經典分類模型樸素貝葉斯解讀
    貝葉斯模型是一種生成模型,先計算聯合概率P(c,x),再通過聯合概率計算後驗概率,也就是利用如下的貝葉斯公式:OK,那聯合概率和先驗概率該怎麼計算呢?樸素貝葉斯模型就該登場了。2 樸素貝葉斯分類器我們再來仔細的分析貝葉斯公式,在有一個訓練集的情況下:1、P(c)為樣本為某個類別的概率,給定樣本及其label後容易計算2、P(x)為某個樣本(所有屬性相同)出現的概率,給定樣本後,容 易得到比較難計算的是P(x|c):其中m為樣本屬性的個數,例如預測西瓜是不是甜的模型,如果基於西瓜的花紋是否清晰
  • 基於貝葉斯定理的算法——樸素貝葉斯分類
    不過今天我們介紹的樸素貝葉斯分類器通過獨立假設簡化了概率的計算,節省了內存,可以很好地用於數據量大的情況。下面我們首先來了解這一算法的數理背景——貝葉斯定理。這一算法是由我們在概率論中學到的貝葉斯定理延伸出來的。我們知道貝葉斯公式為:其中,
  • 聚類算法簡析(一):樸素貝葉斯算法的場景案例
    本文作者通過一些場景案例,帶領大家了解一下樸素貝葉斯算法作為聚類算法中的一員,如何來區分各類數組。通過一組參數模型來區分互斥群組中的個體十分常見,我們可以使用樸素貝葉斯分析來應用於這種場景,取決於模型的相似矩陣算法常常運用在估算決策論框架的矩陣中。
  • 樸素貝葉斯詳解及中文輿情分析(附代碼實踐)
    作者|楊秀璋  整理|AI科技大本營本文主要講述樸素貝葉斯分類算法並實現中文數據集的輿情分析案例,希望這篇文章對大家有所幫助,提供些思路
  • 【華泰金工林曉明團隊】金工:人工智慧選股之樸素貝葉斯模型
    本報告對樸素貝葉斯模型及線性判別分析、二次判別分析進行系統測試  「生成模型」是機器學習中監督學習方法的一類。與「判別模型」學習決策函數和條件概率不同,生成模型主要學習的是聯合概率分布。本文中,我們從樸素貝葉斯算法入手,分析比較了幾種常見的生成模型(包括線性判別分析和二次判別分析)應用於多因子選股的異同,希望對本領域的投資者產生有實用意義的參考價值。
  • 科普丨樸素貝葉斯了解一下
    02樸素貝葉斯的一些要點分母的重要性:與其他模型(如線性回歸)相比,樸素貝葉斯對異常值的敏感度較低。這是分母的原因。不要被這個公式嚇倒。我們基本上是將單獨計算的所有特徵的概率相乘(因為假設它們相互獨立),並將其代入Bayes公式。
  • 樸素貝葉斯與文本分類
    樸素貝葉斯 (Naive Bayesian algorithm) 是一種基於概率統計的分類方法,主要用到了貝葉斯定理和特徵條件獨立性假設。樸素貝葉斯具有悠久的歷史,其算法邏輯比較簡單,有健壯的性能,通常可以用於文本分類、信用評估等方面。
  • python實現高斯樸素貝葉斯分類器
    python實現高斯樸素貝葉斯分類器    在這篇文章中,我們將使用我最喜歡的機器學習庫scikit-learn在Python中實現樸素貝葉斯分類器。接下來,我們將使用經過訓練的樸素貝葉斯(監督分類法)模型來預測人口收入。
  • 樸素貝葉斯分類器詳解及中文文本輿情分析(附代碼實踐)
    本文主要講述樸素貝葉斯分類算法並實現中文數據集的輿情分析案例,希望這篇文章對大家有所幫助,提供些思路。
  • 樸素貝葉斯(Naive Bayes)和校正曲線(Calibration Curve)
    其中樸素貝葉斯分分類是貝葉斯分類中最簡單的,也是最常見的一種分類方法。樸素貝葉斯分類算法的核心如下公式:P(A):它是先驗(Prior Probability),是A發生的概率。P(B): 是邊際可能性(Marginal Likelihood):是B發生的概率。
  • 解讀實踐中最廣泛應用的分類模型:樸素貝葉斯算法
    貝葉斯模型在機器學習以及人工智慧中都有出現,cherry 分類器使用了樸素貝葉斯模型算法,經過簡單的優化,使用 1000 個訓練數據就能得到 97.5% 的準確率。雖然現在主流的框架都帶有樸素貝葉斯模型算法,大多數開發者只需要直接調用 api 就能使用。但是在實際業務中,面對不同的數據集,必須了解算法的原理,實現以及懂得對結果進行分析,才能達到高準確率。
  • 樸素貝葉斯算法及其應用
    在這篇文章中,我們將嘗試以簡單的方式理解什麼是樸素貝葉斯,它是如何工作的以及我們如何應用樸素貝葉斯分類器將文本或評論分類為「肯定」或「否定」,我們將通過電影評論案例進行研究。什麼是樸素貝葉斯?貝葉斯定理是由Reverend Bayes開發的最早的概率推理算法之一(他過去常常嘗試推斷上帝的存在)並且對於某些用例仍然表現得非常好。
  • 樸素貝葉斯算法及應用案例
    作者:陳千鶴 來源:人工智慧學習圈本篇主要介紹樸素貝葉斯算法及應用案例。以Tatinic數據集為例進行應用,同時介紹數據處理,數據集的劃分,算法效果評估等內容。一、簡介樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法 。
  • 樸素貝葉斯實戰篇之新浪新聞分類
    這樣,我們的樸素貝葉斯分類器就改進完畢了。三、樸素貝葉斯之過濾垃圾郵件在上篇文章那個簡單的例子中,我們引入了字符串列表。使用樸素貝葉斯解決一些現實生活中的問題時,需要先從文本內容得到字符串列表,然後生成詞向量。下面這個例子中,我們將了解樸素貝葉斯的一個最著名的應用:電子郵件垃圾過濾。
  • 機器學習算法之樸素貝葉斯
    假設抽出紅球的概率為B選中容器A的概率為A則有:P(B) = 8/20,P(A) = 1/2,P(B|A) = 7/10按照公式,則有:P(A|B) = (7/10)*(1/2) / (8/20) = 0.875故得出結論:這個球來自容器A的概率是0.875三、樸素貝葉斯貝葉斯公式: P(
  • 為什麼樸素貝葉斯定理會被叫做樸素的?
    樸素貝葉斯算法是一種基於著名貝葉斯定理的分類算法。那麼讓我們先了解一下Bayes定理是怎麼說的,並為樸素貝葉斯算法定理建立自己的理解,它是如何工作的,它為什麼被稱作樸素的?貝葉斯定理在深入研究貝葉斯定理之前,我們需要了解一些術語-獨立事件和從屬事件邊際概率聯合概率條件概率獨立事件和從屬事件考慮兩個事件A和B。
  • 貝葉斯模型下
    引言上一篇文章我們主要從理論上梳理了樸素貝葉斯方法進行文本分類的基本思路。這篇文章我們主要從實踐上探討一些應用過程中的tricks,並進一步分析貝葉斯方法,最後以情緒褒貶分析和拼寫糾錯為例展示這種簡單強大的方法在自然語言處理問題上的具體應用。2. 為什麼不直接匹配關鍵詞來識別垃圾郵件?看了上一篇文章的一些同學可能會問:「何必費這麼大勁算那麼多詞的概率?
  • 樸素貝葉斯:幫助AI產品經理「小步快跑,快速迭代」
    一、樸素貝葉斯登場貝葉斯分類是一類分類算法的總稱,這類算法均以「貝葉斯定理」為基礎,以「特徵條件獨立假設」為前提。而樸素貝葉斯分類是貝葉斯分類中最常見的一種分類方法,同時它也是最經典的機器學習算法之一。在很多場景下處理問題直接又高效,因此在很多領域有著廣泛的應用,如垃圾郵件過濾、文本分類與拼寫糾錯等。
  • ...詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的實現應用...
    、邏輯回歸、樸素貝葉斯(Naive Bayes)、kNN、隨即森林,等等。樸素貝葉斯(Naive Bayes)這是一種以貝葉斯定理為基礎的分類技術,假設預測變量間相互獨立。簡單來講,樸素貝葉斯分類器假設一個分類的特性與該分類的其它特性無關。例如,如果一個水果又紅又圓,且直徑約為3英寸,那麼這個水果可能會是蘋果。即便這些特徵互相依賴,或者依賴於其他特徵的存在,樸素貝葉斯分類器還是會假設這些特徵分別獨立,暗示這個水果是蘋果。
  • 詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的...
    >本文主要圍繞常用的機器學習算法:算法覆蓋——線性回歸、邏輯回歸、樸素貝葉斯(Naive Bayes)、kNN、隨即森林,等等。樸素貝葉斯(Naive Bayes)這是一種以貝葉斯定理為基礎的分類技術,假設預測變量間相互獨立。簡單來講,樸素貝葉斯分類器假設一個分類的特性與該分類的其它特性無關。例如,如果一個水果又紅又圓,且直徑約為3英寸,那麼這個水果可能會是蘋果。即便這些特徵互相依賴,或者依賴於其他特徵的存在,樸素貝葉斯分類器還是會假設這些特徵分別獨立,暗示這個水果是蘋果。