中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
寫給初學(xué)者的LASSO回歸

LASSO回歸是對回歸算法正則化的一個例子。正則化是一種方法,它通過增加額外參數(shù)來解決過擬合問題,從而減少模型的參數(shù)、限制復(fù)雜度。正則化線性回歸最常用的三種方法是嶺回歸、最小絕對值收斂和選擇算子(LASSO)以及彈性網(wǎng)絡(luò)回歸。

在本文中,我將重點(diǎn)介紹LASSO,并且對嶺回歸和彈性網(wǎng)絡(luò)回歸做簡單的擴(kuò)展。

假設(shè)我們想在一個數(shù)據(jù)集上建立一個正則化回歸模型,這個數(shù)據(jù)集包含n個觀察和m個特征。

LASSO回歸是一個L1懲罰模型,我們只需將L1范數(shù)添加到最小二乘的代價(jià)函數(shù)中:

看這里

通過增大超參數(shù)α的值,我們加強(qiáng)了模型的正則化強(qiáng)度,并降低了模型的權(quán)重。請注意,沒有把截距項(xiàng)w0正則化,還要注意α=0對應(yīng)于標(biāo)準(zhǔn)回歸。

通過調(diào)整正則化的強(qiáng)度,某些權(quán)重可以變?yōu)榱?,這使得LASSO方法成為一種非常強(qiáng)大的降維技巧。

LASSO算法

  • 對于給定的α,只需把代價(jià)函數(shù)最小化,即可找到權(quán)重或模型參數(shù)w。
  • 然后使用下面的等式計(jì)算w(不包括w0)的范數(shù):

案例研究:使用游輪數(shù)據(jù)集預(yù)測船員人數(shù)

我們將使用郵輪數(shù)據(jù)集cruise_ship_info.csv來演示LASSO技術(shù)

本案例已經(jīng)發(fā)布在實(shí)驗(yàn)平臺,請關(guān)注微信公眾號:老齊教室。并回復(fù): #姓名+手機(jī)號+案例# 獲取。 注意: # 必須要有 。

1.導(dǎo)入必要的庫

import numpy as npimport pandas as pdimport matplotlib.pyplot as plt

2.讀取數(shù)據(jù)集并顯示列

df = pd.read_csv('cruise_ship_info.csv')df.head()

3.選擇重要的變量

從《數(shù)據(jù)準(zhǔn)備和特征工程》中的有關(guān)闡述可知,協(xié)方差矩陣圖可用于特征選擇和降維。從前述數(shù)據(jù)集中發(fā)現(xiàn),在6個預(yù)測特征( ['age’, 'tonnage’, 'passengers’, 'length’, 'cabins’, 'passenger_density’] )中,如果我們假設(shè)重要特征與目標(biāo)變量的相關(guān)系數(shù)為0.6或更大,那么目標(biāo)變量“crew”與4個預(yù)測變量“tonnage”, “passengers”, “l(fā)ength, and “cabins”的相關(guān)性很強(qiáng)。因此,我們能夠?qū)⑻卣骺臻g的維數(shù)從6減少到4。

cols_selected = ['Tonnage', 'passengers', 'length', 'cabins','crew']df[cols_selected].head()
X = df[cols_selected].iloc[:,0:4].values    # features matrix y = df[cols_selected]['crew'].values        # target variable

4. 實(shí)現(xiàn)LASSO回歸

a.將數(shù)據(jù)集分成訓(xùn)練集和測試集

from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split( X, y, test_size=0.4, random_state=0)

b.特征數(shù)據(jù)區(qū)間化

from sklearn.preprocessing import StandardScalersc_y = StandardScaler()sc_x = StandardScaler()y_std = sc_y.fit_transform(y_train[:, np.newaxis]).flatten()X_train_std = sc_x.fit_transform(X_train)X_test_std = sc_x.transform(X_test)y_train_std = sc_y.fit_transform(y_train[:, np.newaxis]).flatten()

c.實(shí)現(xiàn)LASSO回歸

from sklearn.linear_model import Lassofrom sklearn.metrics import r2_scorealpha = np.linspace(0.01,0.4,10)r2_train =[]r2_test =[]norm = []alpha = np.linspace(0.01,0.4,10)for i in range(10): lasso = Lasso(alpha = alpha[i]) lasso.fit(X_train_std,y_train_std) y_train_std = lasso.predict(X_train_std) y_test_std = lasso.predict(X_test_std) r2_train = np.append(r2_train, r2_score(y_train,sc_y.inverse_transform(y_train_std))) r2_test = np.append(r2_test, r2_score(y_test,sc_y.inverse_transform(y_test_std))) norm = np.append(norm,np.linalg.norm(lasso.coef_))

d.可視化結(jié)果

plt.figure(figsize=(8,6))plt.scatter(alpha,r2_train,label='r2_train')plt.plot(alpha,r2_train)plt.scatter(alpha,r2_test,label='r2_test')plt.plot(alpha,r2_test)plt.scatter(alpha,norm,label = 'norm')plt.plot(alpha,norm)plt.ylim(-0.1,1)plt.xlim(0,.43)plt.xlabel('alpha', size = 14)plt.ylabel('R2_score',size = 14)plt.legend()plt.show()

我們觀察到,隨著正則化參數(shù)α的增加,回歸系數(shù)的范數(shù)變得越來越小。這意味著更多的回歸系數(shù)被強(qiáng)制為零,這會增加偏差(模型過度簡化)。α保持較低值時,比如α=0.1或更低時,是偏差和方差的最佳平衡點(diǎn)。在決定使用哪種降維方法之前,應(yīng)將該方法與主成分分析法(PCA)進(jìn)行比較。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
直播案例 | 使用回歸模型預(yù)測鮑魚年齡
「周末AI課堂」過擬合問題(代碼篇)|機(jī)器學(xué)習(xí)你會遇到的“坑”
Python遇見機(jī)器學(xué)習(xí) ---- 多項(xiàng)式回歸 Polynomial Regression
5.多項(xiàng)式回歸與模型泛化
使用CNN和Python實(shí)施的肺炎檢測
數(shù)學(xué)推導(dǎo) 純Python實(shí)現(xiàn)機(jī)器學(xué)習(xí)算法13:Lasso回歸
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服