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

MLlibはSparkの機械学習(ML)ライブラリです。その目的は実用的な機械学習をスケーラブルおよび簡単にすることです。MLlibは一般的な機械学習アルゴリズムとユーティリティからなるSparkのスケール可能な機械学習ライブラリで、分類、回帰、クラスタ化、協調フィルター、次元削減、そして低レベル optimization primitivesと高レベルpipeline API を含んでいます。

2つのパッケージに分割されます:

DataFrameを使うとAPIがもっと多目的および柔軟になるため、spark.ml の使用をお勧めします。しかし、spark.mlの開発と一緒に spark.mllib のサポートを続けるつもりです。ユーザはspark.mllib機能の利用が便利でもっと多くの機能が増えることを期待できるでしょう。開発者はspark.mllibに新しいアルゴリズムの貢献をしなければならず、任意に spark.mlに貢献することができます。

以下に両方の詳細なガイドへのリンクと主な機能をリスト表示します。

spark.mllib: データタイプ、アルゴリズムおよびユーティリティ

spark.ml: ML パイプラインのための高レベルAPI

Some techniques are not available yet in spark.ml, most notably dimensionality reduction Users can seamlessly combine the implementation of these techniques found in spark.mllib with the rest of the algorithms found in spark.ml.

依存

MLlib は線形代数パッケージ Breezeを使用します。これは最適化された数学処理のためにnetlib-javaに依存します。実行時にネイティブライブラリ1が利用できない場合は、警告メッセージが表示され、ピュアJVM実装が代わりに使われるでしょう。

ランタイムのプロプライエタリ バイナリのライセンスの問題で、デフォルトではnetlib-javaのネイティブ proxiesを含んでいません。システムに最適化されたバイナリを使用するために netlib-java / Breeze を設定するには、プロジェクトの依存としてcom.github.fommil.netlib:all:1.1.2 をインクルード(あるいはSparkを -Pnetlib-lgpl付きでビルド)して、プラットフォームの追加のインストレーション説明のために netlib-javaドキュメントを読んでください。

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

Migration guide

MLlib はアクティブに開発中です。Experimental/DeveloperApiと印が付けられているAPIは将来のリリースで変更するかも知れません。以下の移行ガイドはリリース間の全ての変更を説明するでしょう。

1.5から1.6

spark.mllib あるいは spark.mlパッケージの中で、APIの断絶となる変更はありませんが、非推奨と挙動の変更があります。

非推奨:

挙動の変更:

以前のSparkのバージョン

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


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

TOP
inserted by FC2 system