机器学习(13)岭回归(线性回归的改进)
生活随笔
收集整理的這篇文章主要介紹了
机器学习(13)岭回归(线性回归的改进)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
一、基礎理論
API
二、嶺回歸:預測波士頓房價
總代碼
一、基礎理論
嶺回歸:帶有L2正則化的線性回歸。(為了解決過擬合)
對病態數據的擬合要強于最小二乘法
API
sklearn.linear_model.Ridge
?
?(橫坐標:正則化力度;? ? ? ? 縱坐標:權重系數)
二、嶺回歸:預測波士頓房價
# 3、嶺回歸
def Linear3():# 1、獲取數據集boston = load_boston()# print(boston)# 2、劃分數據集train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)# print(train_data)# 3、標準化transfer = StandardScaler()train_data = transfer.fit_transform(train_data)test_data = transfer.transform(test_data)# print(train_data)# 4、創建預估器estimator = Ridge() # 嶺回歸estimator.fit(train_data, train_target) # 訓練# 得到模型print('嶺回歸 權重系數:', estimator.coef_)print('嶺回歸 偏置:', estimator.intercept_)# 5、模型評估predict = estimator.predict(test_data)error = mean_squared_error(test_target, predict)print('嶺回歸 均方差:', error)
總代碼
# 線性回歸:波士頓房價預測(正規方程,梯度下降,嶺回歸)
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LinearRegression,SGDRegressor,Ridge
from sklearn.metrics import mean_squared_error# 1、正規方程優化
def Linear1():# 1、獲取數據集boston = load_boston()# print(boston)# 2、劃分數據集train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)# print(train_data)# 3、標準化transfer = StandardScaler()train_data = transfer.fit_transform(train_data)test_data = transfer.transform(test_data)# print(train_data)# 4、創建預估器,得到模型estimator = LinearRegression() #正規方程優化estimator.fit(train_data, train_target) #訓練# showprint('正規方程 權重系數:', estimator.coef_)print('正規方程 偏置:', estimator.intercept_)# 5、模型評估predict = estimator.predict(test_data)error = mean_squared_error(test_target, predict)print('正規方程 均方差:', error)# 2、梯度下降優化
def Linear2():# 1、獲取數據集boston = load_boston()# print(boston)# 2、劃分數據集train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)# print(train_data)# 3、標準化transfer = StandardScaler()train_data = transfer.fit_transform(train_data)test_data = transfer.transform(test_data)# print(train_data)# 4、創建預估器estimator = SGDRegressor() #梯度下降優化estimator.fit(train_data, train_target) #訓練# 得到模型print('梯度下降 權重系數:', estimator.coef_)print('梯度下降 偏置:', estimator.intercept_)# 5、模型評估predict = estimator.predict(test_data)error = mean_squared_error(test_target, predict)print('梯度下降 均方差:', error)# 3、嶺回歸
def Linear3():# 1、獲取數據集boston = load_boston()# print(boston)# 2、劃分數據集train_data, test_data, train_target, test_target = train_test_split(boston.data, boston.target, random_state=22)# print(train_data)# 3、標準化transfer = StandardScaler()train_data = transfer.fit_transform(train_data)test_data = transfer.transform(test_data)# print(train_data)# 4、創建預估器estimator = Ridge() # 嶺回歸estimator.fit(train_data, train_target) # 訓練# 得到模型print('嶺回歸 權重系數:', estimator.coef_)print('嶺回歸 偏置:', estimator.intercept_)# 5、模型評估predict = estimator.predict(test_data)error = mean_squared_error(test_target, predict)print('嶺回歸 均方差:', error)if __name__ == '__main__':Linear1() # 正規方程Linear2() # 梯度下降Linear3() # 嶺回歸
總結
以上是生活随笔為你收集整理的机器学习(13)岭回归(线性回归的改进)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习(12)欠拟合过拟合、模型分析与
- 下一篇: 机器学习(14)逻辑回归(理论)