1

MapReduce(複数ラウンドの可能性があります!)を次のように記述したい

1. Sample N records from Large data - for say X RandomTree
2. Train each tree (totally X)
3. And then test records on all these trees

続いて、

for X = 0 to 199:
    - sample N records from Large data
    - Train this tree
    - test for all test records

これは私の宿題の問題なので、私はただアイデアが必要です..!

よくわかりません

  1. マッパーで正確にN個のレコードをサンプリングし、200個の小さなトレーニングデータファイルを生成できますか?
  2. 200個すべての最初のオプションで各レコードをテストするため に、各レデューサーがすべてのツリーに対して小さなテスト(テストファイルの一部)を実行すると思いました。2番目のオプションこれを実装する方法はわかりません。200ツリーを個別に実行し、テストファイルを分散キャッシュに入れて、各テストレコードを予測します。
4

1 に答える 1

1

それはあなたがどの程度正式に働いているかによって異なります。

正式なマッパーは、正確に N レコードをサンプリングすることはできません。カウンターを保持できず、データの合計サイズがわからないためです。Hadoopの実用的なマッパーは確かに可能です。しかし、合計で何件のレコードを受け取ることになるかは、おそらくわかりません。

しかし、これは宿題だとあなたが言ったように、それが正確に N であることを確認する必要はないと思います。特に、サンプリングしているので、正確に N レコードを持つことの利点は何ですか?

次のことを試してください。

  1. レコードの合計サイズを決定します。
  2. 各マッパーに、N/D の可能性を持つ各レコードを各ツリー (= レデューサーのキー) に発行させます。
  3. レデューサーは、受け取ったすべてのレコードでツリーをトレーニングします。
于 2012-11-02T12:37:37.707 に答える