機器學習(6)之樸素貝葉斯NB及實例
微信公眾號
關鍵字全網搜索最新排名
【機器學習演算法】:排名第一
【機器學習】:排名第二
【Python】:排名第三
【演算法】:排名第四
貝葉斯定理是以英國數學家貝葉斯命名,用來解決兩個條件概率之間的關係問題。簡單的說就是
在已知P(A|B)時如何獲得P(B|A)的概率。
樸素貝葉斯(Naive Bayes)假設特徵P(A)在特定結果P(B)下是獨立的。
1.1 簡述
貝葉斯分類是一類分類演算法的總稱,這類演算法均以貝葉斯定理為基礎,故統稱為貝葉斯分類。本文將
首先介紹貝葉斯分類演算法的基礎——貝葉斯定理;然後通過實例討論貝葉斯分類中最簡單的一種:樸素貝葉斯分類。
1.2 貝葉斯定理
每次提到貝葉斯定理,我心中的崇敬之情都油然而生,倒不是因為這個定理多高深,而是因為它特別有用。
這個定理解決了現實生活里經常遇到的問題:
已知某條件概率,如何得到兩個事件交換後的概率,也就是在已知P(A|B)的情況下如何求得P(B|A)。
條件概率表示事件B已經發生的前提下,事件A發生的概率,其基本求解公式為:
貝葉斯定理之所以有用,是因為我們在生活中經常遇到這種情況:我們
可以很容易直接得出P(A|B),P(B|A)則很難直接得出,但我們更關心P(B|A),貝葉斯定理就為我們打通從P(A|B)獲得P(B|A)的道路。
下面不加證明地直接給出
貝葉斯定理
:
1.3 分類原理和流程
樸素貝葉斯分類是一種十分簡單的分類演算法,叫它樸素貝葉斯分類是因為這種方法的思想真的很樸素,其思想基礎為:
對於給出的待分類項,求解在此項出現的條件下各個類別出現的概率,哪個最大,就認為此待分類項屬於哪個類別。
通俗來說,就好比這麼個道理,你在街上看到一個黑人,我問你你猜這哥們哪裡來的,你十有八九猜非洲。為什麼呢?因為黑人中非洲人的比率最高,當然人家也可能是美洲人或亞洲人,但在沒有其它可用信息下,我們會選擇條件概率最大的類別,這就是樸素貝葉斯的思想基礎。樸素貝葉斯分類的正式定義如下:
1、設
為一個待分類項,而每個a為x的一個特徵屬性。
2、有類別集合
。
3、計算
。
4、如果
,則
。
那麼現在的關鍵就是如何計算第3步中的各個條件概率。我們可以這麼做:
1、找到一個已知分類的待分類項集合,這個集合叫做訓練樣本集。
2、統計得到在各類別下各個特徵屬性的條件概率估計。即
3、如果各個特徵屬性是條件獨立的,則根據貝葉斯定理有如下推導:
因為分母對於所有類別為常數,因為我們只要將分子最大化皆可。又因為各特徵屬性是條件獨立的,所以有:
根據上述分析,樸素貝葉斯分類的流程可以由下圖表示:
需要考慮的問題就是當P(a|y)=0怎麼辦,當某個類別下某個特徵項劃分沒有出現時,就是產生這種現象,這會令分類器質量大大降低。
為了解決這個問題,我們
引入Laplace校準,它的思想非常簡單,就是對沒類別下所有劃分的計數加1,這樣如果訓練樣本集數量充分大時,並不會對結果產生影響,並且解決了上述頻率為0的尷尬局面。
1.4 實例:檢測SNS社區中不真實賬號
為了簡單起見,對例子中的數據做了適當的簡化。
對於SNS社區來說,不真實賬號(使用虛假身份或用戶的小號)是一個普遍存在的問題,作為SNS社區的運營商,希望可以檢測出這些不真實賬號,從而在一些運營分析報告中避免這些賬號的干擾,亦可以加強對SNS社區的了解與監管。
如果通過純人工檢測,需要耗費大量的人力,效率也十分低下,如能引入自動檢測機制,必將大大提升工作效率。
這個問題就是要將社區中所有賬號在真實賬號和不真實賬號兩個類別上進行分類,下面我們一步一步實現這個過程。
首先設
C=0表示真實賬號,C=1表示不真實賬號。
1、確定特徵屬性及劃分
這一步要找出可以幫助區分真實賬號與不真實賬號的特徵屬性,在實際應用中,特徵屬性的數量是很多的,劃分也會比較細緻,但這裡為了簡單起見,我們用少量的特徵屬性以及較粗的劃分,並對數據做了修改。
選擇三個特徵屬性:
a1:日誌數量/註冊天數,a2:好友數量/註冊天數,a3:是否使用真實頭像
。在SNS社區中這三項都是可以直接從資料庫里得到或計算出來的。下面給出劃分:
a1:{a<=0.05, 0.05<a<0.2, a>=0.2}
a1:{a<=0.1, 0.1<a<0.8, a>=0.8}
a3:{a=0(不是),a=1(是)}
2、獲取訓練樣本
使用運維人員曾經人工檢測過的1萬個賬號作為訓練樣本。
3、計算訓練樣本中每個類別的頻率
用訓練樣本中真實賬號和不真實賬號數量分別除以一萬,得到:
4、計算每個類別條件下各個特徵屬性劃分的頻率
5、使用分類器進行鑒別
下面我們使用上面訓練得到的分類器鑒別一個賬號,這個賬號使用非真實頭像,日誌數量與註冊天數的比率為0.1,好友數與註冊天數的比率為0.2。
招募 志願者
廣告、商業合作
請發郵件:357062955@qq.com
喜歡,別忘關注~
幫助你在AI領域更好的發展,期待與你相遇!
※這家AI公司,要用機器學習建成Facebook類的知識平台
※Google App再度改版,利用機器學習推送個性化Feed服務
※通過一個 Kaggle 實例學習解決機器學習問題
※谷歌PAIR新進展:Facets開源,有助於機器學習數據分析
※GitHub上最流行的28個開源機器學習項目
TAG:機器學習 |
※吳鶴意:NLP機器學習模型安全性及實踐
※亞馬遜CTO 沃納·威格爾:談AWS的現代化架構與機器學習
※機器學習實踐-DGA檢測
※人工智慧:蘋果發布機器學習API
※斯坦福AI實驗室CVPR成果:機器人導航平台Gibson Env,1:1模擬真實環境
※數據科學、機器學習和AI的區別
※2018 OKKID上海自然博物館-機器人博物館-復旦同濟大學-外灘-蘇州園林-探索智慧之旅
※NLP、機器學習在CRM前沿探索和實踐
※Spark機器學習庫之線性回歸
※學習筆記:人工智慧基礎-機器學習(一)
※資料 | Google發布機器學習術語表 (中英對照)
※強化機器學習性能,Arm 發布 Mali-G52 GPU
※NYU陳溪博士:運籌學與機器學習的融合交叉
※AI:亞馬遜、微軟、谷歌機器學習服務平台比較
※機器學習之於IOT淺見
※赫爾辛基大學AI基礎教程:機器學習的類型
※科沃斯機器人亮相AWE 並發布Smart Eye視覺導航技術
※機器學習頂會 ICML 2018 斯德哥爾摩開幕,公平性研究戴上光環
※谷歌發布機器學習規則 (Rules of Machine Learning):關於機器學習工程的最佳實踐(上)
※機器學習模型的無代碼探索,谷歌發布What-If 工具