機械学習ライブラリ(MLlib)ガイド

MLlibはSparkの機械学習(ML)ライブラリです。その目的は実用的な機械学習をスケーラブルおよび簡単にすることです。高レベルでは、それは以下のようなツールを提供します:

発表: データフレームに基づいたAPIは主要なAPIです

MLlib RDDベースのAPIは、今はメンテナンスモードにあります。

Spark 2.0の時点で、spark.mllibパッケージ内のRDDに基づいたAPIはメンテナンスモードに入りました。Sparkのための主要な機械学習APIは、今はspark.mlパッケージ内のDataFrameに基づいたAPIです。

何を意味するのか?

なぜMLlibはデータフレームに基づいたAPIに切り替わっているのか?

"Spark ML"とは何か?

MLlibは非推奨ですか?

依存

MLlibは最適化された数値処理のために線形代数パッケージ Breeze, dev.ludovic.netlib, netlib-javaを使います。これらのパッケージは、システムライブラリまたはランタイムライブラリパスで使える場合、Intel MKLOpenBLASなどのネイティブアクセラレーションライブラリを呼び出すことができます。

ただし、ネイティブアクセラレーションライブラリをSparkと一緒に配布することはできません。アクセラレート線形代数処理を有効にする方法については、MLlib Linear Algebra Acceleration Guideを見てください。アクセラレートネイティブライブラリが有効になっていない場合は、以下のような警告メッセージが表示され、代わりに純粋なJVM実装が使われます:

WARN BLAS: Failed to load implementation from:dev.ludovic.netlib.blas.JNIBLAS

PythonでMLlibを使用するには、NumPy バージョン1.4以上が必要になるでしょう。

3.0 の見どころ

以下のリストはSpark 3.0 リリースでMLlibに追加された特徴と拡張の幾つかを強調します:

移行ガイド

移行ガイドは今はこのページに保管されています。

  1. システムに最適化されたネイティブコードの恩恵とバックグラウンドについて知るために、High Performance Linear Algebra in ScalaでのSam HallidayのScalaXトークを見たいと思うかも知れません。 

TOP
inserted by FC2 system