模型正則化
當(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è)的比例