例えば、MLlibロジスティック回帰を使用してデータセットを訓練し、各データが100,000,000以上のフィーチャを持つ場合、モデルを取得した後、モデルを使用して「リアルタイム」で予測する方法、例えば、ウェブページは200msの予測結果でユーザに応答しますか? model.predict(...)
を単に使用しますか?長時間実行中のオフラインスパーク(MLlib)モデルトレーニングの後、リアルタイムで予測を取得する手順は何ですか?
2
A
答えて
1
Logistic Regressionは、バイナリ分類のみをサポートしています。 OPは、回帰が..ので、我々はそれをフォローアップする必要があると述べた。..
バイナリ分類のためのいずれの場合も予測のために行われる作業は、ほとんど自明であるロジスティックRegressiobを使用して:
BLAS.dot(features, coefficients) + intercept
だから、スパーク訓練された重み(「係数」)と入力行とのDOT積をとるだけでよい。
単一の行は、1台のマシンのメモリに収まる必要があります。さらに、ベクトルの要素の数==特徴の数は< = 2^31に保たれなければならない。
MLlibは、以下の "家族" をサポートGeneralizedLinearRegression
クラスを介して処理されるスパーク2.0で
さらに更新Regression
:
- ガウス
- 二項
- ポアソン
- ガンマ
計算それはスパークに予測するために観察をロードするのにかかるように予測が早くに関するを完了する必要があり、そして - 同様LogisticRegression
BLAS.dot(features, coefficients) + intercept
にWeightedLeastSquares
によって行われるので、複雑さは予測のため低いですそのサイズにかかわらず。それはちょうど1つのマシンのメモリに収まる必要があります。
関連する問題
- 1. モデルトレーニング後のケラス予測
- 2. Task.Delay()の進捗状況を取得しますか?長時間実行手順の進捗状況を取得しますか?手順で
- 3. spark mllibのロジスティック回帰における生の予測は何ですか?
- 4. 予期しない、長時間実行中のブロッキングトランザクション
- 5. 長時間実行中のAjaxリクエストでタイムアウトを防止する
- 6. 'クエリの中断'、非常に長いMySQLの手順を実行するには?
- 7. 実行中のループを使用してローリング予測を取得する方法
- 8. 長時間実行中のエクスプレスAPIプロセスを別のスレッドで実行するNodeJs
- 9. 長時間実行中のジョブSpring
- 10. ワークフロー4長時間実行中のブックマーク
- 11. 長時間実行中のバックグラウンドタスク、Android
- 12. .Net長時間実行予定のコードの実行
- 13. Apache SparkとScalaの並列実行時間と順次実行時間を測定するには
- 14. 長時間実行されているRailsの移行手順が終了していないようです
- 15. 石英ジョブの最後の実行時間を取得する
- 16. 時間がかかる測定を実行中にmatplotlibでライブプロットする
- 17. デバイス上でXCUITestを実行するための手順は何ですか?
- 18. スレッドの実行順序を予測不可能にする原因は何ですか?
- 19. 長時間実行中のタスクの遅延をキャンセルする
- 20. 「コンパイル時間」と「実行時間」の違いは何ですか?
- 21. 実行時間このアルゴリズムの実行時間は何ですか
- 22. バックグラウンドで長時間実行するタスク
- 23. ドライバの実行ファイルへのパスを設定する手順は何ですか?
- 24. 長時間実行中のFastcgiプロセスを強制終了する
- 25. JavaScriptスクリプトの実行時間が長すぎます。スクリプトの取得に時間がかかりすぎる
- 26. 長時間実行中の画面スクラップスクリプトの実行
- 27. 実行時間の測定 - プログラムコードまたはシェルでの測定?
- 28. JSFでアクションの実行時間を測定する方法は?
- 29. 長時間実行中の操作がメインスレッドで実行されています
- 30. クエリでMYSQLクエリの実行時間を取得するには
あなたの答えをありがとうございますが、訓練されたモデルを既に持っていて機能が巨大である場合、私たちはどのように「リアルタイムで予測を計算するのですか? 'predict'メソッドが、非常に高い次元のフィーチャなどの理由で遅い場合、それをリアルタイムで作成する方法はありますか? –
@Stephenああ、私は十分に注意を払っていなかった。 "100Meg機能"。それは多いです。ソースコードを見て、それが実際に何を意味するのかを見てみましょう。 – javadba
@Stephen答えを更新しました。 Spark2.0のLogReg専用の重要な考慮事項は、バイナリ分類のみをサポートすることです。あなたのOPから、回帰がありました:あなたが特定の(異なる)回帰アルゴリズムを念頭に置いているかどうかは分かります。私はここでもいくつかの提案をするために答えを更新しました。 – javadba