我正在基于CART算法实现决策树,并且有一个问题。现在我可以对数据进行分类,但我的任务不仅仅是分类。我希望在末端节点获得正确分类的概率。例如,我有一个包含A类和B类数据的数据集。当我将某个类的实例放入我的树中时,我想看到该实例属于A类和B类的概率是多少。我该怎么做呢?我如何改进CART以在末端节点获得概率分布?
回答:
当你使用训练数据集训练你的树时,每次你对数据进行分割,左节点和右节点最终会包含来自A类和B类的一定比例的实例。A类(或B类)的实例百分比可以被解释为概率。
例如,假设你的训练数据集包括50个A类项目和50个B类项目。你通过一次分割构建了一个一级的树。假设分割后,左节点最终有40个A类实例和10个B类实例,右节点有10个A类实例和40个B类实例。现在节点中的概率将是40/(10+40) = 80% 为左节点的A类,以及10/(10+40) = 20% 为左节点的A类(B类则相反)。
对于更深的树也完全适用:你计算类别的实例并计算比例。