kNN 回归的预测区间

机器算法验证 回归 k-最近邻 预测区间
2022-02-28 22:33:28

我想计算 kNN 回归所做预测的预测区间。我找不到任何明确的参考来确认,所以我的问题是——这种计算预测区间的方法是否正确?

我有一个参考数据集,其中每一行都是一个位置(例如城市)。我有两个特征(例如,x1 和 x2),描述了该地点人口的样本(例如,x1 可能是居民的平均收入)。每个位置的样本量不同。我根据 x1 和 x2 预测一个目标变量(例如,y,例如该城市的汽车总数)。

新位置 Z 的预测是通过根据 x1 和 x2(欧几里得距离)找到 Z 的 k 个最近邻居,并对这 k 个邻居的目标变量求平均值。

我将预测区间计算为 y* +- t*s,其中 s 是目标在 k 个最近邻中的标准差,t 来自标准正态分布(例如,对于 95% 的预测区间 t=1.96)。我忽略了 x1 和 x2,也忽略了 x1 和 x2 是在不同样本上估计的事实。这种方法有意义吗?

1个回答

我想你有两个选择。

  1. 引导程序

通过对原始数据集进行替换抽样,生成 100 个合成数据集。对每个新数据集运行 knn 回归并对点预测进行排序。置信区间就是第 5 点和第 95 点预测之间的距离。

  1. 伪残差

基本上,您要么使用汇总方差估计器(如果您在同一有多个观察值),要么使用伪残差来估计方差。假设同方差和正态误差,您可以使用 t 分布,这样: 其中是预测的平均值,是 t 分布的自由度,是邻域中的点数。x
y¯i±t(h,α)σni
y¯h=n2nni

你可以在这里阅读更多关于它的信息