从决策树获取分类概率
我正在实现基于CART算法的决策树,现在我可以对数据进行分类,但我的任务不仅仅是分类。我想在最终节点得到正确分类的概率。
举个例子,我有一个包含A类和B类数据的数据集。当我把某个类的实例放入我的树中时,我想知道这个实例属于A类和B类的概率是多少。
我该怎么做呢?我该如何改进CART算法,以便在最终节点得到概率分布呢?
1 个回答
0
当你用训练数据集来训练你的决策树时,每次对数据进行分割时,左边和右边的节点会分别包含来自A类和B类的一定比例的实例。A类(或B类)实例的百分比可以理解为概率。
举个例子,假设你的训练数据集中有50个A类的项目和50个B类的项目。你构建了一棵只有一层的树,通过一次分割数据。假设分割后,左边的节点有40个A类实例和10个B类实例,而右边的节点有10个A类实例和40个B类实例。那么在左边节点中,A类的概率就是40/(10+40) = 80%,而在右边节点中,A类的概率就是10/(10+40) = 20%(B类的概率则正好相反)。
对于更深的树也是一样的:你只需要统计各类实例的数量,然后计算它们的比例。