python - 当类错误具有不同权重时用于多类分类的自定义指标
问题描述
我有一个多类分类问题(例如,目标变量由 4 个不同的结果组成:产品 A、产品 B、产品 C 和无产品)。并非所有的错误都是相等的:例如,如果真正的标签是“产品 A”,而预测是“无产品”,这不是一个大问题,而如果真正的标签是“产品 C”,则错误的影响是大得多。基本上,我必须将这些信息插入到算法的损失函数中(我目前使用的是 Xg-Boost、随机森林、ecc)。
关于如何在 scikit-learn 或 Python 上的其他 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'
推荐阅读
- windows - 在笔记本电脑上恢复出厂设置
- python - 使用 SpaCy 和 Pandas 更快地提取 NER
- node.js - 使用 Nodejs 时出现权限错误
- google-cloud-platform - 谷歌语音识别弱日期转录
- javascript - 切换模型时更新数据面板
- python - 如何优雅地查找角度是否在范围之间?
- python - 如何覆盖动态 Python 代码(使用 `compile()` 编译)
- spacy - 如果分数都是 1,什么控制 scispacy 中的 UMLS 链接实体的顺序
- sql - 从oracle上的不同表中删除多行
- c++ - QT Creator 将 QWidget 移动为 Dialog C++