鉴于分类问题,有时我们不只是预测一个类,而是需要返回它是一个类的概率。
即。 P(y = 0 | x),P(y = 1 | x),P(y = 2 | x),...,P(y = C | x)
没有建立新的分类器来预测y = 0,y = 1,y = 2 ... y = C.由于训练C分类器(让我们说C = 100)可能会很慢。
可以做些什么呢?什么分类器自然可以轻松地提供所有概率(我知道一个是使用具有100个节点的神经网络)?但如果我使用传统的随机森林,我不能这样做,对吧?我使用Python Scikit-Learn库。
答案 0 :(得分:2)
如果您需要概率,请查找具有方法的sklearn分类器:predict_proba()
关于多类的Sklearn文档:[http://scikit-learn.org/stable/modules/multiclass.html]
所有scikit-learn分类器都能够进行多类分类。因此,您不需要自己构建100个模型。
以下是按策略分组的scikit-learn支持的分类器摘要:
答案 1 :(得分:0)
随机森林确实为多个类提供P(Y / x)。在多数情况下 P(Y / x)可以取为:
P(Y / x)=投票给树的树数/树木总数。
但是你可以玩这个,例如在一种情况下,如果最高等级有260票,第二等级230票,其他5等等10票,而在另一种情况下,第1类有260票,其他类有40票每个人投票,你对第二种情况的预测比第一种情况更有信心,所以你根据你的用例提出了一个置信度指标。