正則化

模型正則化

當(dāng)模型過擬合的時(shí)候會選擇正則化來解決這個(gè)問題。本質(zhì)上是在損失函數(shù)上加上W矩陣的和。當(dāng)使損失函數(shù)最小時(shí)不僅僅要讓MSE等函數(shù)變小,也需要讓W(xué)變小。當(dāng)W變小了,擬合問題也會改善。

嶺回歸

image

∝為超參數(shù),表示了W的比重,當(dāng)∝高的時(shí)候正則化力度會更高,也就是W會變得更小

from sklearn.linear_model import Ridge

def RidgeRegression(degree, alpha):
    return Pipeline([
        ("poly", PolynomialFeatures(degree=degree)),
        ("std_scaler", StandardScaler()),
        ("ridge_reg", Ridge(alpha=alpha))#∝超參數(shù)
    ])

ridge1_reg = RidgeRegression(20, 0.0001)
ridge1_reg.fit(X_train, y_train)

y1_predict = ridge1_reg.predict(X_test)
mean_squared_error(y_test, y1_predict)

LASSO回歸

image

類似嶺回歸,通過這個(gè)回歸得到的模型圖形上會比嶺回歸更傾向于是一條直線。因?yàn)樗呄蛴诎岩徊糠帧刈優(yōu)?。所以可以作為特征選擇使用

from sklearn.linear_model import Lasso

def LassoRegression(degree, alpha):
    return Pipeline([
        ("poly", PolynomialFeatures(degree=degree)),
        ("std_scaler", StandardScaler()),
        ("lasso_reg", Lasso(alpha=alpha))
    ])

lasso1_reg = LassoRegression(20, 0.01)
lasso1_reg.fit(X_train, y_train)

y1_predict = lasso1_reg.predict(X_test)
mean_squared_error(y_test, y1_predict)

彈性網(wǎng)

image

同時(shí)使用L1正則項(xiàng)(LASSO回歸)和L2正則項(xiàng)(嶺回歸),r為超參數(shù),用來做兩個(gè)的比例

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容