我已经阅读了本教程,并且能够重现结果。但是,最后一张图使我感到困惑。我大部分时间都了解概率,但是为什么会有负数?由于响应是存活的,如何解释预测中的数字?如何将这些数字转换为是和否?
https://www.h2o.ai/blog/finally-you-can-plot-h2o-decision-trees-in-r/
EIDT 2019年11月19日:我确实在Cross Validated上找到了类似的帖子。答案不确定,因为它以问号结尾。 https://stats.stackexchange.com/questions/374569/may-somebody-help-with-interpretation-of-trees-from-h2o-gbm-see-as-photo-attach
我使用树中的逻辑过滤了数据,并查看了子集的唯一预测。我能够找到“是”和“否”预测的阈值。我还更改了原始代码(第34行开始),以便叶子显示数字的最终结果。但是,这只是破解情节的一种方法。如果有人可以告诉我数字的推导方式,那就太好了。
if(class(left_node)[[1]] == 'H2OLeafNode')
leftLabel = ifelse(left_node@prediction >= threshold, 'Yes', 'No')
else
leftLabel = left_node@split_feature
if(class(right_node)[[1]] == 'H2OLeafNode')
rightLabel = ifelse(right_node@prediction >= threshold, 'Yes', 'No')
else
rightLabel = right_node@split_feature
答案 0 :(得分:1)
由于图片是GBM图,因此它并非如您所愿那样简单,因为推理计算会对从树的叶子中提取的值进行一些数学运算。
实际代码在这里:
看一下score0函数。
我的建议是改为构建一棵树的DRF,然后编写一个简短的Java程序,并尝试在Java调试器中将其单步执行。
从此处开始的Java代码段是如何在本文档中编译和运行MOJO:
http://docs.h2o.ai/h2o/latest-stable/h2o-genmodel/javadoc/index.html
如果执行此操作,您将能够逐步完成产生答案的确切步骤(如果您愿意,也适用于GBM),届时一切都将是未知的。