熱線電話:13121318867

登錄
首頁大數據時代樸素貝葉斯模型
樸素貝葉斯模型
2022-10-19
收藏

條件概率是樸素貝葉斯模型的基礎。

假設,你的xx公司正在面臨著用戶流失的壓力。雖然,你能計算用戶整體流失的概率(流失用戶數/用戶總數)。但這個數字并沒有多大意義,因為資源是有限的,利用這個數字你只能撒胡椒面似的把錢撒在所有用戶上,顯然不經濟。你非常想根據用戶的某種行為,精確地估計一個用戶流失的概率,若這個概率超過某個閥值,再觸發用戶挽留機制。這樣能把錢花到最需要花的地方。

你搜遍腦子里的數據分析方法,終于,一個250年前的人名在腦中閃現。就是“貝葉斯Bayes”。你取得了近一個月的流失用戶數、流失用戶中未讀消息大于5條的人數、近一個月的活躍用戶數及活躍用戶中未讀消息大于5條的人數。在此基礎上,你獲得了一個“一旦用戶未讀消息大于5條,他流失的概率高達%”的精確結論。怎么實現這個計算呢?先別著急,為了解釋清楚貝葉斯模型,我們先定義一些名詞。

  • 概率(Probability)——0和1之間的一個數字,表示一個特定結果發生的可能性。比如投資硬幣,“正面朝上”這個特定結果發生的可能性為0.5,這個0.5就是概率。換一種說法,計算樣本數據中出現該結果次數的百分比。即你投一百次硬幣,正面朝上的次數基本上是50次。
  • 幾率(Odds)——某一特定結果發生與不發生的概率比。如果你明天電梯上遇上你暗戀的女孩的概率是0.1,那么遇不上她的概率就是0.9,那么遇上暗戀女孩的幾率就是1/9,幾率的取值范圍是0到無窮大。
  • 似然(Likelihood)——兩個相關的條件概率之比,即給定B發生的情況下,某一特定結果A發生的概率和給定B不發生的情況下A發生的概率之比。另一種表達方式是,給定B的情況下A發生的幾率和A的整體幾率之比。兩個計算方式是等價的。

Clipboard Image.png

因為上面在似然當中提到了條件概率,那么我們有必要將什么是條件概率做更詳盡的闡述。

如上面的韋恩圖,我們用矩形表示一個樣本空間,代表隨機事件發生的一切可能結果。的在統計學中,我們用符號P表示概率,A事件發生的概率表示為P(A)。兩個事件間的概率表達實際上相當繁瑣,我們只介紹本書中用得著的關系:

  1. A事件與B事件同時發生的概率表示為P(A∩B),或簡寫為P(AB)即兩個圓圈重疊的部分。
  2. A不發生的概率為1-P(A),寫為P(~A),即矩形中除了圓圈A以外的其他部分。
  3. A或者B至少有一個發生的概率表示為P(A∪B),即圓圈A與圓圈B共同覆蓋的區域。
  4. 在B事件發生的基礎上發生A的概率表示為P(A|B),這便是我們前文所提到的條件概率,圖形上它有AB重合的面積比上B的面積。

回到我們的例子。以P(A)代表用戶流失的概率,P(B)代表用戶有5條以上未讀信息的概率,P(B|A)代表用戶流失的前提下未讀信息大于5條的概率。我們要求未讀信息大于5條的用戶流失的概率,即P(A|B),貝葉斯公式告訴我們:

P(A|B)=P(AB)/P(B)

              =P(B|A)*P(A)/P(B)

從公式中可知,如果要計算B條件下A發生的概率,只需要計算出后面等式的三個部分,B事件的概率(P(B)),是B的先驗概率、A屬于某類的概率(P(A)),是A的先驗概率、以及已知A的某個分類下,事件B的概率(P(B|A)),是后驗概率。

如果要確定某個樣本歸屬于哪一類,則需要計算出歸屬不同類的概率,再從中挑選出最大的概率

我們把上面的貝葉斯公式寫出這樣,也許你能更好的理解:

MAX(P(Ai|B))=MAX(P(B|Ai)*P(Ai)/P(B))

而這個公式告訴我們,需要計算最大的后驗概率,只需要計算出分子的最大值即可,而不同水平的概率P(C)非常容易獲得,故難點就在于P(X|C)的概率計算。而問題的解決,正是聰明之處,即貝葉斯假設變量X間是條件獨立的,故而P(X|C)的概率就可以計算為:

