class 错误具有不同权重时的 multiclass classification 的自定义指标

Custom metrics for multiclass classification when class errors have different weights

我有一个多类分类问题(例如,目标变量由 4 个不同的结果构成:产品 A、产品 B、产品 C 和无产品)。并非所有的错误都是平等的:例如,如果真实标签是 "Product A" 而预测是 "NO Product" 则问题不大,而如果真实标签是 "Product C" 则影响错误要大得多。基本上,我必须将这些信息插入到算法的损失函数中(我目前正在使用 Xg-Boost、Random Forest、ecc)。

关于如何在 Python 上的 scikit-learn 或其他 ML 库上实现它有什么想法吗?

假设这是您 类 的映射:

{'Product A':0, 'Product B':1, 'Product C':2, 'NO Product':3)}

然后从 sklearn.ensemble.RandomForestClassifier 文档中,使用 class_weight 如下:

rf = RandomForestClassifier(n_estimators = 100, class_weight = {0:1,1:1,2:2,3:1})

这会给'Product C'

更多的权重