機器學習——貝葉斯演算法
一、貝葉斯公式
1.1 概率:
1.2 拉普拉斯平滑
拉普拉斯平滑為了解決零概率的問題,法國數學家拉普拉斯最早提出用加1的方法估計 沒有出現過的現象的概率,所以加法平滑也叫做拉普拉斯平滑。 假定訓練樣本很大時,每個分量x的計數加1造成的估計概率變化可以忽略不計, 但可以方便有效的避免零概率問題。
公式:P(y_k|x) =P(y_k) * ∏P(x_i|y_k)上述是一個多項乘法公式,其中有一項數值為0,則整個公式就為0,顯然不合理, 避免每一項為零的做法: 在分子+1、分母上加N樣本種類(分子加k,分母加kN)
P(y) = \frac{(|D_y| + 1)}{(|D| + N)}例如:一個班級: 男生(短頭髮)= 20 個 男生(長頭髮)= 0 個 女生(短頭髮)= 15 個 女生(長頭髮)= 20 個 拉普拉斯平滑概率後 : 男生(短頭髮)概率 = (20+1)/(55+4) = 21/59 男生(長頭髮)概率 = (0+1)/(55+4) = 1/59 女生(短頭髮)概率 = (15+1)/(55+4) = 16/59 女生(長頭髮)概率 = (20+1)/(55+4) = 21/59
二、朴樹貝葉斯分類原理
2.1朴樹貝葉斯
基本流程: 確定特徵屬性--> 獲取訓練樣本--> 對每個樣本計算P(Ci) --> 對每個特徵屬性 計算所有劃分的條件概率P(X1,X1,,,Xn|Ci) --> 對每個類別計算P(X|Ci)*P(Ci)--> 以P(x|yi)P(yi)最大項作為x所屬類別
2.2 半樸素基貝本葉流斯程分類器
在樸素的分類中,我們假定了各個屬性之間的獨立,這是為了計算方便。 雖然樸素貝葉斯的分類效果不錯,但是屬性之間畢竟是有關聯的,某個屬性依賴於另外的屬性, 於是就有了半樸素貝葉斯分類器:
P(c|x) \propto P(c)\prod_{i=1}^{d}P(x_i|c,pa_i)在正式進行計算的時候,將另外一個依賴的屬性加進去,計算量不會複雜太多, 由於是基於“計數”,所以基本和樸素的計算方式類似。
訓練資料集
# 大小 顏色 形狀 標籤 1 小 青色 非規則 否 2 大 紅色 非規則 是 3 大 紅色 圓形 是 4 大 青色 圓形 否 5 大 青色 非規則 否 6 小 紅色 圓形 是 7 大 青色 非規則 否 8 小 紅色 非規則 否 9 小 青色 圓形 否 10 大 紅色 圓形 是 屬性的依賴關係定義如下: 大小的依賴屬性為:形狀,且屬性取值為大時依賴形狀為圓形; 顏色不存在依賴屬性; 形狀的依賴屬性為大小,且屬性取值為圓形時依賴大小為大; 則先驗概率 P(c) : P(c = 好果)= (4+1) / (10+2) = 5/12 P(c = 一般) = (6+1) / (10+2) = 7/12 帶有依賴屬性的類條件概率: P(大小=大 | c=好果,形狀=圓形) = (2+1)/(3+2) = 3/5 P(顏色=青色 | c=好果) = (0+1)/(4+2) = 1/6 P(形狀=圓形 | c=好果,大小=大) = (2+1) / (3+2) = 3/5 P(大小=大 | c=一般,形狀=圓形) = (1+1) /( 2+2) = 2/4 P(顏色=青色 | c=一般) = (5+1)/(6+2) = 6/8 P(形狀=圓形 | c=一般,大小=大) = (1+1)/(3+2) = 2/5 P(c=好果) * P(大小=大 | c=好果,形狀=圓形) * P(顏色=青色 | c=好果) * P(形狀=圓形 | c=好果,大小=大) = 5/12 * 3/5 * 1/6 * 3/5 = 0.025 P(c=一般) * P(大小=大 | c=一般,形狀=圓形) * P(顏色=紅色 | c=一般) * P(形狀=圓形 | c=一般,大小=大) = 7/12 * 2/4 * 6/8 * 2/5= 0.0875
三、程式碼演示
sklearn.naive_bayes
提供了3個不同朴樹貝葉斯演算法
P(C_i|X_1,X_2,...X_n) = \frac{P(X_1,X_2,...X_n|C_i)*P(C_i)}{P(X_1,X_2,...X_n)}
sklearn.naive_bayes.GaussianNB 高斯分佈 #連續性
sklearn.naive_bayes.MutinomialNB 多項分佈 #多項分佈-發生頻次
sklearn.naive_bayes.BernoulliNB 伯努利分佈 #伯努利分佈-(0,1)分佈
四、總結
應用場景:
文字分析(朴樹貝葉斯應用最廣泛的領域)
文字分類
垃圾郵件識別
文字情感判別
多分類場景
相關文章
- 【機器學習】--貝葉斯網路機器學習
- Python機器學習 — 樸素貝葉斯演算法(Naive Bayes)Python機器學習演算法AI
- Python機器學習筆記:樸素貝葉斯演算法Python機器學習筆記演算法
- 機器學習演算法(二): 樸素貝葉斯(Naive Bayes)機器學習演算法AI
- 機器學習演算法筆記之4:貝葉斯分類器機器學習演算法筆記
- 機器學習之樸素貝葉斯分類機器學習
- 機器學習Sklearn系列:(四)樸素貝葉斯機器學習
- 機器學習經典演算法之樸素貝葉斯分類機器學習演算法
- 機器學習讀書筆記:貝葉斯分類器機器學習筆記
- 機器學習系列文章:貝葉斯決策理論機器學習
- 04貝葉斯演算法-貝葉斯網路演算法
- 機器學習中的MLE、MAP和貝葉斯估計機器學習
- 100天搞定機器學習|Day15 樸素貝葉斯機器學習
- 人工智慧之機器學習基礎——貝葉斯(Bayesian Methods)人工智慧機器學習
- 貝葉斯深度學習簡介深度學習
- 機器學習中貝葉斯建模和機率程式設計簡介機器學習程式設計
- 一文讀懂機器學習中的貝葉斯統計學機器學習
- 機器學習之紅樓夢作者判斷(貝葉斯分類)機器學習
- 貝葉斯深度學習(bayesian deep learning)深度學習
- 【資料科學系統學習】機器學習演算法 # 西瓜書學習記錄 [6] 樸素貝葉斯實踐資料科學機器學習演算法
- 機器學習(三):樸素貝葉斯+貝葉斯估計+BP人工神經網路習題手算|手工推導與習題計算機器學習神經網路
- 監督學習之樸素貝葉斯
- 樸素貝葉斯演算法演算法
- 天真貝葉斯學習機 | TiDB Hackathon 優秀專案分享TiDB
- 有監督學習——支援向量機、樸素貝葉斯分類
- 當貝葉斯,奧卡姆和夏農一起來定義機器學習機器學習
- 深度學習中的貝葉斯統計簡介深度學習
- 用tensorflow學習貝葉斯個性化排序(BPR)排序
- 模式識別學習筆記——貝葉斯決策模式筆記
- 貝葉斯定理
- 貝葉斯公式公式
- 分類演算法-樸素貝葉斯演算法
- 04_樸素貝葉斯演算法演算法
- 樸素貝葉斯和半樸素貝葉斯(AODE)分類器Python實現Python
- 模式識別與機器學習筆記專欄之貝葉斯分類決策(一)模式機器學習筆記
- 【機器學習基礎】樸素貝葉斯對B站彈幕分類(是否永久封禁)機器學習
- 變分貝葉斯自編碼器
- 全機率公式與貝葉斯公式公式