估计回归模型的不确定性

数据挖掘 机器学习 Python 深度学习 机器学习模型 天蓝色毫升
2022-03-12 10:08:01

给定一个具有 n 个特征的回归模型,我如何衡量模型对每个预测的不确定性或置信度?假设对于一个特定的预测,准确度是惊人的,但对于另一个预测则不然。我想找到一个指标,让我决定对于每一帧我是否想“听”模型。

2个回答

这是评估,它是通过实验完成的:使用包含真实目标值的新实例测试集,应用模型并测量所有实例的误差(例如,使用 MAE、MSE、RMSE...)。

假设测试是数据的足够大的代表性样本,则可以通过这种方式从统计上估计模型的质量。例如,我们可以说一个实例在真实值的x

但一般来说,不可能知道预测对于特定实例有多好:根据定义,模型给出了最好的预测。如果模型能够知道其预测不好,那么从逻辑上讲,它应该给出不同的预测。请注意,如果这是可能的,那么迭代地构建一个近乎完美的模型也是可能的:只要预测不好,再试一次。

作为记录,有一些特定于任务的案例试图估计监督模型的置信度(例如MT 质量估计)。这是通过建立一个新的监督模型来预测置信度分数来完成的。当然,这种新模型也会出错。

为了回答我的问题,我将使用三种类型的模型 -

  1. KNN 回归
  2. 回归树
  3. 复杂模型,如 NN 或 SVM

KNN 回归

它是一个非参数回归模型,置信度可以使用平均绝对误差或均方误差显式建模。在测试时,对于给定的实例,将找到 K 个最近的实例,并且根据它们与给定实例的平均距离,我们可以计算平均绝对误差或均方误差。我们可以使用这些指标估计置信度。较高的平均绝对误差或均方误差将导致较低的置信度值,反之亦然。

回归树

在训练期间构建树时,我们通过将关联实例的平均目标值分配给节点来制作叶子节点。在这样做的同时,我们还可以分配和维护平均目标值与节点关联实例的目标值之间的平均平均绝对误差或均方误差。类似于取该节点实例的目标值的标准差。因此,在测试时,对于给定的实例,当树到达特定的叶节点时,连同回归目标值,我们还将获得平均绝对误差或均方误差,我们可以预期最终达到这些值的实例节点。正如 KNN 回归中所解释的,我们可以相应地对置信度进行建模。

复杂模型,如 NN 或 SVM

上面讨论的这些简单技术也可以应用于这些模型。就像 KNN 回归一样,在测试时,对于一个测试实例,我们可能能够从训练集中找到最近的 K 个实例,并计算平均绝对误差或均方误差来获得估计的置信度。但是,我们可以做的还有很多。您可以在此线程(https://stats.stackexchange.com/questions/247551/how-to-determine-the-confidence-of-a-neural-network-prediction)上阅读更多内容,其中人们讨论的内容与您非常相似可能会觉得有用。