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

熱線電話:13121318867

登錄
首頁精彩閱讀小白也能入門機(jī)器學(xué)習(xí)-線性回歸
小白也能入門機(jī)器學(xué)習(xí)-線性回歸
2018-07-09
收藏

小白也能入門機(jī)器學(xué)習(xí)-線性回歸

【咱們的目標(biāo)】系列算法講解旨在用最簡單易懂的故事情節(jié)幫助大家掌握晦澀無趣的機(jī)器學(xué)習(xí),適合對數(shù)學(xué)很頭疼的同學(xué)們,小板凳走起!

【什么是線性回歸】今天咱們要來嘮的是機(jī)器學(xué)習(xí)中最基本也是最重要的算法之一線性回歸,正當(dāng)此時迪哥正在前往銀行的路上,準(zhǔn)備辦理貸款(低保),到了之后銀行問了我兩件事,年齡和工資都多少呀?(特征)當(dāng)?shù)玫搅私Y(jié)果后告訴我我們只能貸給你100塊,別問為什么!機(jī)器算的?。C(jī)器你拿毛線算的100快?)這里告訴了我們這樣一件事,我們的輸入就是你的數(shù)據(jù)特征,得出的結(jié)果是一個連續(xù)區(qū)間上的值,目標(biāo)就是找到我們想要預(yù)測的值和我們的輸出之間的關(guān)系,接下來我們的目標(biāo)就放在如何找到這種關(guān)系。

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

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

要想讓銀行能開的下去,那就得少遇到點麻煩,迪哥這么大碗就給我100塊(真實的指標(biāo)應(yīng)該為200塊)肯定是要砸場子的,所以我們的目標(biāo)是要讓得到的預(yù)測值跟真實值越接近越好。機(jī)器學(xué)習(xí)當(dāng)中最核心的一點就在于如何優(yōu)化我們的目標(biāo),可以看到對于這些點來說有些離我的回歸方程比較近,有些比較遠(yuǎn),最終我們應(yīng)該設(shè)定一個目標(biāo)讓我們的方程能夠更好的去擬合當(dāng)前的這些數(shù)據(jù)點。

【深入細(xì)節(jié)】既然說到誤差了,咱們就來好好嘮一下,首先銀行的目標(biāo)得讓誤差越小越好,這樣才能夠使得我們的結(jié)果是越準(zhǔn)確的。那么這個誤差有什么規(guī)律可循嗎?誤差可以說是機(jī)器學(xué)習(xí)當(dāng)中最長聽到的一個詞了,我們可以假想一下,你讓機(jī)器人來幫你進(jìn)行工作,剛開始的時候它肯定啥都不會,我們得一點點的教它,等他慢慢熟悉我們的工作了(數(shù)據(jù)),也就意味著我們的回歸方程效果會更好了。

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

那為啥會獨立呢?獨立的意思就是說迪哥來貸款了,恰好馬云也來了,但是我倆不認(rèn)識?。ㄆ鋵嵥J(rèn)識我,我不認(rèn)識他),所以我倆在貸款的時候不會因為馬云而對我產(chǎn)生什么影響,也不會因為我對馬云產(chǎn)生什么影響,這就是獨立!

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

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

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

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


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

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

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

【總結(jié)】

至此我們通過了一系列的推導(dǎo)得出了線性回歸的最終解法,路途雖然有點曲折但是其中涉及到的思想還是非常有意思的,這節(jié)課希望大家對線性回歸有了一個直觀的認(rèn)識,了解機(jī)器學(xué)習(xí)工作的基本原理與實際處理方法。但是這個解可以說是數(shù)學(xué)上的一個巧合,并不是所有問題都可以直接求解的,下回咱們再談?wù)勅绾伍g接的求最優(yōu)解~


數(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)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(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){ //倒計時完成 $(".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); }