線性迴歸9-嶺迴歸API
阿新 • • 發佈:2021-09-16
1 API
1.1 Ridge
- sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True,solver="auto", normalize=False)
- 具有l2正則化的線性迴歸
- alpha:正則化力度,也叫 λ->λ取值:0~1 1~10
- solver:會根據資料自動選擇優化方法
= sag:如果資料集、特徵都比較大,選擇該隨機梯度下降優化 - normalize:資料是否進行標準化
- 屬性
- Ridge.coef_:迴歸權重
- Ridge.intercept_:迴歸偏置
1.2 RidgeCV
- sklearn.linear_model.RidgeCV(_BaseRidgeCV, RegressorMixin)
- 具有l2正則化的線性迴歸,可以進行交叉驗證
- coef_:迴歸係數
Ridge方法相當於SGDRegressor(penalty='l2', loss="squared_loss"),只不過SGDRegressor實現了一個普通的隨機梯度下降學習,推薦使用Ridge(實現了SAG)
2 程式碼實現
def liner_model2() : # 1.獲取資料 boston = load_boston() print(boston) # 2.資料處理 # 2.1 分割資料 x_train, x_test, y_train, y_test = train_test_split(boston.data, boston.target, test_size=0.2) # 3.特徵工程-資料標準化 transfer = StandardScaler() x_train = transfer.fit_transform(x_train) x_test = transfer.fit_transform(x_test) # 4.機器學習-線性迴歸(梯度下降) #estimator = Ridge(alpha=1.0) estimator = RidgeCV(alphas=(0.001,0.01,0.1,1,10,100)) estimator.fit(x_train, y_train) # 5.模型評估 y_predict = estimator.predict(x_test) print("預測值為:\n", y_predict) print("模型中的係數為:\n", estimator.coef_) print("模型中的偏置為:\n", estimator.intercept_) # 評價指標 均方誤差 error = mean_squared_error(y_test, y_predict) print("均方誤差:\n", error) return None