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

熱線電話:13121318867

登錄
首頁精彩閱讀機(jī)器學(xué)習(xí)故事匯-線性回歸算法
機(jī)器學(xué)習(xí)故事匯-線性回歸算法
2018-03-23
收藏

機(jī)器學(xué)習(xí)故事匯-線性回歸算法

今天咱們要來嘮的是機(jī)器學(xué)習(xí)中最基本也是最重要的算法之一線性回歸,正當(dāng)此時(shí)迪哥正在前往銀行的路上,準(zhǔn)備辦理貸款(低保),到了之后銀行問了我兩件事,年齡和工資都多少呀?(特征)當(dāng)?shù)玫搅私Y(jié)果后告訴我我們只能貸給你100塊,別問為什么!機(jī)器算的!(機(jī)器你拿毛線算的100快?)

這個(gè)圖就是機(jī)器如何進(jìn)行預(yù)測(cè)的(回歸)它會(huì)根據(jù)一票子兄弟貸款的歷史數(shù)據(jù)(年齡和工資分別對(duì)應(yīng)于X1與X2)找出來最好的擬合線(面)來進(jìn)行預(yù)測(cè),這樣你的數(shù)據(jù)來了之后直接帶入進(jìn)去就可以得出來該給你多少錢了。

我們用兩個(gè)參數(shù)來分別對(duì)應(yīng)于工資和年齡,控制它們對(duì)結(jié)果的影響大小,這里做了一個(gè)整合是把偏置項(xiàng)和權(quán)重參數(shù)項(xiàng)放到了一起(加了個(gè)X0讓其都等于1)

要想讓銀行能開的下去,那就得少遇到點(diǎn)麻煩,迪哥這么大碗就給我100塊(真實(shí)的指標(biāo)應(yīng)該為200塊)肯定是要砸場(chǎng)子的,所以我們的目標(biāo)是要讓得到的預(yù)測(cè)值跟真實(shí)值越接近越好。

既然說到誤差了,咱們就來好好嘮一下,首先銀行的目標(biāo)得讓誤差越小越好,這樣才能夠使得我們的結(jié)果是越準(zhǔn)確的。那么這個(gè)誤差有什么規(guī)律可循嗎?

咱們先來說說這個(gè)誤差為啥會(huì)服從高斯分布呢,這個(gè)事就得從我們是怎么認(rèn)為一個(gè)事發(fā)生的概率來說了,正常情況下你去銀行貸款差不多都是一個(gè)符合你的數(shù)字吧,極小的情況下能出現(xiàn)類似迪哥的情況(100塊都不給我),還是極小的情況下能像對(duì)待馬云似的給你幾個(gè)億吧,所以銀行給你貸款的誤差項(xiàng)理論上都是在較小范圍內(nèi)浮動(dòng)的,要么多了一點(diǎn),要么少了一點(diǎn)。所以我們認(rèn)為該誤差是可以服從高斯分布的(正太分布)。

那為啥會(huì)獨(dú)立呢?獨(dú)立的意思就是說迪哥來貸款了,恰好馬云也來了,但是我倆不認(rèn)識(shí)?。ㄆ鋵?shí)他認(rèn)識(shí)我,我不認(rèn)識(shí)他),所以我倆在貸款的時(shí)候不會(huì)因?yàn)轳R云而對(duì)我產(chǎn)生什么影響,也不會(huì)因?yàn)槲覍?duì)馬云產(chǎn)生什么影響,這就是獨(dú)立!

同分布又是啥呢?我和馬云來的是一家銀行吧,這家銀行的系統(tǒng)只有一個(gè),所以它在預(yù)測(cè)的時(shí)候是按照同樣的方式來的,這就是我們的數(shù)據(jù)是在同一個(gè)分布下去建模的。

既然誤差服從了高斯分布我們就把它進(jìn)行展開,上式的意思就是我去貸款,在它這兩組參數(shù)的控制下得到的貸款金額恰好是等于真實(shí)情況下就該給我這么多錢的概率。(預(yù)測(cè)值和真實(shí)值對(duì)應(yīng)的可能性大?。┠敲次覀儺?dāng)然希望這個(gè)概率越大越好呀,越大代表越準(zhǔn)確呀。

(怎么又來了一堆數(shù)學(xué)。。。沒人數(shù)學(xué)就不是機(jī)器學(xué)習(xí)啦)咱們繼續(xù)來看,咋又突然出來了個(gè)似然函數(shù)呀,咱們先來說一說它是個(gè)什么東西。比如說你今天去賭場(chǎng)了,然后你不知道能不能贏錢,你就在門口蹲著,出來一個(gè)人你就問一下,哥們贏錢了嗎(然后挨了一頓揍),連續(xù)出來5個(gè)人都告訴你贏錢了,那么你就會(huì)認(rèn)為我去賭錢也肯定會(huì)贏錢。這個(gè)的意思就是要利用樣本數(shù)據(jù)去估計(jì)你的參數(shù)應(yīng)該是什么,使得估計(jì)出來的參數(shù)盡可能的滿足(擬合)你的樣本。

對(duì)數(shù)似然它的意思和目標(biāo)很簡(jiǎn)單,就是為了簡(jiǎn)單求解,所以把比較復(fù)雜的乘法運(yùn)算轉(zhuǎn)換成了比較簡(jiǎn)單的加法運(yùn)算。


一頓化簡(jiǎn),其實(shí)就是把原式給展開了,然后我們的目標(biāo)是要求最大值吧(什么樣的參數(shù)能夠使得跟我數(shù)據(jù)組合完之后是真實(shí)值的概率越大越好),對(duì)于化簡(jiǎn)后的結(jié)果左邊是一個(gè)常數(shù)不用去管,右邊是一個(gè)恒正的(因?yàn)橛衅椒巾?xiàng))但是前面還有一個(gè)負(fù)號(hào)呀,讓這樣的數(shù)什么時(shí)候能取最大值呀?只有負(fù)號(hào)后面的取最小值才可以呀!

到這里我們終于推導(dǎo)出來了,銀行只需要做一件事就可以了,那就是最小化這個(gè)函數(shù)(目標(biāo)函數(shù)),其實(shí)說白了就是要讓我們的預(yù)測(cè)值和真實(shí)值之間的差異越小越好,這就是最小二乘法!

接下來就是如何求解呢?通常我們?nèi)デ笃珜?dǎo)就可以了,因?yàn)闃O值點(diǎn)通常都是在偏導(dǎo)處取得,對(duì)我們的目標(biāo)函數(shù)求偏導(dǎo),并且讓其等于0,這樣我們就能找到最終參數(shù)的解應(yīng)該是什么了!到這里小伙伴們可能感覺到竟然真能求出這個(gè)解,那這個(gè)解不就是我們想要的參數(shù)嘛,得到了它銀行就有救啦!

至此我們通過了一系列的推導(dǎo)得出了線性回歸的最終解法,但是這個(gè)解可以說是數(shù)學(xué)上的一個(gè)巧合,并不是所有問題都可以直接求解的,下回咱們?cè)僬務(wù)勅绾伍g接的求最優(yōu)解~

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

若不方便掃碼,搜微信號(hào):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)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(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ù)說明請(qǐng)參見: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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }