Apache spark 如何获得Spark MLlib随机林中每个树节点的记录计数/类分布?

Apache spark 如何获得Spark MLlib随机林中每个树节点的记录计数/类分布?,apache-spark,tree,nodes,random-forest,apache-spark-mllib,Apache Spark,Tree,Nodes,Random Forest,Apache Spark Mllib,我正在Spark 1.5.0 MLlib中使用随机林进行两类分类。我想得到每个树节点中每个类的记录数。有办法做到这一点吗?非常感谢你的帮助 没有,或者至少没有通过公开的API。可以使用获取随机树模型中的所有树。在每个树中,您可以获得从开始的所有节点,在每个节点中,您可以获得这些节点,这些节点将告诉您您的属性和杂质,但不会存储分割后的元素数。不确定这在一般情况下是否有必要,毕竟通常你并不关心新的子集有多大,而是关心它在你的类中有多混乱 如果您需要概率,可能该类对您来说就足够了?首先,以PMML数据

我正在Spark 1.5.0 MLlib中使用随机林进行两类分类。我想得到每个树节点中每个类的记录数。有办法做到这一点吗?非常感谢你的帮助

没有,或者至少没有通过公开的API。可以使用获取随机树模型中的所有树。在每个树中,您可以获得从开始的所有节点,在每个节点中,您可以获得这些节点,这些节点将告诉您您的属性和杂质,但不会存储分割后的元素数。不确定这在一般情况下是否有必要,毕竟通常你并不关心新的子集有多大,而是关心它在你的类中有多混乱


如果您需要概率,可能该类对您来说就足够了?

首先,以PMML数据格式导出您的随机林模型。然后,使用重新评分数据集,并捕获每个预测的评分和节点id。最后,将结果分组


这种方法适用于任何ML软件/树模型类型组合。例如,您可以以完全相同的方式分析R和Scikit Learn RF、GBM、XGBoost等型号。

感谢Mateusz的及时回答和非常有用的信息!我需要的是根据节点的误报率(FPR)从树节点创建规则。如果一个节点的FPR<10,那么我想为该节点创建一个规则。您提到的
Predict
类是否有助于实现这一点?如果您想可视化决策树的结构,了解每个节点的分布情况将非常有用。