我正在使用^[
的{{1}} pacakge,我想要提取叶子节点的前2个预测类,而不是最好的。
以rpart
数据为例:
R
,输出为:
iris
我想知道每个叶节点,比如节点7),什么是第二个最佳预测物种。默认情况下,它只打印出最佳预测种类fit <- rpart(Species ~ Sepal.Length + Sepal.Width + Petal.Length + Petal.Width, data = iris)
print(fit)
更一般地说,我想知道前n个预测类。
是否可以在不更改n= 150
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 150 100 setosa (0.33333333 0.33333333 0.33333333)
2) Petal.Length< 2.45 50 0 setosa (1.00000000 0.00000000 0.00000000) *
3) Petal.Length>=2.45 100 50 versicolor (0.00000000 0.50000000 0.50000000)
6) Petal.Width< 1.75 54 5 versicolor (0.00000000 0.90740741 0.09259259) *
7) Petal.Width>=1.75 46 1 virginica (0.00000000 0.02173913 0.97826087) *
源代码的情况下从virginica
中提取此信息?
答案 0 :(得分:0)
您可以通过
找到它们> fit$frame$yval2
nodeprob
[1,] 1 50 50 50 0.3333333 0.33333333 0.33333333 1.0000000
[2,] 1 50 0 0 1.0000000 0.00000000 0.00000000 0.3333333
[3,] 2 0 50 50 0.0000000 0.50000000 0.50000000 0.6666667
[4,] 2 0 49 5 0.0000000 0.90740741 0.09259259 0.3600000
[5,] 3 0 1 45 0.0000000 0.02173913 0.97826087 0.3066667
或者你可以从
看到它fancyRpartPlot(fit)
来自拨浪鼓包 - 它是变色的
我认为你想要一个更复杂的东西,但如果树很简单,那么图表就可以了。