分别使用普通线性回归、岭回归、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)
数据为自己本地数据,格式如下:
#前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)
上一篇: 机器学习——逻辑回归