在某些情况下,如果值范围很宽,回归中的最佳选择是使用MeanAbsolutePercentageError。例如,有时我需要预测输出值在1到1000的范围内,我的误差大约为2%。所以:
对于1,值2的误差为200%
对于1000,值2的误差为0.2%
如果高值拟合得很好,低值拟合就很糟糕。
来源:
https://en.wikipedia.org/wiki/Mean_absolute_percentage_error
https://www.tensorflow.org/api_docs/python/tf/keras/metrics/MeanAbsolutePercentageError
是否可以定义自己的误差函数并将其添加到Ludwig中?
3条答案
按热度按时间4uqofj5v1#
嘿,@PeterPirog,是的,可以向Ludwig添加新的损失函数和指标。目前这涉及到对Ludwig代码库做一些更改,但我们正在努力寻找未来使其更容易扩展的方法。
损失函数定义的地方在这里:loss_modules.py
指标定义的地方在这里:metric_modules.py
损失函数注册到特征类型的地方:numerical_feature.py
请注意,Ludwig的主分支正在使用未发布的PyTorch后端。如果您想为TensorFlow做出这个改变,有一个tf-legacy分支,我们将从那里发布v0.4.1版本。
tzdcorbm2#
我尝试添加MAPE误差,但是有一些错误:
https://github.com/PeterPirog/ludwig/blob/add_mape/ludwig/modules/metric_modules.py
https://github.com/PeterPirog/ludwig/blob/add_mape/ludwig/modules/loss_modules.py
https://github.com/PeterPirog/ludwig/blob/add_mape/ludwig/features/numerical_feature.py
bwitn5fc3#
你好,彼得·皮罗格,你是否能解决这个问题?
PS:我无法访问你在之前的评论中发布的GitHub链接。