Функция для поиска условных деревьев - PullRequest
0 голосов
/ 21 февраля 2020

Мне нужна помощь для создания функции, подобной этой ниже. Я хочу запустить перекрестную проверку модели ctree2 из пакета caret R, найти ее сводку (используя функцию психического описания) и рассчитать для каждого узла оценку, используя ((x - среднее) / sd) * 3 + 10. I попробовал этот, но он не работает.

library(tidyverse)
library(caret)
library(party)
library(partykit)

set.seed(3456)
model <- train(

x ~ .,
data = dados,
method = 'ctree2',
trControl = trainControl("cv", number = 10, classProbs = FALSE),
tuneGrid = expand.grid(maxdepth = 3, mincriterion = 0.95)
)

plot(model$finalModel)

f1 <- function(x){
tab <- t(sapply(unique(where(model$finalModel)), function(x) {
n <- nodes(model$finalModel, x)[[1]]
x <- dados[as.logical(n$weights), "x"]
cbind.data.frame("Node" = as.integer(x),
psych::describe(x, quant=c(.25,.50,.75), skew = FALSE))

i = tab[,0]
y <- (((x - tab[i,]$mean) / tab[i,]$sd) * 3 + 10)
print(y)

}))
...