日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

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

(圖片由AI科技大本營(yíng)付費(fèi)下載自視覺中國(guó))

作者 | 文杰

編輯 | yuquanle

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

/**
線性回歸函數(shù)的實(shí)現(xiàn),考慮一般的線性回歸,最小平方和作為損失函數(shù),則目標(biāo)函數(shù)是一個(gè)無(wú)約束的凸二次規(guī)劃問題,
由凸二次規(guī)劃問題的極小值在導(dǎo)數(shù)為0處取到,且極小值為全局最小值,且有閉式解。根據(jù)數(shù)學(xué)表達(dá)式實(shí)現(xiàn)矩陣之間的運(yù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ù)的基礎(chǔ)上在對(duì)角線上引入了嶺的概念,不僅有解決矩陣不可逆的線性,同樣也有正則項(xiàng)的目的,
采用常用的二范數(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)線性回歸是在線性回歸的基礎(chǔ)上對(duì)每一個(gè)測(cè)試樣本(訓(xùn)練的時(shí)候就是每一個(gè)訓(xùn)練樣本)在其已有的樣本進(jìn)行一個(gè)加權(quán)擬合,
權(quán)重的確定可以通過一個(gè)核來(lái)計(jì)算,常用的有高斯核(離測(cè)試樣本越近,權(quán)重越大,反之越小),這樣對(duì)每一個(gè)測(cè)試樣本就得到了不一樣的
權(quán)重向量,所以最后得出的擬合曲線不再是線性的了,這樣就增加的模型的復(fù)雜度來(lái)更好的擬合非線性數(shù)據(jù)。
**///需要注意的是局部加權(quán)線性回歸是對(duì)每一個(gè)樣本進(jìn)行權(quán)重計(jì)算,所以對(duì)于每一個(gè)樣本都有一個(gè)權(quán)重w,所以下面的函數(shù)只是局部線性回歸的一個(gè)主要輔助函數(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ù)測(cè)試樣本點(diǎn)與整個(gè)樣本的距離已經(jīng)選擇的核確定局部加權(quán)矩陣,采用對(duì)角線上為局部加權(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;
}

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

精彩推薦

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

推薦閱讀

  • 100多次競(jìng)賽后,他研發(fā)了一個(gè)幾乎可以解決所有機(jī)器學(xué)習(xí)問題的框架

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

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

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

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

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

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

  • 10分鐘搭建你的第一個(gè)圖像識(shí)別模型 | 附完整代碼

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

你點(diǎn)的每個(gè)“在看”,我都認(rèn)真當(dāng)成了喜歡

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

總結(jié)

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

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