科普丨樸素貝葉斯了解一下

2021-01-11 中原動力智慧機器人

要理解樸素貝葉斯,我們首先需要了解貝葉斯推斷。貝葉斯推斷是一種用貝葉斯定理來迭代假設概率的方法。貝葉斯定理是在掌握與相關事件的先決信息下,計算該事件的概率。

假設你想計算星期天下午5點得到一個停車位的概率。那麼你如何計算這一事件的概率呢?是的,貝葉斯定理!

數學上貝葉斯定理寫為:

這裡"B"是一個條件,"A"是一個事件。在上面的例子"B"可以是"星期日"或"下午5點",因為這是影響結果「A」的兩個條件:您是否會得到停車位。但是,如果您想要同時考慮這兩個條件,那又會怎麼樣呢?這就是貝葉斯定理出現問題的地方。為了在同時考慮這兩個條件時利用貝葉斯定理,我們必須做出一個假設。

假設:我所有的條件都應該是"有條件的而且獨立的"。

我特別提到有條件的獨立而不是相互獨立一詞, 因為有區別。條件獨立性意味著結果值(無論您是否獲得停車位)應解釋條件之間的所有依賴性。例如:周日獲得停車位,下午5點獲得停車位並不是相互獨立的。一個情況可能導致其他情況。如果是星期天, 下午5點停車的機會可能會減少。但是,如果我檢查條件獨立性, 兩個功能依賴性是由結果屬性, 即獲得一個停車位解釋。因此,我可以說,兩者都是有條件的獨立的。

樸素貝葉斯用貝葉斯定理來預測結果值,該值同時依賴於多個要素,因此必須遵循上述假設。這就是為什麼它被稱為樸素!

01樸素貝葉斯的實際應用

在幾乎所有的現實世界中,大多數特徵都是相互依賴的。這將使樸素貝葉斯在現實生活中幾乎不可能實現。那麼它在哪裡使用呢?您可能聽說過文檔檢索系統、基於文本的情感分類器等任務是使用樸素貝葉斯算法的最佳應用場景。但為什麼?這是因為我們從文檔中提取的大多數單詞是相互獨立的。而且,樸素貝葉斯的工作很快,即使有很多功能和基於文本的分類器,你可以輕鬆獲得超過40000–50000個獨特的單詞,這意味著40k-50k的特徵!樸素貝葉斯如同閃電般快速的原因是它只計算概率,計算成本低廉。

02樸素貝葉斯的一些要點

分母的重要性:與其他模型(如線性回歸)相比,樸素貝葉斯對異常值的敏感度較低。這是分母的原因。

不要被這個公式嚇倒。我們基本上是將單獨計算的所有特徵的概率相乘(因為假設它們相互獨立),並將其代入Bayes公式。如果我們仔細觀察,這個公式的分母總是保持不變的。儘管分母不是影響該方程輸出的直接責任(因為它對所有特性都是相同的),但在計算過程中保留分母仍然被認為是一種良好的做法。分母基本上幫助離群值看起來更像非離群值。

樸素貝葉斯可生成模型:那裡基於邊界的模型可以分為生成型和判別型兩種。

判別模型只是在不同的結果之間劃出一條線。它不受功能的每個細節的影響。它只需要找到一系列的模式來幫助它區分這兩種結果。而生成模型有一個更詳細的方法。它研究每一個關於特性的細節來創建結果類。

零頻問題/拉普拉斯平滑處理:大多數樸素貝葉斯的常見問題是零頻率問題。讓我們舉個例子來理解這一點。假設我們的訓練數據總是表明,每當使用「review」這個詞時,它就是一封垃圾郵件。現在假設我收到一封來自Amazon的郵件,上面說「從另一個地方登錄,回查一下這個活動記錄」。現在根據我們的模式,這封郵件將被標記為垃圾郵件。這裡的問題是我的訓練數據沒有這樣的郵件「review」被標記為非垃圾郵件。這被稱為零頻率問題。由於不可能對每個特徵都有平衡的數據集,所以我們需要使用其他解決方案。一個解決方案是引入一個非常小的常數參數,稱為拉普拉斯平滑。拉普拉斯平滑從不允許0概率。它總是增加一個小的變量。這是scikit learn中名為alpha的超參數,可以調整。雖然這個問題的最佳解決方案是平衡我們的訓練數據。

