回归模型的最小/最大精度的含义

机器算法验证 r 回归 准确性 马佩
2022-03-22 06:31:43

我正在尝试测量我在 R 中安装的一些线性回归模型的准确性。我遇到了这个页面,提供了一种称为技术的技术Min_Max Accuracy,解释为:

Min_Max Accuracy => mean(min(actual, predicted)/max(actual, predicted))

在 R 中:

min_max_accuracy <- mean(apply(actuals_preds, 1, min) / apply(actuals_preds, 1, max))  

actuals_pred由此衍生:

set.seed(100)  # setting seed to reproduce results of random sampling
trainingRowIndex <- sample(1:nrow(cars), 0.8*nrow(cars))  # row indices for training data
trainingData <- cars[trainingRowIndex, ]  # model training data
testData  <- cars[-trainingRowIndex, ] 
lmMod <- lm(dist ~ speed, data=trainingData)  # build the model
distPred <- predict(lmMod, testData)  # predict distance
actuals_preds <- data.frame(cbind(actuals=testData$dist, predicteds=distPred))

但是,我无法理解Min_Max Accuracy代表什么。你能告诉我它代表什么吗?有没有我可以查到的这个概念的同义词?谢谢

3个回答

让我们分解代码:

apply(actuals_preds, 1, min)

对于每一行,取预测和结果的最小值。相似地,

apply(actuals_preds, 1, max)

取最大值。

假设测试结果是y1,,yn,并且预测是y^1,,y^n. 对于任何i,有两种情况:

第一种情况是y^i=yiϵi对于一些ϵi0. 在这种情况下,行i将增加平均值,术语

yiϵiyi=1ϵiyi.

第二种情况是y^i=yi+ϵi对于一些ϵi0. 在这种情况下,行i将增加平均值,术语

yiyi+ϵi1ϵiyi.

近似值适用于ϵi<yi由于系列扩展11+x.

最后

mean(min(actual, predicted)/max(actual, predicted))

显然,取所有这些项的平均值。

预测越好,它就会越高(接近完美的预测大约为 1)。

MinMax 告诉您模型的预测偏离了多远。对于完美模型,此度量为 1.0。基于样本外性能,度量值越低,模型越差。

只需查看公式以及它是如何在 R 中实现的。如果对于测试集的每个实例,预测(predicteds数据框中的列)完全等于实际(actuals),则行最小值将与行最大值相同,因此比率所有行都是 1.0。

如果你的模型很糟糕,有时它的预测太高,有时又太低,最小/最大比率将远小于 1.0。因此,其平均值将小于 1.0。

实际值和预测值都在同一个数据集中。Min_Max_accuracy 将找出每一行的准确率。可以认为是模型的准确率。它会小于 0,如 .69034,则准确率为 69%。