2017-08-11 7 views

答えて

1

残念ながら、Spark-MLは、概念「単一モデル - 単一ユーザ」を分離する能力を提供しません。しかし、あなたは望むようにカスタムロジックを作ることができます。私はこの作業を解決するための2つの可能な変形を見る。このような状況を解決するための第1のシナリオは次のアルゴリズムに従っている は(私は例のためにすべてを取った - あなたは異なるステップを持つことになりますが、アルゴリズムは論理的に似てます):

  • あなたは、特定のユーザーのためのトレーニングデータを取得する必要があります - (例えば、hdfs、s3などからデータcsvファイルを読み込む)
  • ユーザー関連データに依存するDatasetの列車モデル - データセットに2つの列、具体的な条件Xとユーザーの生産性Yと最新パラメータはユーザグループに対して変更可能です。たとえばLinearRegressionを使用してモデルを訓練する必要があります。したがって、ユーザが時間内に作業を行うことができるかどうかを予測します。蟻。
  • 次に、あなたは、第二のアプローチは、それがすべてのユーザーに適用されたようにモデルを訓練することである必要があります ユーザーのID、グループに応じて、通話訓練を受けたモデルに、データをディスクに保存したりなど

アルゴリズムのオプションを選択して、ユーザーのグループに依存しない、つまり、トレーニングモデルのアルゴリズムをすべてのユーザーグループに一般化する - この場合、分離の感覚はない
"single-model-- >シングルユーザー "となります。 2番目の変種がデータセットの実装より複雑な場合は、最初の方法に従います。

+0

オプション1:すべてのユーザーのモデルトレーニングを並列化する最適な方法は何ですか? オプション2: "すべてのユーザーに適用できるようにモデルを訓練する"に拡張できますか? – Gevorg

+0

@Gevorg Option1 - トレーニングプロセスの並列化を意味するのであれば、ForkJoinPoolまたはAkkaでカスタムロジックを書くことができます。単一モデルの並列トレーニングのプロセスを意味するなら、KerasとSpark Mlの統合についてはお勧めします。 ://github.com/maxpumperla/elephas#spark-ml-example Option2 - すべてのユーザーに対して一般的なモデルを作成できることをお勧めします。データセットの外観がわからないため、これは唯一の前提です –

関連する問題