多标签问题中的 RandomForestClassifier - 它是如何工作的?

Posted

技术标签:

【中文标题】多标签问题中的 RandomForestClassifier - 它是如何工作的?【英文标题】:RandomForestClassifier in Multi-label problem - how it works? 【发布时间】:2019-11-30 13:17:46 【问题描述】:

sklearnRandomForestClassifier 如何处理多标签问题(在后台)?

例如,它会在不同的单标签问题中解决问题吗?

为了清楚起见,我还没有真正测试过它,但我在RandomForestClassifier.fit() 函数中看到了y : array-like, shape = [n_samples] or [n_samples, n_outputs]

【问题讨论】:

我很想知道它是如何工作的,我目前正在处理类似的问题。 @Vish 很酷 :) 可能与 datascience.stackexchange.com/questions/30208/… 重复。 rf分类器不提供多标签问题 【参考方案1】:

让我引用scikit-learn。 user guide of random forest:

与decision trees 一样,森林也延伸到multi-output problems(如果Y 是大小为[n_samples, n_outputs] 的数组)。

决策树用户指南section multi-output problems:

… 支持多输出问题。这需要进行以下更改:

n 个输出值存储在叶子中,而不是 1; 使用拆分标准计算所有 n 个输出的平均减少量。

我希望这能回答你的问题。如果没有,您可以查看该部分的参考:

M. Dumont 等人,Fast multi-class image annotation with random subwindows and multiple output randomized trees,计算机视觉理论与应用国际会议,2009 年。

【讨论】:

【参考方案2】:

当我开始使用树时,我有点困惑。如果您参考 sklearn 文档:

https://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html#sklearn.tree.DecisionTreeClassifier

如果您继续使用 predict_proba 的方法,您可以看到: “预测的类概率是叶子中同一类的样本的分数。”

所以在预测中,类是该节点上类的模式。如果您使用加权类,这可能会改变

"class_weight : 字典,字典列表,“平衡”或无,默认=无 与 class_label: weight 形式的类关联的权重。如果没有给出,所有的类都应该有一个权重。”

希望这会有所帮助! :)

【讨论】:

感谢 Alfonso,但很好奇您是否有或知道一些使用 class_weight 的示例。 @Vishwas 不,对不起,我没有。我认为这是针对不平衡的课程。但是从来没有使用过,我宁愿使用其他不平衡的类方法,因为这个 class_weight 对我来说没有逻辑意义。 如何处理分类器中的不平衡类?我需要对 50 种不同的缺陷进行分类,但是,缺陷类别并不均衡。我的数据集中有两三个类占主导地位,而其他类则很少。

以上是关于多标签问题中的 RandomForestClassifier - 它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章

多标签分类器中的拟合概率

具有高度不平衡的多标签分类中的损失曲线

多标签分类中的损失函数与评价指标

概念篇-多分类多标签

sklearn - 从文本文档中预测多标签分类中的前 3-4 个标签

如何增强 R 中的多面饼图标签?