R
rpart 複雜度參數混淆
rpart
我對對象摘要中的 CP 計算有點困惑。舉這個例子
df <- data.frame(x=c(1, 2, 3, 3, 3), y=factor(c("a", "a", "b", "a", "b")), method="class") mytree<-rpart(y ~ x, data = df, minbucket = 1, minsplit=1) summary(mytree) Call: rpart(formula = y ~ x, data = df, minbucket = 1, minsplit = 1) n= 5 CP nsplit rel error xerror xstd 1 0.50 0 1.0 1 0.5477226 2 0.01 1 0.5 2 0.4472136 Variable importance x 100 Node number 1: 5 observations, complexity param=0.5 predicted class=a expected loss=0.4 P(node) =1 class counts: 3 2 probabilities: 0.600 0.400 left son=2 (2 obs) right son=3 (3 obs) Primary splits: x < 2.5 to the left, improve=1.066667, (0 missing)
對於根節點,我認為 CP 應該是 0.4,因為對根中的元素進行錯誤分類的概率是 0.4,而根處的樹大小是 0。0.5 是正確的 CP 嗎?
據我所知,複雜性參數不是該特定節點中的錯誤。它是拆分該節點改進相對誤差的量。因此,在您的示例中,拆分原始根節點會將相對誤差從 1.0 降低到 0.5,因此根節點的 CP 為 0.5。下一個節點的 CP 僅為 0.01(這是決定何時考慮拆分的默認限制)。所以拆分那個節點只會導致 0.01 的改進,所以樹的構建就停在那裡了。