有谁知道如何将 AdaBoost 树(R 中的结果)转换为 if-else 条件?
我已经使用了caret
R 中的包以及train
函数,并method="ada"
在我的数据集上获得了一些预测。
之后我使用包中的函数listTreesAda
来rattle
查看它们的结构(示例如下):
n= 45211
node), split, n, loss, yval, (yprob)
* denotes terminal node
1) root 45211 5280 no (0.88321426 0.11678574)
2) duration< 551.5 40743 3245 no (0.92035442 0.07964558)
4) poutcome=failure,other,unknown 39451 2431 no (0.93837926 0.06162074) *
5) poutcome=success 1292 478 yes (0.36996904 0.63003096)
10) duration=132.5 1066 300 yes (0.28142589 0.71857411) *
3) duration>=551.5 4468 2035 no (0.54453894 0.45546106)
6) duration=835.5 1688 697 yes (0.41291469 0.58708531) *
你如何在 if-else 条件下阅读它?如果你想自己计算 AdaBoost 模型的最终函数,你会怎么做?每棵树都有一个重量{w(1), w(2), ..., w(n)}
,你会把这个重量乘以什么?对应于最终结果的规则离开响应变量为 YES 的位置?...响应变量为否?...对于树的每个 if-else 规则?
正如你所看到的,我有点迷路了。
(这篇文章涉及到: https ://stats.stackexchange.com/questions/133088/use-adaboost-results-in-r-to-make-future-predictions-by-hand 和 https://stackoverflow.com /questions/27857619/r-error-using-drawtreesada-to-draw-an-ada-tree )