LinearRegression,RidgeCV,LassoCV,ElasticNetCV各自使用場景

LinearRegression,RidgeCV,LassoCV,ElasticNetCV各自使用場景

概念:

? ? ? #線性回歸的目的是要得到輸出向量Y和輸入特征X之間的線性關(guān)系,求出線性回歸系數(shù)θ,也就是Y=Xθ,??其中Y的維度為m x 1,X的維度為 m x n,而θ的維度為 n x 1, ? ?m代表樣本個(gè)數(shù), ? n代表樣本特征的維度??

? ?????#損失函數(shù):損失函數(shù)是用來評價(jià)模型的預(yù)測值f(x)與真實(shí)值Y的不一致程度,它是一個(gè)非負(fù)實(shí)值函數(shù)?通常用L(Y,f(x))表示,損失函數(shù)越小,模型的性能就越好 ?,優(yōu)化方法:最小二乘法和梯度下降(scikit中采用最小二乘??)

? ??????#正則化項(xiàng):為了防止損失函數(shù)過擬合的問題,一般會在損失函數(shù)中加上正則化項(xiàng),增加模型的泛化能力??

使用場景:

? ??????LinearRegression:只要數(shù)據(jù)線性相關(guān),LinearRegression是我們的首選,如果發(fā)現(xiàn)擬合或者預(yù)測的不夠好,再考慮其他的線性回歸庫?

Pipeline([??
? ? ? ? ? ? ? ? ? ? ('poly',?PolynomialFeatures()), ?
????????????????????('linear',?LinearRegression(fit_intercept=False))
????????????????])

LinearRegression 損失函數(shù)

? ??????RidgeCV(嶺回歸):只要數(shù)據(jù)線性相關(guān),用LinearRegression擬合的不是很好,需要正則化,可以考慮使用RidgeCV回歸,?如何輸入特征的維度很高,而且是稀疏線性關(guān)系的話,?RidgeCV就不太合適,考慮使用Lasso回歸類家族?

a為超參數(shù)?alphas=np.logspace(-3,?2,?50)?從給定的超參數(shù)a中選擇一個(gè)最優(yōu)的,logspace用于創(chuàng)建等比數(shù)列?本例中?開始點(diǎn)為10的-3次冪,結(jié)束點(diǎn)10的2次冪,元素個(gè)數(shù)為 ?
50,并且從這50個(gè)數(shù)中選擇一個(gè)最優(yōu)的超參數(shù) ?
linspace創(chuàng)建等差數(shù)列 ?
Ridge回歸中超參數(shù)a和回歸系數(shù)θ的關(guān)系,a越大,正則項(xiàng)懲罰的就越厲害,得到的回歸系數(shù)θ就越小,最終趨近與0 ?
如果a越小,即正則化項(xiàng)越小,那么回歸系數(shù)θ就越來越接近于普通的線性回歸系數(shù)??

Pipeline([
????????????????????('Poly', PolynomialFeatures()),
????????????????????('Linear', RidgeCV(alphas= np.logspace(-3, 2, 50), fit_intercept=False))
????????????????]),

?RidgeCV(嶺回歸)損失函數(shù)

? ??????LassoCV:Lasso回歸可以使得一些特征的系數(shù)變小,甚至還使一些絕對值較小的系數(shù)直接變?yōu)?,從而增強(qiáng)模型的泛化能力 ?
? ??????使用場景:對于高緯的特征數(shù)據(jù),尤其是線性關(guān)系是稀疏的,就采用Lasso回歸,或者是要在一堆特征里面找出主要的特征,那么 ?Lasso回歸更是首選了 ?

a為超參數(shù)?alphas=np.logspace(-3,?2,?50)?從給定的超參數(shù)a中選擇一個(gè)最優(yōu)的,logspace用于創(chuàng)建等比數(shù)列?本例中?開始點(diǎn)為10的-3次冪,結(jié)束點(diǎn)10的2次冪,元素個(gè)數(shù)為 ?
50,并且從這50個(gè)數(shù)中選擇一個(gè)最優(yōu)的超參數(shù) ?
linspace創(chuàng)建等差數(shù)列 ?
Ridge回歸中超參數(shù)a和回歸系數(shù)θ的關(guān)系,a越大,正則項(xiàng)懲罰的就越厲害,得到的回歸系數(shù)θ就越小,最終趨近與0 ?
如果a越小,即正則化項(xiàng)越小,那么回歸系數(shù)θ就越來越接近于普通的線性回歸系數(shù) ?

Pipeline([
????????????????????('Poly', PolynomialFeatures()),
????????????????????('Linear', LassoCV(alphas=np.logspace(-3,2,50), fit_intercept=False))
????????????]),


LassoCV 損失函數(shù)

? ??? ??ElasticNetCV:對超參數(shù)a和p使用交叉驗(yàn)證,幫助我們選擇合適的a和p ?
????????使用場景:ElasticNetCV類在我們發(fā)現(xiàn)用Lasso回歸太過(太多特征被稀疏為0),而Ridge回歸也正則化的不夠(回歸系數(shù)衰減太慢)的時(shí)候 ?

alphas=np.logspace(-3,?2,?50),?l1_ratio=[.1,?.5,?.7, .95, ?1]?ElasticNetCV會從中選出最優(yōu)的?a和p??

Pipeline([
????????????????????('Poly', PolynomialFeatures()),
????????????????????('Linear', ElasticNetCV(alphas= np.logspace(-3, 2, 50), l1_ratio=[.1, .5, .7, .95, 1], fit_intercept=False))
????????????])????

ElasticNetCV 損失函數(shù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容