Дерево регрессии в R - PullRequest
0 голосов
/ 12 мая 2018

Я пишу CART в R с нуля, и я почти закончил. Тем не менее у меня есть проблема с эффективностью: узким местом моего кода является процедура ниже.

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 написаны оптимально, и они чрезвычайно быстры. Есть ли у вас какие-либо советы, как оптимизировать эту функцию?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...