簡體   English   中英

如何獲取 Spark MLlib 隨機森林中每個樹節點的記錄計數/類分布?

[英]How to get record count/class distribution for every tree node in Spark MLlib Random Forest?

我正在使用 Spark 1.5.0 MLlib 中的隨機森林進行兩類分類。 我想獲取每個樹節點中每個類的記錄數。 有沒有辦法做到這一點? 非常感謝您的幫助!

不,或者至少不是通過公開的 API。 您可以使用tree()獲取隨機樹模型中的所有樹。 在每棵樹中,您都可以獲得從topNode()開始的所有節點,並且在每個節點中,您可以獲得InformationGainStats ,它會告訴您有關信息增益和雜質的信息,但不會存儲拆分后的元素數量。 不確定在一般情況下是否有必要,畢竟通常您不關心新子集有多大,而是在您的類方面有多混亂。

如果您需要概率,也許Predict類對您來說就足夠了?

首先,以 PMML 數據格式導出您的隨機森林模型。 然后,使用JPMML-Evaluator 庫再次對您的數據集進行評分,並捕獲每個預測的分數和節點 ID。 最后,將結果分組。

這種方法適用於任何 ML 軟件/樹模型類型組合。 例如,您可以以完全相同的方式分析 R 和 Scikit-Learn RF、GBM、XGBoost 等模型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM