引子
【基礎知識】:條件概率----設A,B是兩個事件,且P(B)>0,則在事件B發生的條件下,事件A發生的條件概率(conditional probability)為:P(A|B)=P(AB)/P(B)
【基礎知識】:乘法公式
1.????由條件概率公式得:P(AB)=P(A|B)P(B)=P(B|A)P(A) 即為乘法公式;
2.????乘法公式的推廣:對于任何正整數n≥2,當P(A1A2...An-1) > 0 時,有:
????????????P(A1A2...An-1An)=P(A1)P(A2|A1)P(A3|A1A2)...P(An|A1A2...An-1)
【全概率公式】概念
【公式定義】:如果事件組B1,B2,.... 滿足
a.????B1,B2....兩兩互斥,即 Bi?∩ Bj?= ? ,i≠j , i,j=1,2,....,且P(Bi)>0,i=1,2,....;
b.????B1∪B2∪....=Ω ,則稱事件組 B1,B2,...是樣本空間Ω的一個劃分
????????設?B1,B2,...是樣本空間Ω的一個劃分,A為任一事件,則:
【全概率公式的意義】當直接計算P(A)較為困難,而P(Bi),P(A|Bi) ?(i=1,2,...)的計算較為簡單時,可以利用全概率公式計算P(A)。思想就是,將事件A分解成幾個小事件,通過求小事件的概率,然后相加從而求得事件A的概率,而將事件A進行分割的時候,不是直接對A進行分割,而是先找到樣本空間Ω的一個個劃分B1,B2,...Bn,這樣事件A就被事件AB1,AB2,...ABn分解成了n部分,即A=AB1+AB2+...+ABn, 每一Bi發生都可能導致A發生相應的概率是P(A|Bi),由加法公式得
????????P(A)=P(AB1)+P(AB2)+....+P(ABn) =P(A|B1)P(B1)+P(A|B2)P(B2)+...+P(A|Bn)P(PBn)
【實例1】:某車間用甲、乙、丙三臺機床進行生產,各臺機床次品率分別為5%,4%,2%,它們各自的產品分別占總量的25%,35%,40%,將它們的產品混在一起,求任取一個產品是次品的概率。
? ? ? ? ? ? ? ? 解:設..... ? ? P(A)=25%*5%+4%*35%+2%*40%=0.0345
【實例2】:盒中有a個紅球,b個黑球,今隨機從中抽取一個,觀察顏色后放回,并加上同色球c個,再從盒子中第二次抽取一球,求第二次抽出的是黑球的概率是多少?
【樸素貝葉斯】概念
【貝葉斯定理】:貝葉斯定理是關于隨機事件A和B的條件概率(或邊緣概率)的一則定理。其中P(A|B)是在B發生的情況下A發生的可能性。
【研究意義】:人們根據不確定性信息作出推理和決策需要對各種結論的概率作出估計,這類推理稱為概率推理。概率推理既是概率學和邏輯學的研究對象,也是心理學的研究對象,但研究的角度是不同的。概率學和邏輯學研究的是客觀概率推算的公式或規則;而心理學研究人們主觀概率估計的認知加工過程規律。貝葉斯推理的問題是條件概率推理問題,這一領域的探討對揭示人們對概率信息的認知加工過程與規律、指導人們進行有效的學習和判斷決策都具有十分重要的理論意義和實踐意義
【貝葉斯分類】:Bayes 是一種統計學分類方法,它基于貝葉斯定理,它假定一個屬性值對給定類的影響獨立于其它屬性點的值。該假定稱作類條件獨立。做次假定是為了簡化所需計算,并在此意義下稱為“樸素的”。
【運用場景】:對于屬性值是離散的,并且目標label值也是離散的情況下。分別計算label不同取值的概率,以及樣本在label情況下的概率值,然后將這些概率值相乘最后得到一個概率的乘積,選擇概率乘積最大的那個值對應的label值就為預測的結果。
廢話不多說,通過一個例子來熟知:
【實例1】:設某個公路經過的貨車與客車的比例大約是2:1,貨車中途停下來修車的概率是0.02,汽車中途停下來修車的概率是0.01,求 若有一輛車停下來修車,是貨車的概率是多少
? ? ? ? ?解:設B={停下來修車},A1={貨車},A2={非貨車,也就是客車};在有車停下來修車的前提下,是貨車的概率表達式應為:P(A1|B),顯然不好求!那么根據貝葉斯概率公式做個變換:
????????????P(A1|B) =? P(B|A1)*P(A1)/P(B)? ? 而 P(B)=P(B|A1)*P(A1) + P(B|A2)*P(A2)
其中: P(A1) = 2/3 (是貨車的概率)? ?P(A2) = 1/3(是客車的概率)
? ? ? ? ? ? P(B|A1) = 0.02(是貨車的前提下中途停下修車的概率)
? ? ? ? ? ? P(B|A2) = 0.01(是客車的前提下中途停下修車的概率)
最后計算結果: 2/3*0.02/(2/3*0.02 + 1/3*0.01) = 0.80
.【實例2】發報臺分別以概率0.6和0.4發出信號“∪”和“—”。由于通信系統受到干擾,當發出信號“∪”時,收報臺分別以概率0.8和0.2收到信號“∪”和“—”;又當發出信號“—”時,收報臺分別以概率0.9和0.1收到信號“—”和“∪”。求當收報臺收到信號“∪”時,發報臺確系發出“∪”的概率。
? ? 解:設A={收報臺收到“U”},設B1={發報臺發出的是“U”},B2={發報臺發出的是“—”}
? ?????????P(B1|A) = P(A|B1)*P(B1)/P(A);? ????????P(A) = P(A|B1)*P(B1)? + P(A|B2)*P(B2)
? ? ? ? ? ?P(B1|A)= (0.6*0.8)/(0.6*0.8+0.4*0.1)=0.923
【目標】:是預測蘋果在給定屬性的情況下是甜還是不甜【color=3,weight=3?】
color={0,1,2,3} weight={2,3,4};是屬性序列,為離散型。sweet={yes,no}是目標值,也為離散型;
這時我們要預測在color=3,weight=3的情況下的目標值,計算過程如下:
P{y=yes}=2/5=0.4; P{color=3|yes}=1/2=0.5;P{weight=3|yes}=1/2=0.5; ? 故F{color=3,weight=3}取yes的概率為 0.4*0.5*0.5=0.1;
P{y=no}=3/5=0.6; P{color=3|no}=1/3P{weight=3|no}=1/3;故P{color=3,weight=3}取no為 0.6*1/3*1/3=1/15;
0.1>1/15 所以認為 F{color=3,weight=3}=yes;
看完解題過程,先別疑惑,來看下面公式:
【樸素貝葉斯計算公式】---- 多個特征條件下的表達式
在樸素貝葉斯分類算法中,既可以獨立的學習每個屬性Ai在類別屬性C下的條件概率P(Ai|C),也可以獨立學習每個屬性Ai的概率,因該值為常數,可用歸一化因子a來代替。
趁熱打鐵,再來一波【數據】:計算“不帥、性格不好、身高矮、不上進”該不該“嫁”?
根據上述公式,已經比較容易獲得計算結果;結果比較慘,就不寫具體值了......
【樸素貝葉斯】Java實現---- 處理測試用例數據
學習完上面的例子之后,就到了使用階段了。變化一下思路,首先看一個假設:
假設,我們有N組參數,每組參數最終都跟著一個分類結果數值(這個數值是人為標記的),這種場景的表現形式是不是特別像測試數據的日志+結果啊,我們在腦海里將這N組數據勾畫成一張表,是不是就是上面預測蘋果甜不甜的分類模型啊!這個模型能干什么呢?能做預測!這就是樸素貝葉斯能帶給我們的福利。廢話不多說,直接上代碼!
1.????首先讀取訓練數據集合:
2.????將訓練集按最后一個值進行分類
3.????在訓練數據的基礎上預測測試元組的類別 ,testT(測試數據集合)的各個屬性在結果集里面出現的概率相乘最高的,即是結果
4.? ? 主函數調用
總結一下:代碼寫的比較冗余,數據結構獲取這部分的設計比較笨重;貝葉斯的最終核心目標是算一些列的屬性在整個數據集合中的占比問題;連乘最后處理得結果。該考慮以類為最小單元,祛除復雜的運算邏輯。
延展:獲取數據結構前,可以添加文本的拆分、分析等功能模塊,以兼容文本分類場景。
【樸素貝葉斯】使用方法--- 文本分類處理模型
【樸素貝葉斯】分類模型的優勢
1)算法邏輯簡單,易于實現;
2)分類過程中時間、空間開銷小;
3)算法性能穩定,對于不同的數據特點其分類性能差別不大,即模型健壯性比較好。
應用范圍:
貝葉斯定理廣泛應用于決策分析。先驗概率經常是由決策者主觀估計的。在選擇最佳決策時,會在取得樣本信息后計算后驗概率以供決策者使用。