scikit-learn中,回归模型的可视化评估是一个重要环节。
它帮助我们理解模型的性能,分析模型的预测能力,以及检查模型是否存在潜在的问题。
通过可视化评估,我们可以更直观地了解回归模型的效果,而不仅仅依赖于传统的评估指标。

1. 残差图

所谓残差,就是实际观测值与预测值之间的差值。

残差图是指以残差为纵坐标,以任何其他指定的量为横坐标的散点图。
如果残差图中描绘的点围绕残差等于0的直线上下随机散布,说明回归直线对原观测值的拟合情况良好。反之,则说明回归直线对原观测值的拟合不理想。

下面做一个简单的线性回归模型,然后绘制残差图。

from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import PredictionErrorDisplay fig, ax = plt.subplots(1, 2)
fig.set_size_inches(10, 4) X, y = make_regression(n_samples=100, n_features=1, noise=10)
ax[0].scatter(X[:, 0], y, marker="o")
ax[0].set_title("样本数据") # 初始化最小二乘法线性模型
reg = LinearRegression()
# 训练模型
reg.fit(X, y)
y_pred = reg.predict(X) ax[0].plot(X, y_pred, color="red")
display = PredictionErrorDisplay(y_true=y, y_pred=y_pred)
ax[1].set_title("残差图")
display.plot(ax=ax[1]) plt.show()


左边是随机生成的样本数据,其中的红线是训练之后拟合的线性模型。
右边是根据scikit-learn中提供的PredictionErrorDisplay模块生成的残差图

2. 对比图

对比图将实际目标值与模型预测值进行对比,直观地展示模型的预测能力。
通常,我们希望看到实际值预测值沿着一条\(y=x\)的直线分布,这意味着模型预测非常准确。

下面用一些混乱度高的样本,来看看对比图的效果。

from sklearn.datasets import make_regression
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.metrics import PredictionErrorDisplay fig, ax = plt.subplots(1, 2)
fig.set_size_inches(12, 6) # 混乱度高,noise=100
X, y = make_regression(n_samples=100, n_features=1, noise=100)
ax[0].scatter(X[:, 0], y, marker="o")
ax[0].set_title("样本数据") # 初始化最小二乘法线性模型
reg = LinearRegression()
# 训练模型
reg.fit(X, y)
y_pred = reg.predict(X) ax[0].plot(X, y_pred, color="red")
display = PredictionErrorDisplay(y_true=y, y_pred=y_pred)
ax[1].set_title("对比图")
display.plot(ax=ax[1], kind="actual_vs_predicted") plt.show()


原始样本比较混乱,线性模型很难拟合,所以看对比图就可以发现,真实值预测值差别很大。
越靠近对比图中间那个虚线的点,真实值预测值越接近。

换一个混乱程度低的样本,再看看对比图的效果。

# 混乱度 noise=10,比如上面那个示例降10倍
# 上面代码只改这一行,其它部分代码不用改
X, y = make_regression(n_samples=100, n_features=1, noise=10)


从图中也可以看出,这次的模型拟合效果要好很多。

3. 总结

可视化的图形向我们传达了模型预测的准确性、线性假设的满足程度、误差项的独立性以及特征对预测的影响程度等信息,让我们对模型有更深入的了解。

通过图形化的方式,帮助我们更直观地理解回归模型的性能,发现模型潜在的问题,指导我们改进模型。
不过,可视化评估虽然直观,但并不能完全替代传统的量化评估指标。
两者应该相互补充,共同构成对回归模型性能的全面评价。

