机器学习的练功方式(十)——岭回归
生活随笔
收集整理的這篇文章主要介紹了
机器学习的练功方式(十)——岭回归
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 十 嶺回歸
- 10.1 嶺回歸的接口
- 10.2 嶺回歸處理房價預(yù)測
十 嶺回歸
嶺回歸是線性回歸的改進,有時候迫不得已我們的參數(shù)確實不能少,這時候過擬合的現(xiàn)象就可能發(fā)生。為了避免過擬合現(xiàn)象的發(fā)生,既然不能從減少參數(shù)上面下手,那我們轉(zhuǎn)而在線性回歸的最后面添加一個罰項,罰項有時也被稱為正則化項,其主要用于控制模型的平滑度,當(dāng)模型參數(shù)越多,模型越復(fù)雜,那么罰項懲罰值就越大。
罰項可以是L1范數(shù)也可以是L2范數(shù),對于使用L1范數(shù)的回歸我們一般叫做Lasso線性回歸。而對于使用L2范數(shù)的回歸我們一般叫做嶺回歸。在這一講中,我們主要講述嶺回歸。
10.1 嶺回歸的接口
Ridge回歸通過對系數(shù)的大小施加懲罰來解決普通線性模型使用最小二乘法帶來的一些問題。
sklearn.linear_model.Ridge(alpha = 1.0,fit_intercept = True,solver = “auto”,normalize = False)
- 具有L2正則化的線性回歸
- alpha:正則化力度,也叫λλλ
- λ取值為0~1或 1~10
- solver:會根據(jù)數(shù)據(jù)自動選擇優(yōu)化方法
- SAG:如果數(shù)據(jù)集、特征都比較大,那么建議選擇sag作為優(yōu)化策略
- normalize:數(shù)據(jù)是否進行標準化
- normalize = False:可以在fit之前調(diào)用preprocessing.StandardScaler標準化數(shù)據(jù)
- Ridge.coef_:回歸權(quán)重
- Ridge.intercept_:回歸偏置
從圖上來看,當(dāng)alpha數(shù)值越高,則懲罰力度越大,權(quán)重系數(shù)越小,曲線越平滑。
10.2 嶺回歸處理房價預(yù)測
讓我們用嶺回歸來預(yù)測波士頓房價吧。
from sklearn.datasets import load_boston from sklearn.model_selection import train_test_split from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_errordef load_data():"""加載數(shù)據(jù)集"""boston_data = load_boston()x_train, x_test, y_train, y_test = train_test_split(boston_data.data, boston_data.target, random_state=22)return x_train, x_test, y_train, y_testdef ridge_linear_model():"""用嶺回歸做預(yù)測"""x_train, x_test, y_train, y_test = load_data()# 預(yù)估器estimator = Ridge(normalize=True)estimator.fit(x_train, y_train)# 得出模型print("權(quán)重系數(shù)為:\n", estimator.coef_)print("偏置為:\n", estimator.intercept_)# 模型評估y_predict = estimator.predict(x_test)print("預(yù)測房價:\n", y_predict)error = mean_squared_error(y_test, y_predict)print("嶺回歸——均方誤差為:\n", error)ridge_linear_model()總結(jié)
以上是生活随笔為你收集整理的机器学习的练功方式(十)——岭回归的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 归并排序 Java实现
- 下一篇: BF533和触摸屏接口芯片TSC2200