
前言
之前已經(jīng)把我們的這個模型介紹的很多了,還記得我們是要干什么嗎。就是要擬合出一條直線符合大多數(shù)的數(shù)據(jù)點,這就是最為經(jīng)典的線性回歸模型。
輸出房價
為了方便說明,我們假設(shè)一組房價的數(shù)據(jù)如下:

可以看到我們這個模型只有一個變量,就是房子的面積,而成交價則對應(yīng)著函數(shù)的輸出y。我們最后需要完成一個函數(shù)對于新的房子面積,能輸出該房子的成交價,我們定義我們的輸出函數(shù)h(姑且這么叫...)
h(x)=θx;
我們的任務(wù)就是找到一個合適的θ值,假如我現(xiàn)在的θ是1.8,那么對于輸入100就會給出180,對于150就會給出270。但是現(xiàn)在的這個函數(shù)還存在一個問題,就是這個函數(shù)是一條過原點的直線,它還不夠“通用”,萎了使它盡可能的擬合更多數(shù)據(jù),可以修改一下:
h(x)=θ0+θ1x;(這里數(shù)字是下標(biāo))
這樣如果最后直線過原點,只要θ0=0就可以了,所以它的適用性更強一點。這就是我們的輸出函數(shù)h了,對于每個x它都能給出y(對于每個面積的房子都能預(yù)測對應(yīng)的房價)。但是不要忘了,現(xiàn)在θ是多少我們可還不知道。
差距有多大
想要找到合適的θ,就需要我們評判一下當(dāng)前的這個輸出函數(shù)h和實際給出的數(shù)據(jù)集有多大差距。這就需要我們的代價函數(shù)出場了(重點函數(shù)QAQ):
這里的m表示總共幾組數(shù)據(jù),我們的模擬數(shù)據(jù)m=3。而這里的i顯而易見就是第幾組數(shù)據(jù),xi,yi分別代表著第i組數(shù)據(jù)的x,y。對于我們的模擬數(shù)據(jù),x1=100,y1=200,x2=150,y2=250,x3=80,y3=150。
這個函數(shù)是如何工作的,其實非常容易理解,我們先把它前面的求和去掉,只看第一組數(shù)據(jù),現(xiàn)在函數(shù)就是這樣子的:
J=(h(x1)-y1)2
第一組數(shù)據(jù)x1=100,y1=200。通常我們初始化θ為0,所以現(xiàn)在θ0和θ1都為0。那很明顯無論輸入的x是多少,我們的函數(shù)h(x1)其實都是0的,那對于第一組數(shù)據(jù),J的值就是(0-200)2=40000。
對于每一組數(shù)據(jù)都如此計算然后加起來最后除以2m就是我們的代價函數(shù)的輸出了,對應(yīng)我們的模擬數(shù)據(jù),最后輸出應(yīng)該為20833.3。
從上面不難看出,對每項的計算其實就是在算我們目前的輸出函數(shù)h輸出的預(yù)測值和實際的值之間的差距,如果我們的模型已經(jīng)成熟了,那么這個代價函數(shù)理論上的輸出值應(yīng)該為0,因為每項的h(x)-y都為0,求和后也為0,除2m還是為0。
實際上不存在這么完美的事情,但是只要這個代價函數(shù)已經(jīng)很接近0了,那么我們的目標(biāo)也就達(dá)到了,可以看到,代價函數(shù)對我們目前僅僅只是初始化的函數(shù)h非常不滿,輸出的值很大,說明離擬合成功還有非常大的差距(這么大的原因還因為模擬的數(shù)據(jù)比較大,實際上對于比較大的數(shù)據(jù)通常運用特征縮放讓它變小,先不管它)。
接下來干什么
現(xiàn)在我們知道了輸出函數(shù)h以及代價函數(shù)J,也知道了如何評估當(dāng)前的h的好壞,但是光知道好壞沒有用啊,怎么讓它變好呢。下一次就會說道梯度下降算法來讓我們的h函數(shù)越來越好,也就是漸漸的找到合適的θ值(畢竟函數(shù)h是由θ決定的)。
當(dāng)h漸漸符合我們的預(yù)期后,我們的模型就已經(jīng)完成了。我們離預(yù)測房價攀上人生巔峰越來越近了2333

這些都是基于我最近自己學(xué)習(xí)整理的,希望加強自己的理解,也方便以后回顧。希望與大家分享交流,也希望大佬指正(T-T).