6.4 构建并评价回归模型

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

  按照研究方法划分,回归分析研究的范围大致如图所示:
在这里插入图片描述
  在回归模型中,自变量与因变量具有相关关系,自变量的值是已知的,因变量是要预测的。回归算法的实现步骤和分类算法基本相同,分为学习和预测2个步骤。学习是通过训练样本数据来拟合回归方程;预测则是利用学习过程中拟合出的回归方程,将测试数据放入方程中求出预测值。
  常用的回归模型如下:
在这里插入图片描述
  Sklearn库内部有不少回归算法,常用的回归算法如下:
在这里插入图片描述

我要用到的:
from sklearn.ensemble import RandomForestRegressor
from sklearn. ensemble import AdaBoostRegressor
from sklearn.ensemble import GradientBoostingRegressor
from xgboost import XGBRegressor
from lightgbm import LGBMRegressor

# 6.4 构建并评价回归模型
# 6.4.1 使用sklearn估计器构建线性回归模型
# 6-24 使用sklearn估计器构建线性回归模型
## 加载所需函数
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
## 加载boston数据
boston = load_boston()
X = boston['data']
y = boston['target']
names = boston['feature_names']
## 将数据划分为训练集、测试集
X_train, X_test, y_train, y_test =train_test_split(X,y,test_size=0.2, random_state=125)
# 建立线性回归模型
clf = LinearRegression().fit(X_train, y_train)
print("建立的模型为:\n", clf)
# 预测测试集结果
y_pre = clf.predict(X_test)
print('预测的前20个结果:', y_pre[:20])

在这里插入图片描述

# 6-25 回归结果可视化
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.sans-serif'] = 'SimHei'
fig = plt.figure(figsize=(10,6))  # 设定空白画布,并制定大小
plt.plot(range(y_test.shape[0]), y_test, color='blue', linewidth = 1.5, linestyle='-')
plt.plot(range(y_test.shape[0]), y_pre, color='red', linewidth = 1.5, linestyle='-.')
plt.xlim((0,102))
plt.ylim((0,55))
plt.legend(['真实值', '预测值'])
plt.savefig('F:/书籍/Python数据分析与应用/自己实现/6.4波士顿房价回归结果可视化.png')
plt.show()

在这里插入图片描述

6.4.2 评价回归模型

  回归模型的性能评估不同于分类模型,虽然都是对照真实值进行评估,但由于回归模型的预测结果和真实值都是连续的,所以不能够求取Precision、Recall和F1值等评价指标。
  回归模型评价指标:
在这里插入图片描述
  平均绝对误差、均方误差和中值绝对误差的值越靠近0,模型性能越好。可解释方差值和R方值则越靠近1,模型性能越好。

# 6.4.2 评价回归模型
from sklearn.metrics import explained_variance_score, mean_absolute_error, mean_squared_error, median_absolute_error, r2_score
mae = mean_absolute_error(y_test, y_pre)
print("平均绝对误差MAE =",mae)
mse = mean_squared_error(y_test, y_pre)
print("均方误差MSE =",mse)
r2 = r2_score(y_test, y_pre)
print("R2 =",r2)
med_abs = median_absolute_error(y_test, y_pre)
print("中值绝对误差 =",med_abs)
var = explained_variance_score(y_test, y_pre)
print("可解释方差 =",var)

在这里插入图片描述

小结

  本章主要根据数据分析的应用分类,重点介绍了对应的数据分析建模方法及实现过程。
  sklearn数据分析技术的基本任务主要体现在聚类、分类和回归三类。每一类又有对应的多种评估方法,能够评价所构建模型的性能优劣。
  通过这一章的学习,读者基本能够掌握常用的模型构建与评估方法,可在以后的数据分析过程中采用适当的算法并按所介绍的步骤实现综合应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清木!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值