python - 如何组合不同指标的结果并从中生成分数?
问题描述
我有以下数据框,它使用不同的指标显示了我的 6 个模型的性能。我想从所有指标的结果中生成一个分数,然后检测最佳模型。我不能使用平均值,因为指标的方向不同。(例如,AUC 越高越好,但 MAE、MSE 和 RMSE 越低越好)
Model RMSE MAE MSE AUC Score
0 a 0.29 0.187 0.084 0.65 ?
1 b 0.29 0.187 0.084 0.649 ?
2 c 0.299 0.17 0.09 0.64 ?
3 d 0.308 0.149 0.095 0.663 ?
4 e 0.314 0.143 0.099 0.675 ?
5 f 0.319 0.146 0.102 0.682 ?
如果我只是将它们全部相乘,然后将它们乘以 1/AUC 并使用这个值作为分数,这是否合理?
有任何想法吗?
解决方案
这取决于您要解决的目标函数和问题。
通常,“最佳”模型在使用某些指标时比其他模型表现更好,但在其他指标中表现不佳。例如在您的示例中,RMSE 的增加会提供更好的 AUC 但更差的 MAE。查看 scikit 文档,了解您可能使用的大量错误指标列表:https ://scikit-learn.org/stable/modules/model_evaluation.html 。您将需要决定是否所有人都获得相同的权重。
您可能希望考虑 bagging,将所有模型的加权组合结合起来,而不是只选择一个模型来减少处理样本外数据时的泛化错误。
还可以考虑生成遵循训练数据集随机分布的样本外数据。您可能会发现样本外数据为每个模型生成的误差指标与样本内结果完全不同,这些样本外测试的蒙特卡罗模拟将使您更清楚地了解哪些模型和要关注的错误指标。
推荐阅读
- python - 使用 boto3 更改“DEFAULT_FILE_STORAGE”导致高 TTFB(等待时间)
- python - Python 中的 Youtube 数据 API nextPageToken 循环
- python - 与用零替换现有数组的值相比,为什么 Numpy 在创建零数组时要快得多?
- discord - 使用 discord.js 发送随机图像?
- r - ctree CART 条件树中的权重与权重 (party::ctree)
- xamarin.forms - 在 Xamarn 表单中的 CarouselView 中加载 ContentView
- gitlab - 在 Terraform 中,如何使用 GitLab CI 在不同的 AWS 账户上运行相同的脚本
- python - 如何使用正则表达式搜索并避免列表中的条目?
- python - Django 1.9项目级联删除的可能来源?
- python - 两个数字总和:为什么没有人这样做