2016-05-18 9 views
1

rを使用してh2oでランダムフォレストを作った。それは木と葉を持っています。h2oの総リーフ数

何葉がどれくらいあるか知りたい。私は葉に私の総行数を比較するのが好きです。

私は樹木が深く8層あり、1葉あたり5列が必要です。私のデータの多くをトラバースしていますか?私は20kの行を持っています。

h2o randomForest内の葉の数を数えますか?

+0

ランダムフォレストモデルは、実際に木のコレクションです。なぜあなたは葉の数を計算する必要がありますか? –

+0

私は、葉と行の比率を使用して、オーバーフィッティングまたはアンダーフィッティングを可変重要度の観点から考えたいと思います。各行を12回使用すると、問題が発生する可能性があります。私が行の0.5%未満を使用すると、ブートストラップのように見えても、アンダーサンプリングが発生する可能性があります。おそらく、私の木は同じ列を12回、つまり0.1回使用しています。私はカバレッジの観点から考えると、実際の 'h2o'の葉にアクセスする方法を知らない。 – EngrStudent

+0

このアプローチは正しいAFAIKではありません。早期に分割するために使用される変数は、通常、特定のツリーの動作を支配します。変数の重要性が必要な場合は、 'importance()'を使うべきです。あるいは、より単純なオプションのために、最良の定数モデルを試してみてください。 –

答えて

2

あなたはH2Oがその情報を保存していることを知ってうれしいでしょう!例えば。 (これはアイリスデータセットのためである)

m <- h2o.randomForest(1:4, 5, data) 

mを印刷するとき、私は以下を参照してください。

number_of_trees model_size_in_bytes min_depth max_depth mean_depth min_leaves max_leaves mean_leaves 
      150    20217   1   9 3.72667   21   15  6.17333 

だから926葉(6.17333 * 150)があります。

コードでそれを取得するには:

ms = [email protected]$model_summary 
ms$number_of_trees * ms$mean_leaves