##機(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快?)這個圖就是機(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)要想讓銀行能開的下去,那就得少遇到點(diǎn)麻煩,迪哥這么大碗就給我100塊(真實的指標(biāo)應(yīng)該為200塊)肯定是要砸場子的,所以我們的目標(biāo)是要讓得到的預(yù)測值跟真實值越接近越好。既然說到**誤差**了,咱們就來好好嘮一下,首先銀行的目標(biāo)得讓誤差越小越好,這樣才能夠使得我們的結(jié)果是越準(zhǔn)確的。那么這個誤差有什么規(guī)律可循嗎?咱們先來說說這個**誤差為啥會服從高斯分布呢**,這個事就得從我們是怎么認(rèn)為一個事發(fā)生的概率來說了,正常情況下你去銀行貸款差不多都是一個符合你的數(shù)字吧,極小的情況下能出現(xiàn)類似迪哥的情況(100塊都不給我),還是極小的情況下能像對待馬云似的給你幾個億吧,所以銀行給你貸款的誤差項理論上都是在較小范圍內(nèi)浮動的,要么多了一點(diǎn),要么少了一點(diǎn)。所以我們認(rèn)為該誤差是可以服從高斯分布的(正太分布)。**那為啥會獨(dú)立呢?**獨(dú)立的意思就是說迪哥來貸款了,恰好馬云也來了,但是我倆不認(rèn)識?。ㄆ鋵嵥J(rèn)識我,我不認(rèn)識他),所以我倆在貸款的時候不會因為馬云而對我產(chǎn)生什么影響,也不會因為我對馬云產(chǎn)生什么影響,這就是獨(dú)立!**同分布又是啥呢?**我和馬云來的是一家銀行吧,這家銀行的系統(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)是要求最大值吧(什么樣的參數(shù)能夠使得跟我數(shù)據(jù)組合完之后是真實值的概率越大越好),對于化簡后的結(jié)果左邊是一個常數(shù)不用去管,右邊是一個恒正的(因為有平方項)但是前面還有一個負(fù)號呀,讓這樣的數(shù)什么時候能取最大值呀?**只有負(fù)號后面的取最小值才可以呀**!到這里我們終于推導(dǎo)出來了,銀行只需要做一件事就可以了,那就是最小化這個函數(shù)(**目標(biāo)函數(shù)**),其實說白了就是要讓我們的預(yù)測值和真實值之間的差異越小越好,這就是最小二乘法!接下來就是如何求解呢?通常我們?nèi)デ笃珜?dǎo)就可以了,因為極值點(diǎn)通常都是在偏導(dǎo)處取得,對我們的目標(biāo)函數(shù)求偏導(dǎo),并且讓其等于0,這樣我們就能找到最終參數(shù)的解應(yīng)該是什么了!到這里小伙伴們可能感覺到竟然真能求出這個解,那這個解不就是我們想要的參數(shù)嘛,得到了它銀行就有救啦!至此我們通過了一系列的推導(dǎo)得出了線性回歸的最終解法,但是這個解可以說是數(shù)學(xué)上的一個巧合,并不是所有問題都可以直接求解的,下回咱們再談?wù)勅绾伍g接的求最優(yōu)解~**更多精彩內(nèi)容可以關(guān)注公眾號:數(shù)據(jù)先鋒**我的所有文章以及案例實戰(zhàn)(數(shù)據(jù)和代碼)都在公眾號中可以找到,感謝各位同學(xué)收看?。ㄞD(zhuǎn)載請在公眾號中聯(lián)系我)