Separate trees for each class in multi-class RF or GBDT?

老师,在实际应用当中我们是用一个tree去model所有的category,还是用多个tree给每个category(one for each class)?这种one for each class的情况在RF 或者GBDT模型当中具体是如何实现的呢?

无论是RF还是GBDT,他们当中每一个Tree都可以做多分类问题。对于RF,每一棵树都单独做multi-class classification,判断出最可能的所属类别,最后整个RF把所有树的分类结果取众数。如果是GBDT,就像我们上课讲的,可以把它看成是串行地不断去model数据的残差(如果error是用squared-loss定义),那么此时每一颗树也是在做multi-class classification, 最后把所有树的输出结果整合起来。

处理之外,对于一个multi-class classification problem, 我们也可以把它分解为多个binary classification problem, 分别让RF或GBDT去做,最后把结果整合起来。在这种情况下,RF或GBDT实际在做的就只是binary classification了。

明白了,谢谢老师!