日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

lasso回归_一文读懂线性回归、岭回归和Lasso回归

發(fā)布時間:2025/3/8 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 lasso回归_一文读懂线性回归、岭回归和Lasso回归 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

(圖片由AI科技大本營付費下載自視覺中國)

作者 | 文杰

編輯 | yuquanle

本文介紹線性回歸模型,從梯度下降和最小二乘的角度來求解線性回歸問題,以概率的方式解釋了線性回歸為什么采用平方損失,然后介紹了線性回歸中常用的兩種范數(shù)來解決過擬合和矩陣不可逆的情況,分別對應嶺回歸和Lasso回歸,最后考慮到線性回歸的局限性,介紹了一種局部加權(quán)線性回歸,增加其非線性表示能力線性回歸A、線性回歸假設有數(shù)據(jù)有:其中,。其中m為訓練集樣本數(shù),n為樣本維度,y是樣本的真實值。線性回歸采用一個高維的線性函數(shù)來盡可能的擬合所有的數(shù)據(jù)點,最簡單的想法就是最小化函數(shù)值與真實值誤差的平方(概率解釋-高斯分布加最大似然估計)。即有如下目標函數(shù):其中線性函數(shù)如下:構(gòu)建好線性回歸模型的目標函數(shù)之后,接下來就是求解目標函數(shù)的最優(yōu)解,即一個優(yōu)化問題。常用的梯度優(yōu)化方法都可以拿來用,這里以梯度下降法來求解目標函數(shù)。另外,線性回歸也可以從最小二乘法的角度來看,下面先將樣本表示向量化,,,構(gòu)成如下數(shù)據(jù)矩陣。那么目標函數(shù)向量化形式如下:可以看出目標函數(shù)是一個凸二次規(guī)劃問題,其最優(yōu)解在導數(shù)為0處取到。值得注意的上式中存在計算矩陣的逆,一般來講當樣本數(shù)大于數(shù)據(jù)維度時,矩陣可逆,可以采用最小二乘法求得目標函數(shù)的閉式解。當數(shù)據(jù)維度大于樣本數(shù)時,矩陣線性相關(guān),不可逆。此時最小化目標函數(shù)解不唯一,且非常多,出于這樣一種情況,我們可以考慮奧卡姆剃刀準則來簡化模型復雜度,使其不必要的特征對應的w為0。所以引入正則項使得模型中w非0個數(shù)最少。當然,嶺回歸,lasso回歸的最根本的目的不是解決不可逆問題,而是防止過擬合。B、概率解釋損失函數(shù)與最小二乘法采用最小化平方和的概率解釋。假設模型預測值與真實值的誤差為,那么預測值與真實值之間有如下關(guān)系:根據(jù)中心極限定理,當一個事件與很多獨立隨機變量有關(guān),該事件服從正態(tài)分布 。一般來說,連續(xù)值我們都傾向于假設服從正態(tài)分布。假設每個樣本的誤差獨立同分布均值為0,方差為σ的高斯分布,所以有:即表示滿足以均值為,方差為的高斯分布。由最大似然估計有:嶺回歸和Lasso回歸嶺回歸的目標函數(shù)在一般的線性回歸的基礎上加入了正則項,在保證最佳擬合誤差的同時,使得參數(shù)盡可能的“簡單”,使得模型的泛化能力強(即不過分相信從訓練數(shù)據(jù)中學到的知識)。正則項一般采用一,二范數(shù),使得模型更具有泛化性,同時可以解決線性回歸中不可逆情況。其迭代優(yōu)化函數(shù)如下:另外從最小二乘的角度來看,通過引入二范正則項,使其主對角線元素來強制矩陣可逆。Lasso回歸采用一范數(shù)來約束,使參數(shù)非零個數(shù)最少。而Lasso和嶺回歸的區(qū)別很好理解,在優(yōu)化過程中,最優(yōu)解為函數(shù)等值線與約束空間的交集,正則項可以看作是約束空間。可以看出二范的約束空間是一個球形,而一范的約束空間是一個方形,這也就是二范會得到很多參數(shù)接近0的值,而一范則盡可能非零參數(shù)最少。值得注意的是線性模型的表示能力有限,但是并不一定表示線性模型只能處理線性分布的數(shù)據(jù)。這里有兩種常用的線性模型非線性化。對于上面的線性函數(shù)的構(gòu)造,我們可以看出模型在以的坐標上是線性的,但是并不表示線性的模型就一定只能用于線性分布問題上。假如我們只有一個特征,而實際上回歸值是等,我們同樣可以采用線性模型,因為我們完全可以把輸入空間映射到高維空間,其實這也是核方法以及PCA空間變換的一種思想,凡是對輸入空間進行線性,非線性的變換,都是把輸入空間映射到特征空間的思想,所以只需要把非線性問題轉(zhuǎn)化為線性問題即可。另外一種是局部線性思想,即對每一個樣本構(gòu)建一個加權(quán)的線性模型。局部加權(quán)線性回歸考慮到線性回歸的表示能力有限,可能出現(xiàn)欠擬合現(xiàn)象。局部加權(quán)線性回歸為每一個待預測的點構(gòu)建一個加權(quán)的線性模型。其加權(quán)的方式是根據(jù)預測點與數(shù)據(jù)集中點的距離來為數(shù)據(jù)集中的點賦權(quán)重,當某點距離預測點較遠時,其權(quán)重較小,反之較大。由于這種權(quán)重的機制引入使得局部加權(quán)線性回歸產(chǎn)生了一種局部分段擬合的效果。由于該方法對于每一個預測點構(gòu)建一個加權(quán)線性模型,都要重新計算與數(shù)據(jù)集中所有點的距離來確定權(quán)重值,進而確定針對該預測點的線性模型,計算成本高,同時為了實現(xiàn)無參估計來計算權(quán)重,需要存儲整個數(shù)據(jù)集。局部加權(quán)線性回歸,在線性回歸基礎上引入權(quán)重,其目標函數(shù)(下面的目標函數(shù)是針對一個預測樣本的)如下:一般選擇下面的權(quán)重函數(shù),權(quán)重函數(shù)選擇并非因為其類似于高斯函數(shù),而是根據(jù)數(shù)據(jù)分布的特性,但權(quán)重函數(shù)的選取并不一定依賴于數(shù)據(jù)特性。其中是待預測的一個數(shù)據(jù)點。對于上面的目標函數(shù),我們的目標同樣是求解使得損失函數(shù)最小化,同樣局部加權(quán)線性回歸可以采用梯度的方法,也可以從最小二乘法的角度給出閉式解。其中是對角矩陣,。線性回歸核心思想最小化平方誤差,可以從最小化損失函數(shù)和最小二乘角度來看,優(yōu)化過程可以采用梯度方法和閉式解。在閉式解問題中需要注意矩陣可逆問題。考慮到過擬合和欠擬合問題,有嶺回歸和lasso回歸來防止過擬合,局部加權(quán)線性回歸通過加權(quán)實現(xiàn)非線性表示。代碼實戰(zhàn)A、線性回歸

