1、回歸的來源?
英國人類學家F.Galton首次在《自然遺傳》一書中庆揪,提出并闡明了“相關”和“相關系數(shù)”兩個概念,為相關論奠定了基礎妨托。其后缸榛,他和英國統(tǒng)計學家Karl Pearson對上千個家庭的身高、臂長兰伤、拃長(伸開大拇指與中指兩端的最大長度)做了測量内颗,發(fā)現(xiàn):兒子身高(Y,英寸)與父親身高(X敦腔,英寸)存在線性關系:
高個子父代的子代在成年之后的身高平均來說不是更高均澳,而是稍矮于其父代水平,而矮個子父代的子代的平均身高不是更矮会烙,而是稍高于其父代水平负懦。Galton將這種 趨向于種族穩(wěn)定的現(xiàn)象稱之“回歸 ”。
目前柏腻,“回歸”已成為表示 變量之間某種數(shù)量依存關系 的統(tǒng)計學術(shù)語纸厉,并且衍生出“回歸方程”“回歸系數(shù)”等統(tǒng)計學概念。如研究糖尿病人血糖與其胰島素水平的關系五嫂,研究兒童年齡與體重的關系等颗品。
2、變量關系
(1) 函數(shù)關系:當自變量取值一定時沃缘,因變量取值唯一確定--確定關系
(2) 相關關系:當自變量取值一定時躯枢,因變量取值帶有一定隨機性,例子:一塊農(nóng)田的水稻產(chǎn)量與施肥量之間的關系---不確定關系
主要研究不確定型的函數(shù)關系槐臀,如收入與受教育程度之間的關系锄蹂,等等問題。 但它們之間存在明顯的相互關系(稱為相關關系)水慨,又是不確定的得糜。
3敬扛、一元線性回歸
一元線性回歸研究的是一個自變量與一個因變量的統(tǒng)計關系,如人均收入X與人均食品消費支出Y朝抖,假設X與Y的關系為Y=aX+b啥箭。
4、線性回歸的學習目標
用恰當?shù)姆椒ㄖ涡烙嫵鰠?shù)a急侥,b。并且使估計出來的參數(shù)具有良好的統(tǒng)計特征侮邀』倒郑回歸問題從某種視角看,視同 參數(shù)估計 問題豌拙。
5陕悬、例子
假設有一個房屋銷售的數(shù)據(jù)如下:面積(m2) ? ? 銷售價錢(萬元)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 123 ? ? ? ? ? ? ? ? 250
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 150 ? ? ? ? ? ? ? ? 320
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 87 ? ? ? ? ? ? ? ? ? ?160
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 102 ? ? ? ? ? ? ? ? ? ?220
… …
我們可以畫一個圖题暖,x軸是房屋的面積按傅。y軸是房屋的售價:
6、回歸定義
給定一個點集D胧卤,用函數(shù)去擬合這個點集唯绍,并且使得點集與擬合函數(shù)間的誤差最小。如果這個函數(shù)曲線是一條直線枝誊,那就被稱為線性回歸况芒。
7、建立模型
我們通常認為房屋的售價只與面積相關叶撒。實際生活中绝骚,影響房價的因素非常多,如房屋的面積祠够、朝向压汪、所在小區(qū)、房間的個數(shù)等古瓤≈蛊剩考慮更多的情況,我們用x1落君,x2...xn 去描述這些影響房屋售價的因素穿香,這些影響因素在機器學習中稱為特征。如x1=房間的面積绎速,x2=房間的朝向等等皮获。考慮兩個變量纹冤,我們可以做出一個估計函數(shù):
θ在這里稱為參數(shù)洒宝,θ作用可以調(diào)整房屋售價的各種因素的作用大小主届。換句話說影響房屋售價的因素:到底是房屋的面積更重要還是房間朝向更重要?
用向量的方式來表示
在上式中待德,一旦θ確定君丁,那么我們的直線也就確定了,我們就能夠?qū)Ψ績r進行預測了将宪。因此我們要做的工作是 確定θ 绘闷。 θ的值可以有無數(shù)個,我們應該如何選取θ呢较坛?
8印蔗、如何確定θ?
最小二乘法
模型估計的值和真實值總是存在誤差丑勤,為了使模型盡可能的準確华嘹,我們希望估計值和真實值之間的誤差盡可能小,那么模型就越準確法竞。
由于存在多個點耙厚,通常情況下,我們采用誤差平方和的形式岔霸,使之誤差平方和最小
J(θ)函數(shù)稱為損失函數(shù)(loss function)薛躬,上述問題就轉(zhuǎn)化為求J(θ)的最小值問題。如何求解J(θ)的最小值呢呆细?
9型宝、如何求解J(θ)的最小值?
上式中只有θ是未知數(shù)絮爷,回顧高數(shù)內(nèi)容趴酣,如何求解函數(shù)的最小值。通常做法坑夯,對目標函數(shù)求導岖寞,令導數(shù)為0,求得的點渊涝,即為極值點慎璧,如果函數(shù)在定義域內(nèi)是凸函數(shù),那么極值點就是最值點跨释。上述方法就是最小二乘法的思路胸私。
9.1 函數(shù)求導法
9.2 矩陣解法
通過“求導=0”,可以將上述方程寫成矩陣的形式鳖谈,從而將問題轉(zhuǎn)化為求解線性方程組問題岁疼,矩陣X必須是列滿秩矩陣,否則XTX的逆就不會存在。
(1)若XTX不可逆捷绒,則方法失效瑰排。可通過|XTX|的行列式的值是否為0判斷暖侨,非0表可逆椭住。
(2)若XTX階數(shù)過高,則需要使用梯度下降的方式計算數(shù)值解字逗。
直接求解回歸系數(shù)優(yōu)缺點:
優(yōu)點:求解過程易于理解京郑,計算不復雜。
缺點:對非線性數(shù)據(jù)的擬合效果差葫掉。
9.3 梯度下降法(最速下降法)
梯度下降法是一種求解最優(yōu)解的迭代算法些举,先給定一個初始位置,然后向下降最快的方向調(diào)整俭厚,在若干次迭代之后找到局部最小值户魏。
求最優(yōu)解方法:
1、如果優(yōu)化函數(shù)存在 解析解 挪挤。例如我們求最值一般是對優(yōu)化函數(shù)求導叼丑,找到導數(shù)為0的點。如果代價函數(shù)能簡單求導电禀,并且求導后為0的式子存在解析解幢码,那么我們就可以直接得到 最優(yōu)的參數(shù) 笤休。
2尖飞、如果式子很難求導,例如函數(shù)里面存在隱含的變量或者變量相互間存在耦合店雅,互相依賴的情況政基。或者求導后式子得不到解析解闹啦,或者未知參數(shù)的個數(shù)大于方程組的個數(shù)等沮明。這時候使用 迭代算法 來一步一步找到最優(yōu)解。
特別的窍奋,若優(yōu)化函數(shù)是凸函數(shù)荐健,那么就存在全局最優(yōu)解,如果函數(shù)是非凸的琳袄,那么就會有很多局部最優(yōu)的解江场,因此凸優(yōu)化重要性不言而喻。
梯度下降法步驟
(1)初始化θ(隨機初始化)
(2)迭代窖逗,新的θ能夠使得J(θ)更小
(3)如果J(θ)能夠繼續(xù)減少址否,返回(2)
迭代公式
9.4 兩種實現(xiàn)方式
9.41 批處理梯度下降法
批處理梯度下降法迭代過程把所有的m個樣本全部帶入計算碎紊,迭代一次計算量m*n2佑附。
由于批量梯度下降法每迭代一次更新回歸系數(shù)時樊诺,都要用到訓練集所有的數(shù)據(jù),如果樣本數(shù)m很大音同,那么計算復雜度會很高词爬,速度會很慢。針對這種不足权均,又引入另一種方法:隨機梯度下降法缸夹。
9.42 隨機梯度下降法( stochastic gradient descent )
隨機梯度下降法每次迭代只帶入單個樣本的回歸誤差來更新回歸系數(shù),迭代一次計算量為n2螺句,當樣本量總數(shù)m很大時虽惭,迭代一次的速度
遠遠大于批量梯度下降法。
隨機梯度下降法每次只帶入一個樣本進行計算蛇尚,雖然每次迭代誤差準則函數(shù)都不一定向著全局最優(yōu)方向芽唇,但是整體方向是向著全局最優(yōu)方向的,最終結(jié)果往往是在全局最優(yōu)解的附近取劫。
9.5 梯度下降法注意事項
主要考慮兩個方面問題: 一是方向 匆笤, 二是步長 。
方向決定是否走在最優(yōu)化的道路上谱邪,而步長決定了要多久才能到達最優(yōu)的地方炮捧。 對于第一方面,就是求梯度惦银,多元函數(shù)求相應變量的偏導數(shù)咆课;對于第二方面,如果步子太少扯俱,則需要很長的時間才能達到目的地书蚪,如果步子過大,可能導致在目的地周圍來回震蕩迅栅,所以步長選擇比較關鍵殊校。
9.6 改進的隨機梯度下降法
100個二維樣本,每個樣本都對系數(shù)調(diào)整一次读存,共有200*100=20000次的系數(shù)調(diào)整
從上圖可以看到隨機梯度下降法在迭代了200次中为流,三個回歸系數(shù)的變化過程,其中系數(shù)X2經(jīng)過50次迭代達到穩(wěn)定值让簿,系數(shù)X0和X2到100次后逐漸穩(wěn)定敬察,但還存在一些小的波動。
原因:
存在一些無法準確分類的樣本點拜英,也就是說我們的數(shù)據(jù)集并非線性可分静汤。然而我們的優(yōu)化程序并沒能意識到這些不正常的樣本點,還
一視同仁對待,調(diào)整系數(shù)來達到這些樣本的分類誤差虫给,所以導致在每次迭代時都引發(fā)系數(shù)的劇烈波動藤抡。
改進:
(1)每次迭代調(diào)整步長alpha值。隨著迭代的進行抹估,使之a(chǎn)lpha越來越小缠黍,從而緩解系數(shù)的高頻波動。避免alpha不斷減小到接近于
0药蜻,所以需約束alpha比零稍大一點的常數(shù)項瓷式。
(2)每次迭代改變樣本的優(yōu)化順序。隨機選取樣本來更新回歸系數(shù)语泽,因為樣本順序的改變贸典,使得每次迭代不在形成周期性。
10踱卵、衡量預測值是否正確廊驼?
衡量預測值代替真實值到底有多正確?可使用 相關系數(shù) 進行度量惋砂。
python中通過Numpy庫提供了相關系數(shù)的計算方法妒挎。correoef(yEstimate,yActual)
11、相關代碼
11.1 加載數(shù)據(jù)集
11.2 矩陣求解法
11.3 批量梯度下降法
11.4 隨機梯度下降法
11.5 改進隨機梯度下降法
11.6 訓練
11.7 效果
11.8 測試