首页 > 解决方案 > 当类错误具有不同权重时用于多类分类的自定义指标

问题描述

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

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

标签: pythonmachine-learningscikit-learnclassificationmetrics

解决方案


假设这是您的类的映射:

{'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'


推荐阅读