樸素貝葉斯可以處理失蹤數據:在使用樸素貝葉斯時不用刪除丟失的值。樸素貝葉斯在處理丟失的數據時非常智慧。它不試圖預測缺失點的值,它只是跳過它!輸出類由特定數據點的特徵的剩餘值確定。這是樸素貝葉斯最獨特的一點。

03Scikit-Learn庫中樸素貝葉斯的類型

高斯樸素貝葉斯

計算概率時遵循數據的高斯分布。適用於一般的分類任務。

多項式樸素貝葉斯

概率是用多項式分布計算的。你可能聽說過二項分布。多項式只是二項式的延伸。它在基於文本的分類器(如文檔檢索)中運行良好。

互補樸素貝葉斯

與多項式相反。多項式樸素貝葉斯尤其是在基於文本的分類器中被認為能產生更好的效果。

伯努利樸素貝葉斯

所有輸入功能都應該是0或1。也就是說它只解釋二進位數據。如果使用普通數據,算法首先將其轉換為二進位數據。可用於基於文本的分類器,其中輸入特徵由0或1表示(即無論文檔中是否存在單詞)。

類樸素貝葉斯

所有的輸入特徵都應該按類別分布。如果給定連續特徵,則首先使用分位數或其他技術將其劃分為類別。適用於大多數分類特徵都存在的數據。

04結論

我希望這篇文章能夠為你提供一些你可能瞟一眼就漏掉的關於樸素貝葉斯的啟發。如果你喜歡這篇文章,我建議你多讀一些這方面的研究文獻。有許多研究論文,提供了一個全新的視角。樸素貝葉斯有時被證明是非常有效的,即使使用了相關聯的特性,這是非常令人驚訝的。

