一、什么是回歸算法
回歸算法是一種有監督算法
回歸算法是一種比較常用的機器學習算法,用來建立“解釋”變量(自變量X)和觀測值(因變量Y)之間的關系;從機器學習的角度來講,用于構建一個算法模型(函數)來做屬性(X)與標簽(Y)之間的映射關系,在算法的學習過程中,試圖尋找一個函數使得參數之間的關系擬合性最好
回歸算法中算法(函數)的最終結果是一個連續的數據值,輸入值(屬性值)是一個d維度的屬性/數值向量
1.1 初識回歸
有一個問題:現在擁有一組房屋面積及其對應房價的數據如下,如果有一個房屋面積為55平,請問最終的租賃價格是多少比較合適?
房屋面積 | 租賃價格 |
---|---|
10 | 0.8 |
20 | 1.8 |
30 | 2.2 |
30 | 2.5 |
70 | 5.5 |
70 | 5.2 |
… | … |
我們可以構建一個函數
其中h(x) 為房價,x為房屋面積,根據大量的數據求出??和?
?的值,于是能夠構建出一條直線。
如果此時將測試集中的數據投入到模型中,如果模型構建的比較好,可以看到測試集中所有(面積,價格)的點會均勻分布在直線的上下兩側,而且離的直線距離不會太遠 (說明方差較小) 。如果測試集中的數據大量分布在直線的上方,或離直線的距離普遍較遠,那么說明模型質量不高,需要重新訓練。
如果在面積的基礎上,增加房間數量這一變量呢
房屋面積 | 房間數量 | 租賃價格 |
---|---|---|
10 | 1 | 0.8 |
20 | 1 | 1.8 |
30 | 1 | 2.2 |
30 | 2 | 2.5 |
70 | 3 | 5.5 |
70 | 2 | 5.2 |
… | … | … |
構造函數
其中h(x) 為房價,根據大量的數據求出 、
、
的值,于是能夠構建出一個平面。我們要預測面積、房間個數和房價的映射關系,構建如下模型
從Y軸向下俯視該平面,可以獲得該平面在 x1、 x2 兩坐標軸上的投影。同樣,由(x1、 x2)點衍生到平面上后,對應的Y軸值即是對應的房價值y或記作h(x)?
如果有1個特征,我們得到了一條直線模型。如果有2個特征,我們得到了一個平面。如果有2個以上的特征呢?
2個特征形成的平面,結合目標值構成了一個三維的圖像,對于更高維度的思維結構人類是無法想象出來的。對于兩個以上特征形成的n維模型,我們稱之為超平面(Hyperplane)
模型:
即θ矩陣的轉置,乘以X的矩陣。
注:所有特征默認都是列向量
1.2 導數
導數 就是曲線的斜率,是曲線變化快慢的一個反應。
二階導數 是斜率變化的反應,表現曲線的 凹凸性
1.3 偏導數
導數是針對單一變量的,當函數是多變量的,偏導數?就是關于其中一個變量的導數而保持其他變量恒定不變(固定一個變量求導數)。
1.4 梯度
梯度是一個向量,表示某一函數在該點處的?方向導數?,沿著該方向取最大值,即函數在該點處沿著該方向變化最快,變化率最大(即該梯度向量的模);當函數為一維函數的時候,梯度就是導數。
二、求解
2.1 求解方法
1.解析解:最小二乘法(又稱最小平方法)是一種數學優化技術,它由兩部分組成:
- 計算所有樣本誤差的平均(代價函數)
- 使用最優化方法尋找數據的最佳函數匹配(抽象的)
2.數值解:梯度下降法、牛頓法、擬牛頓法等
2.2 線性回歸算法的步驟
Step1:畫出散點圖確定回歸方程
Step2:寫出回歸方程的基本形式(以線性為例)。最終目的是要計算出θ的值,并選擇最優的θ構成算法公式
Step3:寫出目標函數,object:樣本預測值與實際值的差值最小化
Step4:計算待估計參數的值,求出回歸方程
三、方法一:極大似然估計解釋最小二乘法
3.1 似然函數
前提假設:對于,誤差?
?是獨立同分布的,服從均值為0,方差為某定值
的高斯分布
解釋:實際問題中,很多隨機現象可以看做眾多因素的獨立影響的綜合反應,如房價往往由距離地鐵位置,周圍是否由學校等因素影響(誤差?同樣如此),往往服從正態分布(原因:中心極限定理)
所以,對于第i個樣本,誤差滿足如下公式:
?
根據中心極限定理得到似然函數:
取對數,得到對數似然函數:
化簡,得到目標函數:
?3.2 最小二乘法
對于,其中
目標函數:
對目標函數進行求導:
3.3 最小二乘法的參數最優解
參數解析式:
最小二乘法的使用要求矩陣是可逆的;為了防止不可逆或者過擬合的問題存在,可以增加額外數據影響,導致最終的矩陣是可逆的
證明方法:加入懲罰項
1)?半正定,對于任意的非零向量μ:
2)對于任意的實數λ>0,正定λ
則恒成立。
3)從而可逆,保證回歸公式一定有意義
最小二乘法直接求解的難點:矩陣逆的求解是一個難處
3.4 損失函數,代價函數,目標函數
參考:機器學習之線性回歸 損失函數、代價函數、目標函數
3.5 線性回歸過擬合
一般來說,模型的訓練誤差很小,而預測誤差很大的情況下,模型存在過擬合的情況
目標函數
為了防止數據過擬合,也就是的θ值在樣本空間中不能過大/過小,可以在目標函數之上增加一個平方和損失:
正則項(norm):這里這個正則項叫做L2-norm
3.5.1 Ridge回歸(嶺回歸)
使用L2正則的線性回歸模型就稱為Ridge回歸(嶺回歸)
3.5.2 LASSO回歸
使用L1正則的線性回歸模型就稱為LASSO回歸(Least Absolute Shrinkage and Selection Operator)
3.5.3 Elasitc Net算法
同時使用L1正則和L2正則的線性回歸模型就稱為Elasitc Net算法(彈性網絡算法)
3.5.4 Ridge(L2-norm)和LASSO(L1-norm)比較
L2-norm中,由于對于各個維度的參數縮放是在一個圓內縮放的,不可能導致有維度參數變為0的情況,那么也就不會產生稀疏解;實際應用中,數據的維度中是存在噪音和冗余的,稀疏的解可以找到有用的維度并且減少冗余,提高回歸預測的準確性和魯棒性(減少了overfitting)(L1-norm可以達到最終解的稀疏性的要求)
Ridge模型具有較高的準確性、魯棒性以及穩定性;LASSO模型具有較高的求解速度。
如果既要考慮穩定性也考慮求解的速度,就使用Elasitc Net
由上圖可知,對于二元線性回歸來說,L1正則的限制性區域為藍色正方形固定區域,L2正則限制性區域為藍色圓形固定區域,當目標函數前半部分與后半部分(限制性條件)相交時,集等勢線與固定區域相交,交點即為最優解,L1正則交點存在參數為0的情況,而L2則不存在,由此可推出L1正則容易產生稀疏解(元素為零)
3.6模型效果評判標
- MSE:誤差平方和,越趨近于0表示模型越擬合訓練數據。
- RMSE:MSE的平方根,作用同MSE
:取值范圍(負無窮,1],值越大表示模型越擬合訓練數據;最優解是1;當模型預測為隨機值的時候,有可能為負;若預測值恒為樣本期望,
為0
- TSS:總平方和TSS(Total Sum of Squares),表示樣本之間的差異情況,是偽方差的m倍
- RSS:殘差平方和RSS(Residual Sum of Squares),表示預測值和樣本值之間的差異情況,是MSE的m倍
3.7機器學習調參
在實際應用中,對于各種算法模型(線性回歸)來講,我們需要獲取θ、λ、p \theta、\lambda、pθ、λ、p的值,由于λ、p \lambda、pλ、p為超參數,無法求解,需要人為設定,從而求解最優的θ \thetaθ值,該過程為調參(超參數)
交叉驗證:將訓練數據分為多份,其中一份進行數據驗證并獲取最優的超參數λ \lambdaλ和p pp;比如:十折交叉驗證、五折交叉驗證(scikit-learn中默認)等。
四、方法二:梯度下降法
參考鏈接https://blog.csdn.net/fenglepeng/article/details/104507269
五、局部加權回歸
局部加權回歸-損失函數
普通線性回歸損失函數:
局部加權回歸損失函數:
局部加權回歸權重值?是權重,主要是根據預測點與訓練集點的距離作為數據集中的點賦權值。當某點離要預測的點越遠,其權重越小,否則越大。常用的公式為:
該函數稱為指數衰減函數,其中k 為波長參數,它控制了權值隨距離下降的速率
注意:使用該方式主要應用到樣本之間的相似性考慮
NOTE:局部加權回歸是一種非參數學習算法,也就是說參數不固定,在每一次預測的時候,均需要使用訓練數據重新訓練模型參數。
?
?
?
?
?
?