Python · 樸素貝葉斯(零)· 簡介

(這裡是最終成品的 GitHub 地址)

樸素貝葉斯的數學理論方面已經花了三章來講了:

  • 數學 · 樸素貝葉斯(零)· 貝葉斯決策論
  • 數學 · 樸素貝葉斯(一)· 參數估計

  • 數學 · 樸素貝葉斯(二*)· 推導和推廣

如果之前對樸素貝葉斯完全陌生的話,個人的建議是把(零)分割線前的演算法看懂、然後再來看本章及以後的相關實現,否則可能會有些懵 ( σω)σ

先說一個大概的思路:

  • 離散型樸素貝葉斯的實現圍繞著 Numpy 中的 bincount 方法展開
  • 連續型樸素貝葉斯的關鍵在於極大似然估計
  • 混合型樸素貝葉斯則是以上兩者的各種結合

作為第零章,我們先來看看它能幹什麼。本來要說的話、樸素貝葉斯是很難讓人直觀地看出來它幹了什麼的;不過聰明而機智的我(並不!)想出了一個方法:把中間產生的那些條件概率可視化出來不就可以矇混過關了!(喂

於是我們的樸素貝葉斯模型可以生成類似於這樣的圖:

(注意:這些圖是分開生成的,是我用畫圖軟體【很!辛!苦!地!(並!不!)】把它們拼在一起的 ( σω)σ)

以上 16 張圖(離散型特徵 9 張、連續型特徵 7 張)對應著一個有 16 個特徵的、UCI 上的「銀行業務數據集」,完整的原始數據集可以參見這裡

然後我們實現的樸素貝葉斯模型的最大特點就是:無需對數據進行太多預處理。還是以銀行業務數據集為例,它每個樣本大概長下面這樣:

58, management, married, tertiary, no, 2143, yes, no, unknown, 5, may, 261, 1, -1, 0, unknown

我們可以直接把它輸進模型而無需做其它多餘的工作。當然、這是建立在我們自己寫一套數值化數據的方法的基礎上的,關於這個數值化數據的實現會放在這裡

下一章我們會先介紹怎麼搭好樸素貝葉斯的框架,然後再在後面的章節介紹怎樣在這個框架上拓展出三種樸素貝葉斯模型(離散、連續、混合)

希望觀眾老爺們能夠喜歡~

(猛戳我進入下一章! ( σω)σ )

推薦閱讀:

Python數據分析及可視化實例之正則Re
數據分析項目--如何選擇你的航班
我也來推薦一波Python書單
為什麼選擇Python
Python面試指南

TAG:Python | 机器学习 | 贝叶斯分类 |