/**
線性回歸函數(shù)的實現(xiàn),考慮一般的線性回歸,最小平方和作為損失函數(shù),則目標函數(shù)是一個無約束的凸二次規(guī)劃問題,
由凸二次規(guī)劃問題的極小值在導數(shù)為0處取到,且極小值為全局最小值,且有閉式解。根據(jù)數(shù)學表達式實現(xiàn)矩陣之間的運算求得參數(shù)w。
**/int?regression(Matrix x,Matrix y){
????Matrix xT=x.transposeMatrix();
????Matrix xTx=xTx.multsMatrix(xT,x);
????Matrix xTx_1=xTx.niMatrix();
????Matrix xTx_1xT=xTx_1xT.multsMatrix(xTx_1,xT);
????Matrix ws;
????ws=ws.multsMatrix(xTx_1xT,y);cout<<"ws"<<endl;
????ws.print();return?0;
}

B、嶺回歸和Lasso回歸

/**
下面的嶺回歸函數(shù)只是在一般的線性回歸函數(shù)的基礎上在對角線上引入了嶺的概念,不僅有解決矩陣不可逆的線性,同樣也有正則項的目的,
采用常用的二范數(shù)就得到了直接引入lam的形式。
**/int?ridgeRegres(Matrix x,Matrix y,double?lam){
????Matrix xT=x.transposeMatrix();
????Matrix xTx=xTx.multsMatrix(xT,x);Matrix?denom(xTx.row,xTx.col,lam,"diag");
????xTx=xTx.addMatrix(xTx,denom);
????Matrix xTx_1=xTx.niMatrix();
????Matrix xTx_1xT=xTx_1xT.multsMatrix(xTx_1,xT);
????Matrix ws=ws.multsMatrix(xTx_1xT,y);cout<<"ws"<<endl;
????ws.print();return?0;
}

