RandomForestClassifier 如何进行分类?

Posted

技术标签:

【中文标题】RandomForestClassifier 如何进行分类?【英文标题】:How does RandomForestClassifier work for classification? 【发布时间】:2021-08-20 13:51:36 【问题描述】:

我了解到,Sklearn 将多类分类问题视为二元问题的集合。引用 Sklearn 用户指南:

在将二元度量扩展到多类或多标签问题时,数据被视为二元问题的集合,每个类一个问题。

因此,像LogisticRegression 或支持向量矩阵这样的二元分类模型可以通过使用一对一或一对一策略来支持多类案例。我想知道RandomForestClassifier 是否也是这种情况? Sklearn 中的其他分类器怎么样?在处理多类问题时,它们是否都用作二元分类器?

【问题讨论】:

【参考方案1】:

根据Decision Trees 的文档,多输出问题会给随机森林中的每棵树的叶子添加一个小的变化。

假设您设置了criterion='gini'。本质上,每个节点都是通过选择max_features 特征的子集、计算所有 N 个类别的 gini 杂质的平均减少量并选择减少它最多的可变阈值组合来构建的。

这意味着随机森林不会为每个类创建一个模型。相反,它只有一个模型可以同时降低每棵树的每个节点中所有类的标准度量,并预测每个叶子中最常见的类。

【讨论】:

以上是关于RandomForestClassifier 如何进行分类?的主要内容,如果未能解决你的问题,请参考以下文章

RandomForestClassifier 如何进行分类?

Scikit:如何检查对象是 RandomizedSearchCV 还是 RandomForestClassifier?

scikit-learn RandomForestClassifier - 如何解释树输出?

使用 RandomForestClassifier.decision_path,我如何判断分类器用于做出决策的样本?

如何在 RandomForestClassifier 中选择 n_estimators?

scikit-learn RandomForestClassifier 中的特征重要性和森林结构如何相关?