预测误差可视化

在数据分析中,预测误差的可视化是一个重要的步骤,它可以帮助理解模型的预测能力。本文将介绍如何加载糖尿病数据集,并创建一个线性回归模型的实例。将使用Python的scikit-learn库来完成这项工作。

首先,需要导入必要的库。scikit-learn库提供了许多用于数据挖掘和数据分析的工具,其中就包括今天要使用的线性回归模型和交叉验证方法。

from sklearn.datasets import load_diabetes from sklearn.linear_model import LinearRegression

接下来,将加载糖尿病数据集,并将其分为特征集X和目标变量y。

X, y = load_diabetes(return_X_y=True)

然后,将创建一个线性回归模型的实例,并使用交叉验证方法来预测目标变量。交叉验证是一种评估模型性能的技术,它通过将数据集分成多个子集,然后在每个子集上训练和测试模型来工作。在这个例子中,将使用10折交叉验证。

from sklearn.model_selection import cross_val_predict y_pred = cross_val_predict(lr, X, y, cv=10)

通过交叉验证,得到了一个与目标变量y相同大小的预测值数组。现在,可以使用PredictionErrorDisplay来可视化预测误差。将在左侧轴上绘制观测值y与模型预测的值y_pred,而在右侧轴上绘制残差(即观测值与预测值之间的差异)与预测值。

import matplotlib.pyplot as plt from sklearn.metrics import PredictionErrorDisplay fig, axs = plt.subplots(ncols=2, figsize=(8, 4)) PredictionErrorDisplay.from_predictions(y, y_pred=y_pred, kind="actual_vs_predicted", subsample=100, ax=axs[0], random_state=0) axs[0].set_title("实际值与预测值") PredictionErrorDisplay.from_predictions(y, y_pred=y_pred, kind="residual_vs_predicted", subsample=100, ax=axs[1], random_state=0) axs[1].set_title("残差与预测值") fig.suptitle("绘制交叉验证预测") plt.tight_layout() plt.show()

需要注意的是,在这个例子中,仅使用cross_val_predict进行可视化。如果不同的交叉验证折数在大小和分布上有所不同,那么使用cross_val_predict返回的连接预测值来定量评估模型性能可能会有问题。建议使用cross_val_score或cross_validate来计算每个折数的性能指标。

脚本的总运行时间为:(0分钟0.180秒)

相关示例

  • K-means假设演示
  • 回归模型中目标变量转换的影响
  • 二分K-means与常规K-means性能比较
  • 使用堆叠组合预测器
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485