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

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

お知らせ:DataFrameベースのAPIがプライマリAPIです

MLlibのRDDベースAPIは現在メンテナンスモードです。

Spark 2.0以降、spark.mllibパッケージのRDDベースAPIはメンテナンスモードに入りました。Sparkの主要な機械学習APIは、現在spark.mlパッケージのDataFrameベースAPIです。

これはどのような意味を持ちますか?

MLlibがDataFrameベースAPIに移行する理由は何ですか?

「Spark ML」とは何ですか?

MLlibは非推奨になりましたか?

依存関係

MLlibは、最適化された数値処理のために線形代数パッケージBreezeおよびdev.ludovic.netlibを使用しています1。これらのパッケージは、システムライブラリまたはランタイムライブラリパスで利用可能な場合、Intel MKLまたはOpenBLASなどのネイティブ高速化ライブラリを呼び出すことがあります。

ただし、ネイティブ高速化ライブラリはSparkと共に配布できません。高速化された線形代数処理を有効にする方法については、MLlib線形代数高速化ガイドを参照してください。高速化されたネイティブライブラリが有効になっていない場合、以下のような警告メッセージが表示され、代わりに純粋なJVM実装が使用されます。

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

PythonでMLlibを使用するには、NumPyバージョン1.4以降が必要です。

3.0のハイライト

以下のリストは、Sparkの3.0リリースでMLlibに追加された新機能と強化機能のいくつかを強調しています。

移行ガイド

移行ガイドはこのページにアーカイブされました。

  1. システム最適化ネイティブの利点と背景について詳しく知りたい場合は、Sam HallidayによるScalaXの講演「High Performance Linear Algebra in Scala」をご覧ください。