首页 > 解决方案 > R中的回归树

问题描述

我正在从头开始在 R 中编写 CART,我几乎完成了。不过我的效率有问题:我的代码的瓶颈是下面的过程。

best_split2 <- function(dataset){
sse2 <- matrix(nrow=dim(dataset)[1], ncol=length((dataset))-1)
for(i in 1:(length(dataset)-1)){
    for(l in 1:dim(dataset)[[1]]){
        splits <- split_test3(dataset[[i]][l], i, dataset)
        sse2[l,][i] <- cost_func3(splits)
    }
}
sse_min2 <- min(sse2)
mins <- which(sse2 == sse_min2, arr.ind = TRUE)[1,]
index1 <- unname(mins[2])
index2 <- unname(mins[1])
split_val2 <- dataset[[index1]][index2]
splits2 <- split_test3(split_val2, index1, dataset)
return(list(sse = sse_min2, index = index2, split_val = split_val2, splits = splits2, left = NULL, right = NULL))

}

在 best_split2 中,我正在搜索数据集中的最佳拆分变量。考虑到 split_test3 和 cost_func3 函数是最佳编写的,而且它们非常快。您对如何优化此功能有任何提示吗?

谢谢!

标签: profilingregression

解决方案


推荐阅读