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