我了解到Sklearn将多类分类问题视为一系列二元问题。引用Sklearn用户指南中的内容:
在将二元度量扩展到多类或多标签问题时,数据被视为一系列二元问题,每个类别一个。
因此,像LogisticRegression
或支持向量机这样的二元分类模型可以通过使用一对一或一对余下的策略来支持多类情况。我想知道RandomForestClassifier
是否也是这种情况?Sklearn中的其他分类器在处理多类问题时,是否都在底层作为二元分类器使用呢?
回答:
根据决策树的文档,多输出问题对随机森林中每棵树的叶子节点进行了一小改动。
假设你设置了criterion='gini'
。本质上,每个节点通过选择max_features
特征的一个子集,计算所有N个类别的基尼不纯度的平均减少量,并选择能够最大减少不纯度的变量-阈值组合来构建。
这意味着随机森林不会为每个类别创建一个模型。相反,它只有一个模型,在每棵树的每个节点同时减少所有类别的标准度量,并在每个叶子节点预测最常见的类别。