回歸是機器學習中最經(jīng)典的算法撇吞,它的意思就是根據(jù)之前的數(shù)據(jù)找出某種規(guī)律(可以是線性羹膳,也可以是非線性)当编,構建模型實現(xiàn)預測或分類箩绍。
一、線性回歸
1.線性回歸
線性回歸顧名思義梳侨,就是找出大量數(shù)據(jù)在二維平面中呈現(xiàn)的是線性關系蛉威。拿房價舉個例子,假如你現(xiàn)在要出售自己的房子走哺,你不大清楚這么大面積的房子能賣多少錢蚯嫌,于是你找到了所在小區(qū)的房價數(shù)據(jù)(房價、面積)丙躏,發(fā)現(xiàn)大概是呈線性分布齐帚,那么如果你可以通過這個直線,去計算出自己的房子大概可以賣多少錢
2.工作方式
整個監(jiān)督學習算法的工作方式如下圖彼哼,還是拿剛才的預測房價舉例对妄,把訓練集數(shù)據(jù)(房價、房屋面積)喂給算法敢朱,等到算法學到足夠好之后剪菱。我們給他輸入一個x(代表面積)摩瞎,算法就給我們一個y(預測房價)。因此孝常,h(算法)是一個從x(輸入數(shù)據(jù))到y(tǒng)(輸出數(shù)據(jù))的函數(shù)映射旗们。
二、誤差函數(shù)表示
那么我們?nèi)绾伪磉_h构灸,現(xiàn)在學習的是線性回歸上渴,當然可以做出這樣的假設:
那么我們現(xiàn)在的目的,就是找到這個算法中合適的參數(shù)喜颁。怎樣才算合適稠氮?當然是算法擬合出來的結果與真實的結果誤差越小越好,試想一下如果算法擬合出來的結果與真實值的誤差為零半开,那簡直完美有木有隔披!所以可以根據(jù)“真實值與算法擬合值的誤差”來表示算法的“合適程度”!
所以我們假設出這樣的公式:
這里要用到最小二乘的思想去構建平方差函數(shù):
這里的loss寂拆,我們定義為“全局性誤差函數(shù)”奢米,它的含義為:
模型預測的準確程度
換句話說,loss的值越小纠永,則代表算法擬合結果與真實結果越接近鬓长;loss的值越大,則表示目前的算法越不靠譜尝江,反應Loss與“算法數(shù)據(jù)”的關系如下圖:
當我們看到在右邊的loss函數(shù)中取深藍色的點涉波,即w=0,對應左面的算法與真實數(shù)據(jù)相差最遠茂装。當取粉紅色的即w=0.5時怠蹂,左邊圖像的算法離真實值更加接近了善延。而當我們找到Loss的最小值點少态,即w=1的時候,對應左邊的圖像可以說近乎完美地擬合出了真實數(shù)據(jù)的規(guī)律
當你找到了loss的最小值點對應的w易遣,也就找到了我們的目標算法對應的描述參數(shù)彼妻。
三、梯度下降
所以問題就變成了豆茫,如何找到全局性誤差函數(shù)loss的最小值問題侨歉,要用到之前提到的“梯度下降法”
這里就不再贅述了(之前的文章對梯度下降有過詳解,感興趣的朋友可以出門左轉去看)揩魂,這里重點說下梯度下降的思想邏輯
就像剛才提到的幽邓,我們的目標現(xiàn)在已經(jīng)變成了求得loss的最小值點。梯度下降的核心思想就是隨機在loss上取一個點火脉,然后朝著loss下降變化最大的下一個點挪動牵舵,通過這樣一步一步挪動的方式柒啤,找到函數(shù)的最小值
四.線性回歸“得到”
·所謂回歸,就是我們從數(shù)據(jù)中找打算法(規(guī)律)畸颅,實現(xiàn)對未知數(shù)據(jù)的預測或分類
·我們可以通過假設的算法担巩,去描述這個規(guī)律
·為了找到合適的算法,就要構建全局性損失函數(shù)没炒,即真實數(shù)據(jù)與擬合數(shù)據(jù)的誤差
·損失函數(shù)的值越接近于零涛癌,則模型的效果越好
·為了找到這個“最小值”(零點),需要用到梯度下降法