C、局部加權(quán)線性回歸

/**
局部加權(quán)線性回歸是在線性回歸的基礎上對每一個測試樣本(訓練的時候就是每一個訓練樣本)在其已有的樣本進行一個加權(quán)擬合,
權(quán)重的確定可以通過一個核來計算,常用的有高斯核(離測試樣本越近,權(quán)重越大,反之越小),這樣對每一個測試樣本就得到了不一樣的
權(quán)重向量,所以最后得出的擬合曲線不再是線性的了,這樣就增加的模型的復雜度來更好的擬合非線性數(shù)據(jù)。
**///需要注意的是局部加權(quán)線性回歸是對每一個樣本進行權(quán)重計算,所以對于每一個樣本都有一個權(quán)重w,所以下面的函數(shù)只是局部線性回歸的一個主要輔助函數(shù)Matrix?locWeightLineReg(Matrix test,Matrix x,Matrix y,const?double?&k){Matrix?w(x.row,x.row,0,"T");double?temp=0;int?i,j;/**
????根據(jù)測試樣本點與整個樣本的距離已經(jīng)選擇的核確定局部加權(quán)矩陣,采用對角線上為局部加權(quán)值
????**/for(i=0;i????{
????????temp=0;for(j=0;j????????{
????????????temp+=(test.data[0][j]-x.data[i][j])*(test.data[0][j]-x.data[i][j]);
????????}
????????w.data[i][i]=exp(temp/-2.0*k*k);
????}
????Matrix xT=x.transposeMatrix();
????Matrix wx=wx.multsMatrix(w,x);
????Matrix xTwx;
????xTwx=xTwx.multsMatrix(xT,wx);
????Matrix xTwx_1;
????xTwx_1=xTwx.niMatrix();
????Matrix xTwx_1xT;
????xTwx_1xT=xTwx_1xT.multsMatrix(xTwx_1,xT);
????Matrix xTwx_1xTw;
????xTwx_1xTw=xTwx_1xTw.multsMatrix(xTwx_1xT,w);
????Matrix ws = xTwx_1xTw * y;return?ws;
}

詳細代碼:https://github.com/myazi/myLearn/blob/master/LineReg.cpp(*本文為 AI科技大本營轉(zhuǎn)載文章,轉(zhuǎn)載請聯(lián)系原作者)

精彩推薦

2019 中國大數(shù)據(jù)技術(shù)大會(BDTC)歷經(jīng)十一載,再度火熱來襲!豪華主席陣容及百位技術(shù)專家齊聚,15 場精選專題技術(shù)和行業(yè)論壇,超強干貨+技術(shù)剖析+行業(yè)實踐立體解讀,深入解析熱門技術(shù)在行業(yè)中的實踐落地。【早鳥票】【特惠學生票】限時搶購,掃碼了解詳情!

推薦閱讀

  • 100多次競賽后,他研發(fā)了一個幾乎可以解決所有機器學習問題的框架

  • 王霸之路:從0.1到2.0,一文看盡TensorFlow“奮斗史”

  • 伯克利人工智能研究院開源深度學習數(shù)據(jù)壓縮方法Bit-Swap,性能創(chuàng)新高

  • NLP被英語統(tǒng)治?打破成見,英語不應是「自然語言」同義詞

  • TensorFlow2.0正式版發(fā)布,極簡安裝TF2.0(CPU&GPU)教程

  • 肖仰華:知識圖譜構(gòu)建的三要素、三原則和九大策略 | AI ProCon 2019

  • AI落地遭“卡脖子”困境:為什么說聯(lián)邦學習是解決良方?

  • 10分鐘搭建你的第一個圖像識別模型 | 附完整代碼

  • 限時早鳥票 | 2019 中國大數(shù)據(jù)技術(shù)大會(BDTC)超豪華盛宴搶先看!

你點的每個“在看”,我都認真當成了喜歡

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的lasso回归_一文读懂线性回归、岭回归和Lasso回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。