如何获取 Spark MLlib 随机森林中每个树节点的记录计数/类分布



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

否,或者至少不是通过公开的 API。您可以使用 trees() 获取随机树模型中的所有树。在每个树中,你可以从topNode()开始获取所有节点,在每个节点中,你可以得到InformationGainStats,它会告诉你你的信息增益和杂质,但拆分后的元素数量不会被存储。不确定在一般情况下是否有必要,毕竟通常您不关心新子集有多大,而是在您的类方面有多混乱。

如果你需要概率,也许预测类对你来说就足够了?

首先,以 PMML 数据格式导出随机森林模型。然后,使用 JPMML 计算器库再次对数据集进行评分,并捕获每个预测的分数和节点 ID。最后,对结果进行分组。

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

最新更新