决策树,如何理解或计算预测结果的概率/置信度

数据挖掘 决策树
2021-10-06 07:11:24

例如,使用决策树的药物预测问题。我训练了决策树模型,并希望使用新数据进行预测。

例如:

patient, Attr1, Attr2, Attr3, .., Label
002      90.0   8.0    98.0 ...   ? ===> predict drug A

如何计算药物 A 预测结果的置信度或概率?

1个回答

你使用什么数据挖掘包?

在 sklearn 中,DecisionTreeClassifier可以为您提供概率,但您必须使用类似max_depth的东西来截断树。它返回的概率是P=nA/(nA+nB),即在该叶子(在训练期间)捕获的全部观察值中,该叶子“捕获”的 A 类观察值的数量。但同样,你必须修剪或截断你的决策树,否则决策树会一直增长到n=1 在每片叶子等等 P=1.

话虽如此,我认为您想使用随机森林之类的东西。在随机森林中,通过使用数据的不同重采样来训练多个决策树。最后,概率可以通过投票给每个类别的决策树的比例来计算。我认为这是一种比使用单个决策树更可靠的估计概率的方法。

但是随机森林是不可解释的,所以如果需要互操作性,请使用我提到的决策树。您可以使用网格搜索通过更改超参数(例如最大深度)来最大化 ROC AUC 分数,以找到任何决策树提供最可靠的概率。

编辑:如果我不够清楚,我认为使用单个决策树来预测概率是很糟糕的。我在博客文章中扩展了我的答案。