我正在研究一个多类文本分类问题并为文本分类执行集成学习。我选择硬投票作为集成技术。我试图为我的集成方法绘制 ROC 曲线,但它没有通过显示无法为硬投票集成方法绘制 ROC 曲线的错误来工作。所以我的问题是有什么可能的方法可以在 python 中为我的硬投票集成分类器绘制 ROC 曲线。
有没有办法为 Ensemble 硬投票分类器绘制 ROC 曲线?
数据挖掘
机器学习
集成建模
文本分类
2022-01-27 19:00:36
2个回答
对于 ROC 曲线,您需要模型生成测试点的排序(按属于正类的可能性排序)。几种方法:
硬投票分类器通常只输出最终的类预测。这是一个命令,几乎所有的关系。这将产生两条直线段的 ROC 曲线,从正方形的角到代表模型特异性和灵敏度的单个点。不是最丰富的信息,但它就在那里。
虽然您可能使用多数票来产生最终的类别预测,但您也可以稍微不同地解释它:通过平均来自基本模型的投票(作为二进制)来产生概率分数。最终的类别预测与将此分数设为 0.5 的阈值相同。所以现在你至少有更少的联系,你可以生成一个看起来更平滑的 ROC 曲线。如果您有很多基本模型,这将最有效,事实上这几乎正是您在构建随机森林时所做的。
如果您的基本模型带有概率分数,那么对于每个阈值,您可以从所有基本模型中获取分类,并让这些投票产生类。改变该阈值会产生一条与任何基本模型的 ROC 曲线一样平滑的 ROC 曲线。问题在于,一个阈值是否对所有基本模型都代表相同的事物:您需要对所有基本模型进行良好校准,才能真正做到这一点。您还会失去对为每个基本模型设置不同阈值的潜在影响的洞察力。