現(xiàn)在位置:主頁(yè) > 國(guó)內(nèi) > 利用SKLearn重建線性模型

利用SKLearn重建線性模型

作者:編輯 ? 時(shí)間:2018-07-27 ? 瀏覽:人次

雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題 Regularization of Linear Models with SKLearn ,作者為 Robert John 。

翻譯 | 姚秀清 整理 | MY

過(guò)擬合模型

線性模型通常是訓(xùn)練模型的一個(gè)比較好的起點(diǎn)。但是由于許多數(shù)據(jù)集的自變量和因變量之間并不是線性關(guān)系,所以經(jīng)常需要?jiǎng)?chuàng)建多項(xiàng)式模型,導(dǎo)致這些模型很容易過(guò)擬合。正則化則是減少多項(xiàng)式模型過(guò)擬合的一種方法。

我們從構(gòu)建基線模型開(kāi)始來(lái)確定所需的改進(jìn)。本文中我們將使用 Kaggle 中流行的 Boston Housing 數(shù)據(jù)集。

讓我們導(dǎo)入所依賴的庫(kù)并加載訓(xùn)練數(shù)據(jù)集。

將數(shù)據(jù)分成訓(xùn)練集和驗(yàn)證集,其中30%的數(shù)據(jù)用于驗(yàn)證。我們將使用隨機(jī)狀態(tài)使我們的實(shí)驗(yàn)可復(fù)制。

讓我們通過(guò)訓(xùn)練線性回歸模型建立基線。

上述模型應(yīng)得出約 72% 的訓(xùn)練精度和測(cè)試精度,以及 4.587 的 RMSE 。 訓(xùn)練的下一個(gè)模型應(yīng)具有更高的準(zhǔn)確度和更低的 RMSE ,其結(jié)果要優(yōu)于該模型。

我們需要構(gòu)造一些新的特征。 具體來(lái)說(shuō)就是通過(guò)現(xiàn)有的一些特征來(lái)構(gòu)造多項(xiàng)式特征,并通過(guò)提升特征到指定的冪來(lái)實(shí)現(xiàn)。幸運(yùn)的是,scikit-learn 已經(jīng)實(shí)現(xiàn)了該功能,我們不需要自己實(shí)現(xiàn)。

然后我們可以標(biāo)準(zhǔn)化數(shù)據(jù)。 這一步將使我們的數(shù)據(jù)縮小至 0 到 1 之間。這使得我們?cè)谔嵘β蕰r(shí)可以使用合理的數(shù)字。

最后,由于需要在訓(xùn)練集、驗(yàn)證集和測(cè)試集上執(zhí)行相同的操作,我們引入了管道。 管道可以管理我們的流程,以便重復(fù)執(zhí)行相同的步驟。

總結(jié)一下,我們一開(kāi)始縮放數(shù)據(jù),然后構(gòu)造多項(xiàng)式特征,最后訓(xùn)練線性回歸模型。

運(yùn)行代碼后,我們將獲得約 94.75% 的訓(xùn)練精度,46.76% 的測(cè)試精度。 這樣的結(jié)果通常是過(guò)擬合的, 所以新創(chuàng)建的特征不一定是理想的特征。

現(xiàn)在我們將在新的數(shù)據(jù)上使用正則化。

L2 正則化或嶺回歸

為了理解嶺回歸,我們需要注意在模型系數(shù)被訓(xùn)練時(shí)以及梯度下降期間發(fā)生了什么。 在訓(xùn)練時(shí),我們使用了學(xué)習(xí)率和梯度及梯度更新規(guī)則來(lái)更新我們的初始權(quán)重。 嶺回歸為更新增加了一個(gè)懲罰項(xiàng),因此縮小了權(quán)重的大小。 scikit-learn 的 Ridge 類(lèi)就實(shí)現(xiàn)了該功能。

這次我們使用 Ridge 來(lái)創(chuàng)建一個(gè)新的管道,通過(guò)傳入一個(gè)參數(shù) alpha 來(lái)指定我們的正則化強(qiáng)度。 這個(gè)值可能非常小,比如 0.1,也有可能很大。 alpha 值越大,模型的變化越小。

通過(guò)運(yùn)行代碼,我們應(yīng)該具有約 91.8% 的訓(xùn)練精度和 82.87% 測(cè)試精度。 這是我們改進(jìn)后的基線線性回歸模型。

讓我們嘗試一些別的方法。

L1 正則化或 Lasso 回歸

通過(guò)創(chuàng)建多項(xiàng)式模型,我們構(gòu)造了新的特征。但是需要確認(rèn)哪些特征與我們的模型有關(guān),哪些無(wú)關(guān)。

L1 正則化試圖通過(guò)將某些系數(shù)的值降低到 0 來(lái)回答這個(gè)問(wèn)題,這消除了我們模型中最不重要的特征。 我們將使用 Lasso 創(chuàng)建一個(gè)類(lèi)似于上面的管道, 你可以使用范圍是 0.1 到 1 的 alpha 值。

上述代碼使我們的訓(xùn)練精度達(dá)到 84.8%,測(cè)試精度達(dá)到 83%。 這比我們之前訓(xùn)練的模型要好一些。

此時(shí),您可以通過(guò) RMSE 來(lái)評(píng)估模型。 不要忘記閱讀我們引用的文檔。

我希望這個(gè)教程對(duì)你很有幫助。

原文鏈接:https://medium.com/coinmonks/regularization-of-linear-models-with-sklearn-f88633a93a2

誕生啦!

轉(zhuǎn)載請(qǐng)保留原文鏈接:http://www.parkingblocks4less.com/a/guona/20180727/9877.html上一篇:上一篇:琺瑯牙登陸中國(guó) 柏勒氏全球版圖繼續(xù)擴(kuò)張
下一篇:下一篇:沒(méi)有了