Hadoop Mapreduce での決定木アルゴリズムの実装を探しています。実装の準備はできていますか?Mahout にはデシジョン フォレストしかないことがわかりましたが、デシジョン ツリーをデシジョン フォレストと共に使用することは可能ですか? 類似点/相違点は何ですか?
2 に答える
おそらく、分散型決定木の最も一般的な方法はフォレストです。独立したツリーを計算して分散するのは簡単ですが、分散した方法で単一のツリーを効率的に構築するのは簡単ではありませんか?
各ツリーはトレーニングデータの(うまくいけば)ランダムで独立したサブセットに基づいて構築されているため、ランダムフォレストは確かにうまく並列化されます。
ただし、Hadoopは、各ノードにどのデータ(およびその量)があるかをすでに決定しているはずです。ソースデータによっては、ノードに配布する前に事前にランダム化するのは実用的でない場合があります。また、各ノードでの観測数はRFアルゴリズムのパラメーターではなくなり、データの分散方法とノードでのデータの冗長性の程度に関するHadoop構成によって制御されます。特別な注意を払わなくても、サンプルバイアスが各ツリー(エキスパート)モデルに忍び寄るのは非常に簡単です。
ただし、計算手段(合計をカウントで割ったもの)、誤差関数(分散、ジニなど)などのCARTでのバイナリ再帰パーティショニングに必要なコア計算として、複数のHadoopノード間で単一ツリー(CART)を並列化することは可能です。 mapreduceに書き込むことができるはずです。これが機能するには、ノードが非常におしゃべりである必要があるため、簡単ではありません。元のデータサンプルの子ノードを分割するインデックスを送信してから、子で繰り返します。これは非常に巨大なデータセットでは機能すると思いますが、単一のワークストラクションのメモリにすでに「適合」できるデータセットの場合は、はるかに遅くなります。
Revolution analyticsは最近、そのバージョンまたはRがHadoopクラスターに決定ツリーを実装したことを投稿しました。試したことはありませんが、さまざまな大きなデータセットでどのように機能するかを確認するのは興味深いことです。
リンクは次のとおりです。RevolutionAnalyticsは、ビッグデータの意思決定ツリーと新しいHadoopサポートを予測分析にもたらします