我已经实现了几种回归预测方法,现在我想对其进行比较。我选择了MAE,RMSE和SMAPE评级。我的结果如下所示:
当我绘制预测并将其与测试集进行比较时,我可以看到方法1>方法2>方法3。这也可以从MAE和RMSE的值中看出。但是我认为,SMAPE越低,预测越好。
我是否误解了SMAPE? 由于phyton中没有预定义的方法,因此我的SMAPE计算如下:
#include <stdio.h>
#include<stdlib.h>
struct info
{
int age;
char name[30];
};
int main()
{
struct info *Ptr=NULL;
int i=0, num;
char c='Y';
while(c=='Y'||c=='y') {
Ptr=realloc(Ptr,(i+1)*sizeof(struct info));
if(Ptr==NULL)
break;
printf("Enter name and age:\n");
scanf("%s %d",&Ptr[i].name,&Ptr[i].age);
printf("Do you want to cont?\n");
scanf(" %c",&c);
i++;
}
num=i;
for(i = 0; i < num ; ++i)
printf("Name = %s, Age = %d\n", (Ptr+i)->name, (Ptr+i)->age);
free(Ptr);
return 0;
}
还是计算错误?
预先感谢
答案 0 :(得分:0)
好的,也许该方法是错误的..相反,我使用了Kaggle的这种方法:
from numba import jit
import math
@jit
def smape_fast(y_true, y_pred):
out = 0
for i in range(y_true.shape[0]):
a = y_true[i]
b = y_pred[i]
c = a+b
if c == 0:
continue
out += math.fabs(a - b) / c
out *= (200.0 / y_true.shape[0])
return out
URL 现在,与MAE和RMSE相比,SMAPE的结果看起来更合理