P(B|Ai) =P(B1/Ai)*P(B2/Ai)*P(B3/Ai)*…..*P(Bn/Ai)

如下圖,由這個公式我們就能輕松計算出,在觀察到某用戶的未讀信息大于5條時,他流失的概率為80%。80%的數值比原來的30%真是靠譜太多了。

Clipboard Image.png

當然,現實情況并不會像這個例子這么理想化。大家會問,憑什么你就會想到用“未讀消息大于5條”來作為條件概率?我只能說,現實情況中,你可能要找上一堆覺得能夠凸顯用戶流失的行為,然后一一做貝葉斯規則,來測算他們是否能顯著識別用戶流失。尋找這個字段的效率,取決于你對業務的理解程度和直覺的敏銳性。另外,你還需要定義“流失”和“活躍”,還需要定義貝葉斯規則計算的基礎樣本,這決定了結果的精度。

  • 利用全概率公式的一個例子

樸素貝葉斯的應用不止于此,我們再例舉一個更復雜,但現實場景也更實際的案例。假設你為了肅清電商平臺上的惡性商戶(刷單、非法交易、惡性競爭等),委托算法團隊開發了一個識別商家是否是惡性商戶的模型M1。為什么要開發模型呢?因為之前識別惡性商家,你只能通過用戶舉報和人肉識別異常數據的方式,人力成本高且速率很慢。你指望有智能的算法來提高效率。

之前監察團隊的成果告訴我們,目前平臺上的惡性商戶比率為0.2%,記為P(E),那么P(~E)就是99.8%。利用模型M1進行檢測,你發現在監察團隊已判定的惡性商戶中,由模型M1所判定為陽性(惡性商戶)的人數占比為90%,這是一個條件概率,表示為P(P|E)=90%;在監察團隊判定為健康商戶群體中,由模型M1判定為陽性的人數占比為8%,表示為P(P|~E)=8%。乍看之下,你是不是覺得這個模型的準確度不夠呢?感覺對商戶有8%的誤殺,還有10%的漏判。其實不然,這個模型的結果不是你想當然的這么使用的

這里,我們需要使用一個稱為“全概率公式”的計算模型,來計算出在M1判別某個商戶為惡性商戶時,這個結果的可信度有多高。這正是貝葉斯模型的核心。當M1判別某個商戶為惡性商戶時,這個商戶的確是惡性商戶的概率由P(E|P)表示:

P(E|P)

=P(P|E)*P(E) (P(E)*P(P|E)+P(~E)*P(P|~E))

上面就是全概率公式。要知道判別為惡性商戶的前提下,該商戶實際為惡性商戶的概率,需要由先前的惡性商戶比率P(E),以判別的惡性商戶中的結果為陽性的商戶比率P(P|E),以判別為健康商戶中的結果為陽性的比率P(P|~E),以判別商戶中健康商戶的比率P(~E)來共同決定。

P(E)     0.2%
P(P|E)  90%
P(~E)   99.8%
P(P|~E)  8%
P(E|P)= P(P|E)*P(E) / (P(E)*P(P|E)+P(~E)*P(P|~E))  2.2%

由上面的數字,帶入全概率公式后,我們獲得的結果為2.2%。也就是說,根據M1的判別為陽性的結果,某個商戶實際為惡性商戶的概率為2.2%,是不進行判別的0.2%的11倍。

你可能認為2.2%的概率并不算高。但實際情況下你應該這么思考:被M1模型判別為惡性商戶,說明這家商戶做出惡性行為的概率是一般商戶的11倍,那么,就非常有必要用進一步的手段進行檢查了。

惡性商戶判別模型真正的使用邏輯應該是如下圖所示。我們先用M1進行一輪判別,結果是陽性的商戶,說明出現惡性行為的概率是一般商戶的11倍,那么有必要用精度更高的方式進行判別,或者人工介入進行檢查。精度更高的檢查和人工介入,成本都是非常高的。因此M1模型的使用能夠使我們的成本得到大幅節約。

Clipboard Image.png

貝葉斯模型在很多方面都有應用,我們熟知的領域就有垃圾郵件識別、文本的模糊匹配、欺詐判別、商品推薦等等。通過貝葉斯模型的闡述,大家應該有這樣的一種體會:分析模型并不取決于多么復雜的數學公式,多么高級的軟件工具,多么高深的算法組合;它們的原理往往是通俗易懂的,實現起來也沒有多高的門檻。比如貝葉斯模型,用Excel的單元格和加減乘除的符號就能實現。所以,不要覺得數據分析建模有多遙遠,其實就在你手邊。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