樸素貝葉斯模型
SPSSAU-在線SPSS分析軟件
樸素貝葉斯模型
貝葉斯模型是利用先貝葉斯定理進(jìn)行計(jì)算的一種機(jī)器學(xué)習(xí)模型,并且此處涉及先驗(yàn)概率和后驗(yàn)概率。比如我們都知道去賭場(chǎng)會(huì)十賭九輸,此是以前的經(jīng)驗(yàn),即為先驗(yàn)概率,也或者大家都知道拋硬幣時(shí)上下面第一次都是1/2概率,這均為先驗(yàn)概率;如果發(fā)現(xiàn)一個(gè)人準(zhǔn)備跳樓,那么此時(shí)他是因?yàn)橘€博導(dǎo)致的概率是多少?此為后驗(yàn)概率。有了先驗(yàn)概率和后驗(yàn)證概率理解,結(jié)合貝葉斯定量即可計(jì)算出概率信息值。
接著,樸素貝葉斯是基于貝葉斯定量,并且加上條件(特征之間獨(dú)立)的一種模型。此處特征屬性之間獨(dú)立是指比如:有100個(gè)數(shù)據(jù),第1行數(shù)據(jù)與第2行,第3行等其它任意行數(shù)據(jù)之間并沒有關(guān)系,此前提條件非常重要,但現(xiàn)實(shí)中較難成立,但這并沒有妨礙其的廣泛使用,可能原因在于樸素貝葉斯模型通于分類問題處理,其內(nèi)部算法上會(huì)關(guān)注于條件概率排序并非具體概率數(shù)字,因而其具有一定容錯(cuò)能力,并且特征屬性之間假如有著關(guān)系并不完全獨(dú)立,其內(nèi)部可能存在相關(guān)抵消現(xiàn)象。整體上看,樸素貝葉斯模型原理較為簡(jiǎn)單,且應(yīng)用較為廣泛,比如輸入法時(shí)可能會(huì)進(jìn)行糾錯(cuò)功能處理,也或者垃圾郵件的識(shí)別等。
樸素貝葉斯模型案例
1 背景
案例數(shù)據(jù)依舊采用‘鳶尾花分類數(shù)據(jù)集’,其數(shù)據(jù)集為150個(gè)樣本,包括4個(gè)特征屬性(4個(gè)自變量X),標(biāo)簽為鳶尾花卉類別,其分為3個(gè)類別分別是剛毛鳶尾花、變色鳶尾花和弗吉尼亞鳶尾花(下稱A、B、C三類)。
2 理論
樸素貝葉斯模型的原理較為簡(jiǎn)單,其利用貝葉斯概率公式,分別如下:
接著假定各特征屬性獨(dú)立,并且將公式進(jìn)行展示成如下:
關(guān)于樸素貝葉斯模型時(shí),其原理理解較為簡(jiǎn)單,但其內(nèi)部算法上有著更多內(nèi)容,感興趣的讀者可參閱下述頁(yè)面,點(diǎn)擊查看。
https://scikit-learn.org/stable/modules/naive_bayes.html
關(guān)于樸素貝葉斯參數(shù)上,其特征(自變量X)的數(shù)據(jù)分布對(duì)模型有著較大影響,如下表格說明:
如果特征即自變量X全部均為連續(xù)定量數(shù)據(jù),那么選擇高斯分布即可(此為默認(rèn)值);如果說特征即自變量X中全部均是定類數(shù)據(jù)且每個(gè)X的類別數(shù)量大于2,此時(shí)可選擇多項(xiàng)式分布。如果每個(gè)特征全部都是0和1共兩個(gè)數(shù)字,此時(shí)選擇伯努利分布。如果特征中即包括連續(xù)定量數(shù)據(jù),又包括定類數(shù)據(jù),建議可對(duì)定類數(shù)據(jù)進(jìn)行啞變量設(shè)置后,選擇高斯分布。
關(guān)于關(guān)于啞變量可點(diǎn)擊查看。
http://spssau.com/front/spssau/helps/otherdocuments/dummy.html
3 操作
本例子操作如下:
訓(xùn)練集比例默認(rèn)選擇為:0.8即80%(150*0.8=120個(gè)樣本)進(jìn)行訓(xùn)練樸素貝葉斯模型,余下20%即30個(gè)樣本(測(cè)試數(shù)據(jù))用于模型的驗(yàn)證。需要注意的是,此處不進(jìn)行處理也可以,尤其是自變量X中有定類數(shù)據(jù)是,建議默認(rèn)不進(jìn)行處理。
接著對(duì)參數(shù)設(shè)置如下:
本案例時(shí)四個(gè)自變量X(特征項(xiàng))均為連續(xù)數(shù)據(jù),因而默認(rèn)為高斯分布即可;如果數(shù)據(jù)中包括定類數(shù)據(jù),建議參考上一部分內(nèi)容說明。
4 SPSSAU輸出結(jié)果
SPSSAU共輸出5項(xiàng)結(jié)果,依次為基本信息匯總,訓(xùn)練集或測(cè)試集模型評(píng)估結(jié)果,測(cè)試集結(jié)果混淆矩陣,模型匯總表和模型代碼,如下說明:
上述表格中,基本信息匯總表格展示因變量Y的分類數(shù)據(jù)分布情況,接著展示訓(xùn)練集和測(cè)試集效果情況,并且單獨(dú)提供測(cè)試集數(shù)據(jù)混淆判斷矩陣,進(jìn)一步分析測(cè)試數(shù)據(jù)的正確效果等,模型匯總表格展示整體模型參數(shù)情況,并且提供sklean進(jìn)行樸素貝葉斯模型構(gòu)建的核心代碼。
5文字分析
上表格中分別針對(duì)訓(xùn)練集和測(cè)試集,提供四個(gè)評(píng)估指標(biāo),分別是精確率、召回率、f1-scrore、準(zhǔn)確率,以及平均指標(biāo)和樣本量指標(biāo)等,如下表格說明:
一般來說,f1-score指標(biāo)值最適合,因?yàn)槠渚C合精確率和召回率兩個(gè)指標(biāo),并且可查看其平均值(綜合)指標(biāo),本案例為0.98,并且測(cè)試數(shù)據(jù)的表現(xiàn)上為0.93,意味著評(píng)估效果良好。
進(jìn)一步地,可查看測(cè)試數(shù)據(jù)的‘混淆矩陣’,即模型預(yù)測(cè)和事實(shí)情況的交叉集合,如下圖:
‘混淆矩陣’時(shí),右下三角對(duì)角線的值越大越好,其表示預(yù)測(cè)值和真實(shí)值完全一致。本測(cè)試數(shù)據(jù)中有2個(gè)樣本被判斷類別出錯(cuò),整體模型較優(yōu)。
最后針對(duì)模型匯總表,其展示構(gòu)建樸素貝葉斯模型各項(xiàng)參數(shù)設(shè)置,上表格中單獨(dú)有輸出平滑處理alpha值,當(dāng)alpha=1.0時(shí),稱作Laplace平滑,當(dāng)0時(shí),稱作Lidstone平滑,alpha=0時(shí),不做平滑。最后,SPSSAU輸出使用python中slearn包構(gòu)建本次樸素貝葉斯模型的核心代碼如下:
model = GaussianNB(alpha=1.0) ? ?
model.fit(x_train, y_train)
6 剖析
涉及以下幾個(gè)關(guān)鍵點(diǎn),分別如下:
樸素貝葉斯模型時(shí)是否需要標(biāo)準(zhǔn)化處理?
樸素貝葉斯模型時(shí),其并不涉及距離等計(jì)算,不關(guān)注于數(shù)據(jù)的量綱情況,而只關(guān)注于各數(shù)據(jù)情況下的概率情況,因而通常不需要做任何處理。
訓(xùn)練集比例應(yīng)該選擇多少?
如果數(shù)據(jù)量很大,比如1萬,那么訓(xùn)練集比例可以較高比如0.9,如果數(shù)據(jù)量較小,此時(shí)訓(xùn)練集比例選擇較小預(yù)留出較多數(shù)據(jù)進(jìn)行測(cè)試即可。
保存預(yù)測(cè)值
保存預(yù)測(cè)值時(shí),SPSSAU會(huì)新生成一個(gè)標(biāo)題用于存儲(chǔ)模型預(yù)測(cè)的類別信息,其數(shù)字的意義與模型中標(biāo)簽項(xiàng)(因變量Y)的數(shù)字保持一致意義。
SPSSAU進(jìn)行樸素貝葉斯模型時(shí)提示數(shù)據(jù)質(zhì)量異常?
當(dāng)前樸素貝葉斯模型支持分類任務(wù),需要確保標(biāo)簽項(xiàng)(因變量Y)為定類數(shù)據(jù),如果為定量連續(xù)數(shù)據(jù),也或者樣本量較少(或者非會(huì)員僅分析前100個(gè)樣本)時(shí)可能出現(xiàn)無法計(jì)算因而提示數(shù)據(jù)質(zhì)量異常。