我安装了以下树
library(rpart)
treeResult = rpart(Species~., data=iris[1:120,], method="class")
并尝试手动计算下面的黄色数字(0.285714)。
我认为如果树从0变到1,这应该是吉尼杂质的相对减少:
pNode1 = c(50,50,20)/120
pNode2 = c(50,0,0)/50
pNode3 = c(0,50,20)/70
# The counts used to calculate these pNodes are taken from summary(treeResult).
impurityNode1 = sum(pNode1*(1-pNode1))
impurityNode2 = sum(pNode2*(1-pNode2))
impurityNode3 = sum(pNode3*(1-pNode3))
relativeError = (50/120*impurityNode2+70/120*impurityNode3) / impurityNode1
但是,这将产生0.3809524而不是0.285714。
答案 0 :(得分:1)
不。它不是相对的基尼杂质。这显示出相对的总杂质。
在顶级节点处,杂质为70/120 = 0.58333。第一次拆分后,一个节点完美地分类了50个点,另一个节点进行了50/20拆分。因此,在120个点中有20个错误,该级别的杂质为20/120 = 0.16666。所计算的相对杂质为
(20/120) / (70/120) = 0.16666/0.58333 = 0.285714
为完整起见,在第二次拆分之后,存在3个错误。相对于原始的70个错误,我们有3/70 = 0.042857(nsplit = 2旁边的数字)。