メニューボタン閉じるボタン

ビックデータ分析に対応できる機械学習ライブラリ Apache Mahoutとは?

今回は、Apache Mahoutという機械学習ライブラリのご紹介をしたいと思います。
機械学習としてはクラスタリングとか、レコメンデーション、分類などをするライブラリになります。
簡単に導入が可能で、Hadoopなどの分散環境下にて実行できることが出来ます。

■ なぜ、mahout?

機械学習というのは、計算に基づいて結果を出していくのですが、その対象となるデータ量が多ければ多いほど、確度の高い結果を出してくれます。
しかし、データ量が多ければ多いほど、指数的に計算量が増加してしまいます。

近年では、このような大量データ処理のニーズは高まっています。
特に大量のデータを扱うアドテクノロジーなどのDSP・RTBなどの仕組みを支えるため、
大量データ処理をこなさなけれななりません。

そこで、「Apache Hadoop」という技術が注目されてきました。
Hadoopとは、大量のデータを手軽に複数のマシンに分散して処理できるオープンソースのプラットフォームです。

Hadoop上では、MapReduceというHadoopで処理を記述するプログラミングモデルにてプログラムを実装していくことになります。
しかし、MapReduceでの実装は、機械学習のアルゴリズムを実装しようとすると、中々大変で開発現場でのリソースを大きく取ってしまいます。
そこで、Hadoopなどの分散環境で動作する機械学習のライブラリとして開発されたのがmahoutです。

1460444860191

引用元: https://www.gmo.jp/report/single/?art_id=40

■ mahout で使える機械学習アルゴリズム

以下に、Hadoopなどの分散環境下にて利用できるアルゴリズムを挙げます。

Collaborative Filtering with CLI drivers (協調フィルタリングに関連するアルゴリズム)

 
  User-Based Collaborative Filtering
  Item-Based Collaborative Filtering
  Matrix Factorization with ALS
  Matrix Factorization with ALS on Implicit Feedback
  Weighted Matrix Factorization, SVD++

Classification with CLI drivers (分類問題に関連するアルゴリズム)

 
  Logistic Regression – trained via SGD
  Naive Bayes / Complementary Naive Bayes
  Hidden Markov Models deprecated

Clustering with CLI drivers (クラスタリングに関連するアルゴリズム)

 
  Canopy Clustering
  k-Means Clustering
  Fuzzy k-Means
  Streaming k-Means
  Spectral Clustering

Dimensionality Reduction note: most scala-based dimensionality reduction algorithms are available through the Mahout Math-Scala Core Library for all engines (構造抽出,汎化能力の向上に関するアルゴリズム)

 
  Singular Value Decomposition
  Lanczos Algorithm
  Stochastic SVD
  PCA (via Stochastic SVD)
  QR Decomposition

このように、基本的な機械学習のアルゴリズムは用意されているので、大体の機械学習を必要とする要求には対応できると思います。

しかし、アルゴリズによっては、Hadoop上では、非推奨であったり、MapReduceでは動作しない場合があり、以下の

https://mahout.apache.org/users/basics/algorithms.html

での対応表を確認して、Sparkなどの他の分散環境下にて対応する必要がありますので、ご注意下さい。

■まとめ

今回はApache Mahoutという機械学習ライブラリのご紹介をしました。
やはり実際に大量のデータを分散環境下で分析してみて、処理速度を体感するのが一番だと思いますので、Mahoutを動かしてみて、とにかくデータを分析してみましょう!

次回は、実際のMahoutを利用しての大量のデータ分析の事例をご紹介したいと思います。

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

今すぐお気軽に
ご相談ください。

0120-315-465

(平日 10:00~19:00)

グラッドキューブは
「ISMS認証」を取得しています。

認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業

「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。

いますぐ無料で
お試しください。

SiTest の革新的な機能を
お試しいただけます。
利用規約

お名前【必須】
メールアドレス【必須】
電話番号【必須】