sklearn 线性回归_使用sklearn估计器构建线性回归模型

常见的回归模型有:线性回归、非线性回归、Logistic回归、岭回归、主成分回归。

sklearn库内部的常用回归算法(算法名称):线性回归、支持向量回归。最近岭回归、回归决策树、随机森林回归、梯度提升回归树。 以boston数据集为例,使用sklearn估计器构建线性回归模型。代码如下:

#加载函数
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston#boston数据
from sklearn.model_selection import train_test_split
boston=load_boston()
boston_data=boston['data']
boston_target=boston['target']
boston_data_train, boston_data_test, boston_target_train, boston_target_test =
train_test_split(boston_data,boston_target, test_size=0.2,random_state=8)#划分测试集、训练集
mx=LinearRegression().fit(boston_data_train,boston_target_train)#建立线性回归模型
print('建立的模型为:n',mx)

代码输出结果如下:

aba8912eeaba45d752823167a9211fd7.png

通过预测可以得到预测结果,代码如下:

pred=mx.predict(boston_data_test)#预测测试集结果
print('预测前20个结果:n',pred)

预测前20个输出的结果如下:

a6d94f698975a9746d8c5a0d501758e5.png

如果想要直观的看到预测结果,可以尝试用折线图,这个能够较为直观的看到线性回归模型的效果,也可以直观的比较预测值与原值的差别,绝大多数的拟合效果都会比较良好,与实际差别不大。

import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.sans-serif']='SimHei'#设置字体为SimHei显示中文
fig=plt.figure(figsize=(13,7))
plt.plot(range(boston_target_test.shape[0]),boston_target_test,color="red",linestyle="-")
plt.plot(range(boston_target_test.shape[0]),pred,color="blue",linestyle="-.")
plt.legend(['真实值','预测值'])
plt.show()

输出结果如下:

2e004c36ebbbd346e26b57923c07a077.png

评价回归模型

常用的回归模型评价指标有(方法名称):

平均绝对误差、均方误差、中值绝对误差、可解释方差值、R平方 。

其中平均绝对误差,均方误差和中值绝对误差的值越靠近零,模型性能越好。可解释方差值和R平方值越靠近1,性能越好。

下面用代码演示一下用评价方法进行评价:

from sklearn.metrics import explained_variance_score,
mean_squared_error,
median_absolute_error,
mean_absolute_error,
r2_score
print('数据线性回归模型的平均绝对误差为:',mean_absolute_error(boston_target_test,pred))
print('数据线性回归模型的均方误差为:',mean_squared_error(boston_target_test,pred))
print('数据线性回归模型的中值绝对误差为:',median_absolute_error(boston_target_test,pred))
print('数据线性回归模型的可解释方差值为:',explained_variance_score(boston_target_test,pred))
print('数据线性回归模型的R平方值为:',r2_score(boston_target_test,pred))

输出结果如下:

5780faca44668994bf0803810baf3e4f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值