相關焦點

  • 為什麼樸素貝葉斯定理會被叫做樸素的?
    樸素貝葉斯算法是一種基於著名貝葉斯定理的分類算法。那麼讓我們先了解一下Bayes定理是怎麼說的,並為樸素貝葉斯算法定理建立自己的理解,它是如何工作的,它為什麼被稱作樸素的?貝葉斯定理在深入研究貝葉斯定理之前,我們需要了解一些術語-獨立事件和從屬事件邊際概率聯合概率條件概率獨立事件和從屬事件考慮兩個事件A和B。
  • 樸素貝葉斯與文本分類
    樸素貝葉斯 (Naive Bayesian algorithm) 是一種基於概率統計的分類方法,主要用到了貝葉斯定理和特徵條件獨立性假設。樸素貝葉斯具有悠久的歷史,其算法邏輯比較簡單,有健壯的性能,通常可以用於文本分類、信用評估等方面。
  • 基於貝葉斯定理的算法——樸素貝葉斯分類
    不過今天我們介紹的樸素貝葉斯分類器通過獨立假設簡化了概率的計算,節省了內存,可以很好地用於數據量大的情況。下面我們首先來了解這一算法的數理背景——貝葉斯定理。這一算法是由我們在概率論中學到的貝葉斯定理延伸出來的。我們知道貝葉斯公式為:其中,
  • 樸素貝葉斯實戰篇之新浪新聞分類
    這樣,我們的樸素貝葉斯分類器就改進完畢了。三、樸素貝葉斯之過濾垃圾郵件在上篇文章那個簡單的例子中,我們引入了字符串列表。使用樸素貝葉斯解決一些現實生活中的問題時,需要先從文本內容得到字符串列表,然後生成詞向量。下面這個例子中,我們將了解樸素貝葉斯的一個最著名的應用:電子郵件垃圾過濾。
  • 機器學習算法之樸素貝葉斯
    一、貝葉斯定理貝葉斯定理由英國數學家貝葉斯(Thomas Bayes 1702-1761)發展用來描述兩個條件概率之間的關係在B條件下A發生的概率: P(A∣B)=P(AB)/P(B)在A條件下B發生的概率: P(B∣A)=P(AB)/P
  • 聚類算法簡析(一):樸素貝葉斯算法的場景案例
    本文作者通過一些場景案例,帶領大家了解一下樸素貝葉斯算法作為聚類算法中的一員,如何來區分各類數組。通過一組參數模型來區分互斥群組中的個體十分常見,我們可以使用樸素貝葉斯分析來應用於這種場景,取決於模型的相似矩陣算法常常運用在估算決策論框架的矩陣中。
  • python實現高斯樸素貝葉斯分類器
    python實現高斯樸素貝葉斯分類器    在這篇文章中,我們將使用我最喜歡的機器學習庫scikit-learn在Python中實現樸素貝葉斯分類器。接下來,我們將使用經過訓練的樸素貝葉斯(監督分類法)模型來預測人口收入。
  • 樸素貝葉斯算法及其應用
    在這篇文章中,我們將嘗試以簡單的方式理解什麼是樸素貝葉斯,它是如何工作的以及我們如何應用樸素貝葉斯分類器將文本或評論分類為「肯定」或「否定」,我們將通過電影評論案例進行研究。什麼是樸素貝葉斯?貝葉斯定理是由Reverend Bayes開發的最早的概率推理算法之一(他過去常常嘗試推斷上帝的存在)並且對於某些用例仍然表現得非常好。
  • 「NLP」經典分類模型樸素貝葉斯解讀
    貝葉斯模型是一種生成模型,先計算聯合概率P(c,x),再通過聯合概率計算後驗概率,也就是利用如下的貝葉斯公式:OK,那聯合概率和先驗概率該怎麼計算呢?樸素貝葉斯模型就該登場了。在樸素貝葉斯模型中,有一個樣本屬性條件獨立性假設,即:這樣貝葉斯公式就變成了:那麼,樸素貝葉斯模型得公式就調整為:對於所有類別來說,P(x)相同,所以上式可以簡化為:好了,這就是樸素貝葉斯模型基礎理論的所有內容了。到這裡,反應快的同學就會說:「你說了這麼多原理和公式,那麼這個模型到底是怎麼訓練和預測的呢?」
  • 樸素貝葉斯(Naive Bayes)和校正曲線(Calibration Curve)
    其中樸素貝葉斯分分類是貝葉斯分類中最簡單的,也是最常見的一種分類方法。樸素貝葉斯分類算法的核心如下公式:P(A):它是先驗(Prior Probability),是A發生的概率。P(B): 是邊際可能性(Marginal Likelihood):是B發生的概率。
  • 樸素貝葉斯詳解及中文輿情分析(附代碼實踐)
    同時,推薦大家閱讀我以前的文章了解基礎知識。▌一.:GaussianNB(高斯樸素貝葉斯)MultinomialNB(多項式樸素貝葉斯)BernoulliNB(伯努利樸素貝葉斯)1.高斯樸素貝葉斯調用方法為:sklearn.naive_bayes.GaussianNB(priors
  • C#與人工智慧(第4講)創建樸素貝葉斯分類器
    今天,我給大家帶來C#與人工智慧的第4講——創建樸素貝葉斯分類器。#人工智慧#本文先實現一個簡單的貝葉斯分類器,輸入二進位,判斷0-7。後續文章會講述它的高級應用——貝葉斯推理機。C#與人工智慧(第3講)創建神經網絡C#與人工智慧(第2講)創建WinForm程序C#與人工智慧(第1講)安裝C#編程環境託馬斯·貝葉斯是18世紀英國數學家,概率論、貝葉斯統計的創立者。貝葉斯方法基於貝葉斯原理,對樣本數據集進行分類。它綜合了先驗概率、後驗概率,避免僅用先驗概率產生的主觀偏見。
  • 樸素貝葉斯分類器詳解及中文文本輿情分析(附代碼實踐)
    同時,推薦大家閱讀我以前的文章了解基礎知識。▌一.:GaussianNB(高斯樸素貝葉斯)MultinomialNB(多項式樸素貝葉斯)BernoulliNB(伯努利樸素貝葉斯)1.高斯樸素貝葉斯調用方法為:sklearn.naive_bayes.GaussianNB(priors
  • 【華泰金工林曉明團隊】金工:人工智慧選股之樸素貝葉斯模型
    本報告對樸素貝葉斯模型及線性判別分析、二次判別分析進行系統測試  「生成模型」是機器學習中監督學習方法的一類。本文中,我們從樸素貝葉斯算法入手,分析比較了幾種常見的生成模型(包括線性判別分析和二次判別分析)應用於多因子選股的異同,希望對本領域的投資者產生有實用意義的參考價值。  樸素貝葉斯模型構建細節:月頻滾動訓練,結合基於時間序列的交叉驗證  樸素貝葉斯模型的構建包括特徵和標籤提取、特徵預處理、訓練集合成和滾動訓練等步驟。
  • 樸素貝葉斯:幫助AI產品經理「小步快跑,快速迭代」
    一、樸素貝葉斯登場貝葉斯分類是一類分類算法的總稱,這類算法均以「貝葉斯定理」為基礎,以「特徵條件獨立假設」為前提。而樸素貝葉斯分類是貝葉斯分類中最常見的一種分類方法,同時它也是最經典的機器學習算法之一。在很多場景下處理問題直接又高效,因此在很多領域有著廣泛的應用,如垃圾郵件過濾、文本分類與拼寫糾錯等。
  • 樸素貝葉斯算法及應用案例
    作者:陳千鶴 來源:人工智慧學習圈本篇主要介紹樸素貝葉斯算法及應用案例。以Tatinic數據集為例進行應用,同時介紹數據處理,數據集的劃分,算法效果評估等內容。一、簡介樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法 。
  • ...詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的實現應用...
    樸素貝葉斯(Naive Bayes)6. K最近鄰(kNN)7. K均值算法(K-Means)8. 隨機森林(Random Forest)9. 降維算法(Dimensionality Reduction Algorithms)10.
  • 數據分析經典模型——樸素貝葉斯
    編輯導語:做過數據分析的人,想必對貝葉斯模型都不會陌生。貝葉斯預測模型是運用貝葉斯統計進行的一種預測,不同於一般的統計方法,其不僅利用模型信息和數據信息,而且充分利用先驗信息。通過實證分析的方法,將貝葉斯預測模型與普通回歸預測模型的預測結果進行比較,結果表明貝葉斯預測模型具有明顯的優越性。
  • 詳解線性回歸、樸素貝葉斯、隨機森林在R和Python中的...
    樸素貝葉斯(Naive Bayes)6. K最近鄰(kNN)7. K均值算法(K-Means)8. 隨機森林(Random Forest)9.樸素貝葉斯(Naive Bayes)這是一種以貝葉斯定理為基礎的分類技術,假設預測變量間相互獨立。簡單來講,樸素貝葉斯分類器假設一個分類的特性與該分類的其它特性無關。例如,如果一個水果又紅又圓,且直徑約為3英寸,那麼這個水果可能會是蘋果。即便這些特徵互相依賴,或者依賴於其他特徵的存在,樸素貝葉斯分類器還是會假設這些特徵分別獨立,暗示這個水果是蘋果。
  • 貝葉斯模型下
    小補充一下,對於火星文、同音字等替代語言,一般的分詞技術可能會分得不準,最終可能只把一個一個字給分出來,成為「分字」。當然也可以用過n-gram之類的語言模型(後續博客馬上提到,盡請關注),拿到最常見短語。對於英文等天生自帶空格來間隔單詞的語言,分詞則不是什麼問題,使用樸素貝葉斯方法將會更加順暢。