我正在尝试使用 R 评估简单预测模型的性能,方法是通过将预测结果分箱到定义的间隔中来离散化预测结果,然后将它们与相应的实际值(分箱)进行比较。
我有两个实际和预测的向量,如图所示:
> actual <- c(0,2,0,0,41,1,3,5,2,0,0,0,0,0,6,1,0,0,15,1)
> predicted <- c(3.38,98.01,3.08,4.89,31.46,3.88,4.75,4.64,3.11,3.15,3.42,10.42,3.18,5.73,4.20,3.34,3.95,5.94,3.99)
我需要在这里执行分箱。首先,“实际”的值被分解/离散到不同的级别,例如:0-5:级别 1 ** 6-10:级别 2 ** ... ** 41-45:级别 9
现在,我必须将“预测”的值也放入上述存储桶中。我尝试使用 R 中的cut()函数来实现这一点:
binCount <- 5
binActual <- cut(actual,labels=1:binCount,breaks=binCount)
binPred <- cut(predicted,labels=1:binCount,breaks=binCount)
但是,如果您看到预测 (98.01) 中的第二个元素被标记为 5,但它实际上并未落在所需的区间内。我觉得使用不同的binCount进行预测将无济于事。有人可以为此提出解决方案吗?