MLlib は、Apache Spark のスケーラブルな機械学習ライブラリです。

使いやすさ

Java, Scala, Python, R で利用可能です。

MLlib は Spark の API に適合し、Python では NumPy (Spark 0.9 以降) や R ライブラリ (Spark 1.5 以降) と相互運用できます。HDFS, HBase, ローカルファイルなど、あらゆる Hadoop データソースを使用できるため、Hadoop ワークフローへの組み込みが容易です。

data = spark.read.format("libsvm")\
  .load("hdfs://...")

model = KMeans(k=10).fit(data)
Python で MLlib を呼び出す

パフォーマンス

高品質なアルゴリズム、MapReduce より 100 倍高速。

Spark は反復計算に優れているため、MLlib を高速に実行できます。同時に、アルゴリズムのパフォーマンスも重視しており、MLlib には反復処理を活用する高品質なアルゴリズムが含まれており、MapReduce で使用されることがあるワンパス近似よりも優れた結果が得られます。

Hadoop および Spark におけるロジスティック回帰

どこでも実行可能

Spark は Hadoop、Apache Mesos、Kubernetes、スタンドアロン、またはクラウド上で、多様なデータソースに対して実行できます。

Spark は、スタンドアロンクラスタモード、EC2、Hadoop YARNMesos、または Kubernetes 上で実行できます。HDFS、Apache CassandraApache HBaseApache Hive、および数百の他のデータソースにアクセスできます。

アルゴリズム

MLlib には、多くのアルゴリズムとユーティリティが含まれています。

ML アルゴリズムには以下が含まれます。

  • 分類: ロジスティック回帰、ナイーブベイズなど
  • 回帰: 一般化線形回帰、生存回帰など
  • 決定木、ランダムフォレスト、勾配ブースティング木
  • レコメンデーション: 交互最小二乗法 (ALS)
  • クラスタリング: k-means、ガウス混合モデル (GMM) など
  • トピックモデリング: 潜在ディリクレ配分法 (LDA)
  • 頻出アイテムセット、アソシエーションルール、シーケンシャルパターンマイニング

ML ワークフローユーティリティには以下が含まれます。

  • 特徴量変換: 標準化、正規化、ハッシュ化など
  • ML パイプライン構築
  • モデル評価とハイパーパラメータチューニング
  • ML 持続化: モデルとパイプラインの保存と読み込み

その他のユーティリティには以下が含まれます。

  • 分散線形代数: SVD、PCA など
  • 統計: 要約統計量、仮説検定など

使用例については、MLlib ガイドを参照してください。

コミュニティ

MLlib は Apache Spark プロジェクトの一部として開発されています。そのため、Spark の各リリースでテストおよび更新されます。

ライブラリに関する質問は、Spark メーリングリストにお寄せください。

MLlib は急速に成長しているプロジェクトであり、貢献を歓迎します。MLlib にアルゴリズムを提出したい場合は、Spark への貢献方法をお読みになり、パッチをお送りください。

はじめに

MLlib を使い始めるには

  • Spark をダウンロードしてください。MLlib はモジュールとして含まれています。
  • さまざまな使用例を含む MLlib ガイドをお読みください。
  • 分散モードで実行したい場合は、クラスタへの Spark のデプロイ方法を学習してください。セットアップなしで、マルチコアマシン上でローカルに実行することもできます。