99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀從樸素貝葉斯分類器到貝葉斯網(wǎng)絡(luò)
從樸素貝葉斯分類器到貝葉斯網(wǎng)絡(luò)
2017-03-18
收藏

樸素貝葉斯分類器到貝葉斯網(wǎng)絡(luò)

一、貝葉斯公式(一些必備的數(shù)學(xué)基礎(chǔ))

貝葉斯(Thomas Bayes)是生活在十八世紀(jì)的一名英國牧師和數(shù)學(xué)家。因?yàn)闅v史久遠(yuǎn),加之他沒有太多的著述留存,今天的人們對貝葉斯的研究所知甚少。唯一知道的是,他提出了概率論中的貝葉斯公式。但從他曾經(jīng)當(dāng)選英國皇家科學(xué)學(xué)會(huì)會(huì)員(類似于院士)來看,他的研究工作在當(dāng)時(shí)的英國學(xué)術(shù)界已然受到了普遍的認(rèn)可。

事實(shí)上,在很長一段時(shí)間里,人們都沒有注意到貝葉斯公式所潛藏的巨大價(jià)值。直到二十世紀(jì)人工智能、機(jī)器學(xué)習(xí)等嶄新學(xué)術(shù)領(lǐng)域的出現(xiàn),人們才從一堆早已蒙灰的數(shù)學(xué)公式中發(fā)現(xiàn)了貝葉斯公式的巨大威力。為了方便后續(xù)內(nèi)容的介紹,這里我們先來簡單復(fù)習(xí)一下概率論中的一些基本知識(shí)。

事件A在另外一個(gè)事件B已經(jīng)發(fā)生條件下的發(fā)生概率,稱為條件概率,記為P(A|B)。

兩個(gè)事件共同發(fā)生的概率稱為聯(lián)合概率。A與B的聯(lián)合概率表示為 P(AB) 或者P(A,B)。

進(jìn)而有,P(AB) = P(B)P(A|B)=P(A)=P(B|A)。這也就導(dǎo)出了最簡單形式的貝葉斯公式,即

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

以及條件概率的鏈?zhǔn)椒▌t

P(A1,A2,...,An) = P(An|A1,A2,...,An-1)P(An-1|A1,A2,...,An-2)...P(A2|A1)P(A1)

概率論中還有一個(gè)全概率公式

由此可進(jìn)一步導(dǎo)出完整的貝葉斯公式

二、樸素貝葉斯分類器(Na?ve Baysian classifier)

分類是機(jī)器學(xué)習(xí)數(shù)據(jù)挖掘中最基礎(chǔ)的一種工作。假設(shè)現(xiàn)在我們一組訓(xùn)練元組(Training tuples),或稱訓(xùn)練樣例,以及與之相對應(yīng)的分類標(biāo)簽(Class labels)。每個(gè)元組都被表示成n維屬性向量X=(x1, x2, ..., xn)的形式,而且一共有K個(gè)類,標(biāo)簽分別為C1, C2, ..., Ck。分類的目的是當(dāng)給定一個(gè)元組X時(shí),模型可以預(yù)測其應(yīng)當(dāng)歸屬于哪個(gè)類別。

樸素貝葉斯分類器的原理非常簡單,就是基于貝葉斯公式進(jìn)行推理,所以才叫做“樸素”。對于每一個(gè)類別Ci, 利用貝葉斯公式來估計(jì)在給定訓(xùn)練元組X時(shí)的條件概率p(Ci|X),即

P(Ci|X) = P(X|Ci)P(Ci)/P(X)

當(dāng)且僅當(dāng)概率P(Ci|X)在所有的P(Ck|X)中取值最大時(shí),就認(rèn)為X屬于Ci。更進(jìn)一步,因?yàn)镻(X)對于所有的類別來說都是恒定的,所以其實(shí)只需要P(Ci|X) = P(X|Ci)P(Ci)最大化即可。

應(yīng)用樸素貝葉斯分類器時(shí)必須滿足條件:所有的屬性都是條件獨(dú)立的。也就是說,在給定條件的情況下,屬性之間是沒有依賴關(guān)系的。即

為了演示貝葉斯分類器,來看下面這個(gè)例子。我們通過是否頭疼、咽痛、咳嗽以及體溫高低來預(yù)測一個(gè)人是普通感冒還是流感。

上面是我們提供的訓(xùn)練數(shù)據(jù)?,F(xiàn)在有一個(gè)病人到診所看病,他的癥狀是:severeheadache,  no soreness, normaltemperature and with cough。請問他患的是普通感冒還是流感?分析易知,這里的分類標(biāo)簽有Flu 和Cold兩種。于是最終要計(jì)算的是下面哪個(gè)概率更高。

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Flu)*P(Headache= severe|Flu)*P(Sore= no|Flu)*P(Temperature= normal |Flu)*P(Cough = yes|Flu)

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

?P(Cold)*P(Headache= severe|Cold)*P(Sore= no|Cold)*P(Temperature= normal |Cold)*P(Cough = yes |Cold)

為了計(jì)算上面這個(gè)結(jié)果,我們需要通過已知數(shù)據(jù)(訓(xùn)練數(shù)據(jù))讓機(jī)器自己“學(xué)習(xí)”(建立)一個(gè)“模型”。由已知模型很容以得出下表中的結(jié)

以及

e= small value = 10^-7(one can use e to be less than 1/n where n is the number of training instances)

P( Flu| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

= P(Flu)*P(Headache = severe|Flu)*P(Sore= no|Flu)*P(Temperature = normal |Flu)*P(Cough = yes|Flu)

=   3/5   ×  2/3    ×     e     ×        2/3       ×      3/3    = 0.26e

P( Cold| Headache = severe, Sore = no,Temperature = normal, Cough = yes)

~ P(Cold)*P(Headache =severe|Cold)*P(Sore = no|Cold)*P(Temperature = normal |Cold)*P(Cough = yes|Cold)

=  2/5     ×      e        ×      ?       ×   1       ×        ?    = 0.1e

顯然P(Flu) > P(Cold),所以我們的診斷(預(yù)測,分類)結(jié)果是 Flu。

最后討論一下樸素貝葉斯分類器的特點(diǎn)(來自網(wǎng)上資料總結(jié),我就不翻譯了):

? Na?ve Bayesian Classifier is very simple to build, extremely fast to make decisions, and easy to change the probabilities when the new data becomes available (especially when the new data is additional information not modification to previously used data).
? Works well in many application areas.
? Scales easily for large number of dimensions (100s) and data sizes.
? Easy to explain the reason for the decision made.
? One should apply NB first before launching into more sophisticated classification techniques.

我們將把貝葉斯網(wǎng)絡(luò)留待下一篇文章中介紹(未完,待續(xù)...)。


數(shù)據(jù)分析咨詢請掃描二維碼

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

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }