多标签问题中的 RandomForestClassifier - 它是如何工作的?
Posted
技术标签:
【中文标题】多标签问题中的 RandomForestClassifier - 它是如何工作的?【英文标题】:RandomForestClassifier in Multi-label problem - how it works? 【发布时间】:2019-11-30 13:17:46 【问题描述】:sklearn
的 RandomForestClassifier
如何处理多标签问题(在后台)?
例如,它会在不同的单标签问题中解决问题吗?
为了清楚起见,我还没有真正测试过它,但我在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 - 它是如何工作的?的主要内容,如果未能解决你的问题,请参考以下文章