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

MLlibはSparkの機械学習(ML)ライブラリです。その目標は、実用的な機械学習をスケーラブルで容易にすることです。高レベルでは、次のようなツールを提供します。

お知らせ: DataFrameベースのAPIが主要なAPIです

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

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

どのような影響がありますか?

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

「Spark ML」とは何ですか?

MLlibは非推奨ですか?

依存関係

MLlibは、最適化された数値処理のために線形代数パッケージBreezedev.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トーク「Scalaにおける高性能線形代数」をご覧ください。