資料探勘領域十大經典演算法之—樸素貝葉斯演算法(附程式碼)
NaïveBayes演算法,又叫樸素貝葉斯演算法,樸素:特徵條件獨立;貝葉斯:基於貝葉斯定理。屬於監督學習的生成模型,實現簡單,沒有迭代,並有堅實的數學理論(即貝葉斯定理)作為支撐。
簡介
NaïveBayes演算法,又叫樸素貝葉斯演算法,樸素:特徵條件獨立;貝葉斯:基於貝葉斯定理。屬於監督學習的生成模型,實現簡單,沒有迭代,並有堅實的數學理論(即貝葉斯定理)作為支撐。在大量樣本下會有較好的表現,不適用於輸入向量的特徵條件有關聯的場景。
基本思想
(1)病人分類的例子
某個醫院早上收了六個門診病人,如下表:
現在又來了第七個病人,是一個打噴嚏的建築工人。請問他患上感冒的概率有多大?
根據貝葉斯定理:
因此,這個打噴嚏的建築工人,有66%的概率是得了感冒。同理,可以計算這個病人患上過敏或腦震盪的概率。比較這幾個概率,就可以知道他最可能得什麼病。
這就是貝葉斯分類器的基本方法:在統計資料的基礎上,依據某些特徵,計算各個類別的概率,從而實現分類。
(2)樸素貝葉斯分類器的公式
假設某個體有n項特徵(Feature),分別為F1、F2、…、Fn。現有m個類別(Category),分別為C1、C2、…、Cm。貝葉斯分類器就是計算出概率最大的那個分類,也就是求下面這個算式的最大值:
由於 P(F1F2…Fn) 對於所有的類別都是相同的,可以省略,問題就變成了求
的最大值。
樸素貝葉斯分類器則是更進一步,假設所有特徵都彼此獨立,因此
上式等號右邊的每一項,都可以從統計資料中得到,由此就可以計算出每個類別對應的概率,從而找出最大概率的那個類。
雖然”所有特徵彼此獨立”這個假設,在現實中不太可能成立,但是它可以大大簡化計算,而且有研究表明對分類結果的準確性影響不大。
(3)拉普拉斯平滑(Laplace smoothing)
也就是引數為1時的貝葉斯估計,當某個分量在總樣本某個分類中(觀察樣本庫/訓練集)從沒出現過,會導致整個例項的計算結果為0。為了解決這個問題,使用拉普拉斯平滑/加1平滑進行處理。
它的思想非常簡單,就是對先驗概率的分子(劃分的計數)加1,分母加上類別數;對條件概率分子加1,分母加上對應特徵的可能取值數量。這樣在解決零概率問題的同時,也保證了概率和依然為1。
eg:假設在文字分類中,有3個類,C1、C2、C3,在指定的訓練樣本中,某個詞語F1,在各個類中觀測計數分別為=0,990,10,即概率為P(F1/C1)=0,P(F1/C2)=0.99,P(F1/C3)=0.01,對這三個量使用拉普拉斯平滑的計算方法如下:
1/1003 = 0.001,991/1003=0.988,11/1003=0.011
實際應用場景
• 文字分類
• 垃圾郵件過濾
• 病人分類
• 拼寫檢查
樸素貝葉斯模型
樸素貝葉斯常用的三個模型有:
• 高斯模型:處理特徵是連續型變數的情況
• 多項式模型:最常見,要求特徵是離散資料
• 伯努利模型:要求特徵是離散的,且為布林型別,即true和false,或者1和0
程式碼實現
基於多項式模型的樸素貝葉斯演算法(在github獲取)
測試資料集為MNIST資料集,獲取地址train.csv
執行結果
我這裡為大家準備了一些學習資料,大家覺得對自己有幫助的可以加我QQ:3300863615 免費領取哦
相關文章
- 機器學習經典演算法之樸素貝葉斯分類機器學習演算法
- 樸素貝葉斯演算法演算法
- [機器學習&資料探勘]樸素貝葉斯數學原理機器學習
- 資料探勘(8):樸素貝葉斯分類演算法原理與實踐演算法
- 分類演算法-樸素貝葉斯演算法
- 04_樸素貝葉斯演算法演算法
- 【資料探勘】樸素貝葉斯演算法計算ROC曲線的面積演算法
- 樸素貝葉斯演算法原理小結演算法
- chapter6:概率及樸素貝葉斯--樸素貝葉斯APT
- 機器學習|樸素貝葉斯演算法(二)-用sklearn實踐貝葉斯機器學習演算法
- 機器學習筆記之樸素貝葉斯分類演算法機器學習筆記演算法
- 機器學習|樸素貝葉斯演算法(一)-貝葉斯簡介及應用機器學習演算法
- 樸素貝葉斯模型模型
- 機器學習演算法(二): 樸素貝葉斯(Naive Bayes)機器學習演算法AI
- Machine Learning-樸素貝葉斯演算法Mac演算法
- 基於樸素貝葉斯的定位演算法演算法
- 資料探勘從入門到放棄(三):樸素貝葉斯
- 機器學習之樸素貝葉斯分類機器學習
- Python機器學習筆記:樸素貝葉斯演算法Python機器學習筆記演算法
- 樸素貝葉斯演算法的實現與推理演算法
- Python機器學習 — 樸素貝葉斯演算法(Naive Bayes)Python機器學習演算法AI
- 樸素貝葉斯演算法的python實現演算法Python
- 樸素貝葉斯法初探
- 監督學習之樸素貝葉斯
- 簡單易懂的樸素貝葉斯分類演算法演算法
- 樸素貝葉斯分類演算法(Naive Bayesian classification)演算法AI
- 樸素貝葉斯和半樸素貝葉斯(AODE)分類器Python實現Python
- 演算法金 | AI 基石,無處不在的樸素貝葉斯演算法演算法AI
- 機器學習Sklearn系列:(四)樸素貝葉斯機器學習
- 樸素貝葉斯/SVM文字分類文字分類
- 機器學習實戰(三)--樸素貝葉斯機器學習
- 抽象的藝術-樸素貝葉斯抽象
- 樸素貝葉斯演算法的python實現 -- 機器學習實戰演算法Python機器學習
- 《統計學習方法》——樸素貝葉斯程式碼實現
- 第五篇:樸素貝葉斯分類演算法原理分析與程式碼實現演算法
- 樸素貝葉斯實現文件分類
- 演算法雜貨鋪:分類演算法之樸素貝葉斯分類(Naive Bayesian classification)演算法AI
- 資料探勘十大經典演算法演算法