欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

分别使用普通线性回归、岭回归、lasso回归预测鲍鱼年龄

程序员文章站 2022-05-02 16:35:32
...

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)

数据为自己本地数据,格式如下:
分别使用普通线性回归、岭回归、lasso回归预测鲍鱼年龄

#前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)

分别使用普通线性回归、岭回归、lasso回归预测鲍鱼年龄

  • 岭回归
plt.plot(np.arange(y_pre_ridge.size),y_pre)
plt.plot(np.arange(y_true.size),y_true)

分别使用普通线性回归、岭回归、lasso回归预测鲍鱼年龄

  • lasso回归
plt.plot(np.arange(y_pre_lasso.size),y_pre)
plt.plot(np.arange(y_true.size),y_true)

分别使用普通线性回归、岭回归、lasso回归预测鲍鱼年龄