我正在尝试计算 R 中的基尼指数。计算二叉决策树的基尼指数没有问题,如下所示。
gini_process <- function(classes,splitvar = NULL){
#Assumes Splitvar is a logical vector
if (is.null(splitvar)){
base_prob <-table(classes)/length(classes)
return(1-sum(base_prob**2))
}
base_prob <-table(splitvar)/length(splitvar)
crosstab <- table(classes,splitvar)
crossprob <- prop.table(crosstab,2)
No_Node_Gini <- 1-sum(crossprob[,1]**2)
Yes_Node_Gini <- 1-sum(crossprob[,2]**2)
return(sum(base_prob * c(No_Node_Gini,Yes_Node_Gini)))
}
现在我想计算具有三个节点(多路拆分)的决策树的基尼指数。
我得到了下表:
Car Class
0 0
0 1
1 0
1 0
2 1
是否可以计算 R 中 car 列(具有三个节点)的基尼指数?
是否也可以计算三个以上具有相同功能的节点的基尼指数?