webdevqa.jp.net

Spark MLパッケージとMLLIBパッケージの違いは何ですか

SparkMLにはMLのパッケージとLinearRegressionModelパッケージのクラスの2つのMLLibクラスがあることに気付きました。

これら2つはまったく異なる方法で実装されています。 MLLibの1つはSerializableを実装しますが、もう1つは実装しません。

ちなみに、RandomForestModelについてはameがtrueです。

なぜ2つのクラスがあるのですか? 「正しい」ものはどれですか?そして、一方をもう一方に変換する方法はありますか?

32
vyakhir

o.a.s.mllibには古いRDDベースのAPIが含まれますが、o.a.s.mlには、DatasetおよびMLパイプラインを中心とした新しいAPIビルドが含まれています。 mlmllibは2.0.0で機能パリティに到達し、mllibは徐々に非推奨になり(線形回帰の場合に既に発生しています)、おそらく次の時点で削除されますメジャーリリース。

したがって、目標が下位互換性でない限り、「正しい選択」はo.a.s.ml

36
zero323

Spark Mllib

spark.mllibには、RDDの上に構築されたレガシーAPIが含まれています。

Spark ML

spark.mlは、MLパイプラインを構築するためのDataFramesの上に構築された高レベルAPIを提供します。

[ 公式発表

Spark 2.0の時点で、spark.mllibパッケージのRDDベースのAPIはメンテナンスモードに入りました。Sparkの主要なMachine Learning APIは現在DataFrameですspark.mlパッケージのApacheベースのAPI Apache sparkはspark.mlの使用を推奨

  • MLlibは、spark.mllibのRDDベースのAPIを引き続きバグ修正とともにサポートします。
  • MLlibは、RDDベースのAPIに新しい機能を追加しません。

  • Spark 2.xリリースでは、MLlibはDataFramesベースのAPIに機能を追加して、RDDベースのAPIと同等の機能を実現します。

  • 機能パリティ(Spark 2.3)の概算)に達した後、RDDベースのAPIは廃止されます。
  • RDDベースのAPIは、Spark 3.0で削除される予定です。

MLlibがDataFrameベースのAPIに切り替わるのはなぜですか?

  • DataFramesは、RDDよりもユーザーフレンドリーなAPIを提供します。 DataFramesの多くの利点には、Spark Datasources、SQL/DataFrameクエリ、タングステンおよびCatalyst最適化、および言語間の統一APIが含まれます。

  • MLlib用のDataFrameベースのAPIは、MLアルゴリズムおよび複数の言語にわたって統一されたAPIを提供します。

  • DataFrameは、実用的なMLパイプライン、特に機能変換を促進します。詳細については、パイプラインガイドを参照してください。

詳細情報はドキュメントを読む- https://spark.Apache.org/docs/latest/ml-guide.html

8
vaquar khan