【scikit-learn基础】--『回归模型评估』之可视化评估的更多相关文章

  1. (原创)(四)机器学习笔记之Scikit Learn的Logistic回归初探

    目录 5.3 使用LogisticRegressionCV进行正则化的 Logistic Regression 参数调优 一.Scikit Learn中有关logistics回归函数的介绍 1. 交叉 ...

  2. (原创)(三)机器学习笔记之Scikit Learn的线性回归模型初探

    一.Scikit Learn中使用estimator三部曲 1. 构造estimator 2. 训练模型:fit 3. 利用模型进行预测:predict 二.模型评价 模型训练好后,度量模型拟合效果的 ...

  3. 逻辑回归模型(Logistic Regression, LR)基础

    逻辑回归模型(Logistic Regression, LR)基础   逻辑回归(Logistic Regression, LR)模型其实仅在线性回归的基础上,套用了一个逻辑函数,但也就由于这个逻辑函 ...

  4. 『高性能模型』轻量级网络ShuffleNet_v1及v2

    项目实现:GitHub 参考博客:CNN模型之ShuffleNet v1论文:ShuffleNet: An Extremely Efficient Convolutional Neural Netwo ...

  5. 回归模型效果评估系列1-QQ图

    (erbqi)导语 QQ图全称 Quantile-Quantile图,也就是分位数-分位数图,简单理解就是把两个分布相同分位数的值,构成点(x,y)绘图:如果两个分布很接近,那个点(x,y)会分布在y ...

  6. 『高性能模型』HetConv: HeterogeneousKernel-BasedConvolutionsforDeepCNNs

    论文地址:HetConv 一.现有网络加速技术 1.卷积加速技术 作者对已有的新型卷积划分如下:标准卷积.Depthwise 卷积.Pointwise 卷积.群卷积(相关介绍见『高性能模型』深度可分离 ...

  7. 『高性能模型』轻量级网络MobileNet_v2

    论文地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks 前文链接:『高性能模型』深度可分离卷积和MobileNet_v1 一.Mobil ...

  8. 20165308『网络对抗技术』Exp5 MSF基础应用

    20165308『网络对抗技术』Exp5 MSF基础应用 一.原理与实践说明 实践内容 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路.具体需要完成: 一个主动攻击实 ...

  9. 2017-2018-2 20155303『网络对抗技术』Exp9:Web安全基础

    2017-2018-2 『网络对抗技术』Exp9:Web安全基础 --------CONTENTS-------- 一.基础问题回答 1.SQL注入攻击原理,如何防御? 2.XSS攻击的原理,如何防御 ...

  10. 2017-2018-2 20155303『网络对抗技术』Exp8:Web基础

    2017-2018-2 『网络对抗技术』Exp8:Web基础 --------CONTENTS-------- 一.原理与实践说明 1.实践具体要求 2.基础问题回答 二.实践过程记录 1.Web前端 ...

随机推荐

  1. SD 信用模拟检查增强

    一.业务流程中需要进行信用模拟检查,但逻辑梳理较为复杂,因此借用交货单创建时信用检查逻辑.但是当交货单信用检查通过时,不创建交货单,因此需要对BAPI:BAPI_OUTB_DELIVERY_CREAT ...

  2. [JAVA基础]后端原理

    后端原理 [[网站架构]5分钟了解后端工作原理.为什么Tomcat长时间运行会崩溃?高并发线程池怎么设置?] https://www.bilibili.com/video/BV1PB4y11795/? ...

  3. 2021暑假训练赛1 基于Codeforce#479(div3)

    A - Xor Sum 似乎是很明显的字典树问题(不会啊,最后搬了一个板子修修改改以后才过了 AcWing 相似题目:143. 最大异或对 最后得吐槽一下 memset 为什么能这么慢啊 Kora! ...

  4. 2018年第九届 蓝桥杯A组 C/C++决赛题解

    蓝桥杯历年国赛真题汇总:Here 1.三角形面积 已知三角形三个顶点在直角坐标系下的坐标分别为: (2.3, 2.5) (6.4, 3.1) (5.1, 7.2) 求该三角形的面积. 注意,要提交的是 ...

  5. 五、mongo备份篇 mongoexport、mongoimport 以及mongodump、mongorestore

    系列导航 一.linux单机版mongo安装(带密码验证) 二.mongo集群搭建 三.java连接mongo数据库 四.java对mongo数据库增删改查操作 五.mongo备份篇 mongoexp ...

  6. Android Emulator 画面闪烁

    Android 虚拟机经常会出现画面闪烁,可以通过修改设置解决. 打开虚拟机之后,点击 "..." 按钮.按照下图改为 "D3D11",冷重启虚拟机就好了.

  7. 基于AHB_BUS的eFlash控制器RTL

    eFlash控制器的RTL gvim 操作 gg -- 跳到首页 GG -- 按住shift,跳到尾部 ctrl+V --> 上下键选择行 --> shift+i -->输入 --& ...

  8. Laravel - 虚拟主机引入静态资源

    一. 注意: 引用的静态文件要放在根目录,不要放在assets目录下 二. 引入方法 1.  模板中引入 css      <link rel="stylesheet" hr ...

  9. Android——共享参数SharedPreferences

    4数据存储 共享参数SharedPreferences.数据库SQLite.SD卡文件.App的全局内存 4.1共享参数SharedPreferences SharedPreferences是一个轻量 ...

  10. [转帖]快速定位MySQL数据库当前消耗CPU最高的sql语句

    概述 One of our customers recently asked whether it is possible to identify, from the MySQL side, the ...