分別使用普通線性迴歸、嶺迴歸、lasso迴歸預測鮑魚年齡
阿新 • • 發佈:2019-01-06
1.匯入相關模組
import numpy as np
import pandas as pd
from pandas import Series,DataFrame
#機器學習的普通線性模型、嶺迴歸模型、lasso模型
from sklearn.linear_model import LinearRegression,Ridge,Lasso
#匯入機器學習相關的資料集
import sklearn.datasets as datasets
2.獲取訓練資料
abalone=pd.read_csv('../day09/data/abalone.txt',sep='\t',header=None )
資料為自己本地資料,格式如下:
#前7列為特徵
train = abalone.loc[:,0:7]
#第8列為標籤
target = abalone[8]
#訓練資料
X_train = train[:4000]
Y_train = target[:4000]
#測試資料
x_test = train[4000:]
y_true = target[4000:]
3.確定學習模型
- 普通線性迴歸
line=LinearRegression()
- 嶺迴歸模型
ridge = Ridge(alpha=0.5)
- lasso迴歸模型
lasso = Lasso(alpha=0.003)
4.使用訓練資料對學習模型進行訓練
- 訓練普通線性迴歸模型
line.fit(X_train,Y_train)
- 訓練嶺迴歸模型
ridge.fit(X_train,Y_train)
- 訓練lasso迴歸模型
lasso.fit(X_train,Y_train)
5.使用測試資料,獲取預測結果
- 使用普通線性迴歸模型預測結果
y_pre_line = line.predict(x_test)
- 使用嶺迴歸模型預測結果
y_pre_ridge = line.predict(x_test)
- 使用lasso迴歸模型預測結果
y_pre_lasso = line.predict(x_test)
6.繪圖
- 普通線性迴歸
plt.plot(np.arange(y_pre_line.size),y_pre)
plt.plot(np.arange(y_true.size),y_true)
- 嶺迴歸
plt.plot(np.arange(y_pre_ridge.size),y_pre)
plt.plot(np.arange(y_true.size),y_true)
- lasso迴歸
plt.plot(np.arange(y_pre_lasso.size),y_pre)
plt.plot(np.arange(y_true.size),y_true)