Разделение и корневой узел бинарного дерева решений (CART)
Как найти разделение и корневой узел в дереве регрессии, я создал дерево регрессии из нескольких векторов, теперь мне нужно извлечь корневой узел rpart из нескольких векторов. Файл содержит числовое значение нескольких векторов A
,B
,C
,D
,E
,F
,G
,H
ех. Вектор содержит 4,3,6,7,2,4,5,... и т. Д., Аналогично другим B,C,D,E,F,G,H . Поэтому мы хотим извлечь F
(который является корневым узлом в моем случае) в качестве выходных данных от этого входа после создания дерева. спасибо. Вы не можете поместить любое изображение:(
Вот что я сделал до сих пор
log_data <- read.csv(file="C:\\Users\\AASHU\\Desktop\\CART\\syn.csv",
header=T, as.is=T)
library(rpart)
fit <- rpart(A ~ B+C+D+E+F+G+H, log_data)
# plot(fit)
plot(fit, compress=TRUE, branch=0)
text(fit, xpd = NA, cex = 0.7)
summary(fit)
Call:
rpart(formula = A ~ B + C + D + E + F + G + H, data = log_data)
n=52 (1 observation deleted due to missingness)
CP nsplit rel error xerror xstd
1 0.09798662 0 1.0000000 1.065250 0.1888568
2 0.09347624 1 0.9020134 1.198999 0.1842667
3 0.03632980 2 0.8085371 1.154558 0.1859743
4 0.02297130 3 0.7722073 1.254874 0.2029423
5 0.01000000 4 0.7492360 1.274024 0.2118272
Node number 1: 52 observations, complexity param=0.09798662
mean=4.403846, MSE=1.509985
left son=2 (7 obs) right son=3 (45 obs)
Primary splits:
F < 5.5 to the right, improve=0.09798662, (0 missing)
........... Теперь мне нужно извлечь корневой узел F(F>=5.5)
от fit (дерево регрессии) и его раскол, кто-нибудь может мне помочь?
1 ответ
Найти метки этого дерева, чтобы мы могли извлечь любой из вектора
когда корневым узлом является символ (например, A)
nodes<-labels(fit, digits=4, minlength=1L, pretty, collapse=TRUE)
root<-substr(nodes[2], 1, 1)
Из пути мы можем извлечь корневой узел дерева, ниже одного лучше всего извлечь имя корневого узла, пройдя через второе разделение, которое является ничем иным, как корневым узлом.
nodes<-labels(fit, digits=4, minlength=1L, pretty, collapse=TRUE)
path<-path.rpart(fit, node_no, pretty=0, print.it=FALSE)
path[[2]][1]