3

我正在尝试计算 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 列(具有三个节点)的基尼指数?
是否也可以计算三个以上具有相同功能的节点的基尼指数?

4

0 回答 0