Mahout-machine-learning

提供:Dev Guides
移動先:案内検索

Mahout-機械学習

Apache Mahoutは、開発者が最適化されたアルゴリズムを使用できるようにする非常にスケーラブルな機械学習ライブラリです。 Mahoutは、推奨、分類、クラスタリングなどの一般的な機械学習技術を実装しています。 したがって、先に進む前に、機械学習に関する簡単なセクションを用意することをお勧めします。

機械学習とは何ですか?

機械学習は、システムが自動的に学習し、経験とともに向上するようにシステムをプログラミングすることを扱う科学の一分野です。 ここで、学習とは、入力データを認識して理解し、提供されたデータに基づいて賢明な決定を下すことを意味します。

すべての可能な入力に基づいてすべての決定に応えることは非常に困難です。 この問題に取り組むために、アルゴリズムが開発されています。 これらのアルゴリズムは、統計、確率論、論理、組み合わせ最適化、検索、強化学習、および制御理論の原理を使用して、特定のデータと過去の経験から知識を構築します。

開発されたアルゴリズムは、次のようなさまざまなアプリケーションの基盤を形成します。

  • ビジョン処理
  • 言語処理
  • 予測(株式市場の動向など)
  • パターン認識
  • ゲーム
  • データマイニング
  • エキスパートシステム
  • ロボティクス

機械学習は広大な領域であり、すべての機能をカバーすることはこのチュートリアルの範囲をはるかに超えています。 機械学習技術を実装する方法はいくつかありますが、最も一般的に使用されるのは*教師あり*および*教師なし学習*です。

教師あり学習

教師あり学習では、利用可能なトレーニングデータから関数を学習します。 教師あり学習アルゴリズムがトレーニングデータを分析し、推論された関数を生成します。これは、新しい例をマッピングするために使用できます。 教師あり学習の一般的な例は次のとおりです。

  • 電子メールをスパムとして分類し、
  • コンテンツに基づいてWebページにラベルを付ける
  • 音声認識。

ニューラルネットワーク、サポートベクターマシン(SVM)、Naive Bayes分類器など、多くの教師あり学習アルゴリズムがあります。 MahoutはNaive Bayes分類器を実装しています。

教師なし学習

教師なし学習は、トレーニング用に事前定義されたデータセットがなくても、ラベルのないデータの意味があります。 教師なし学習は、利用可能なデータを分析し、パターンと傾向を探すための非常に強力なツールです。 同様の入力を論理グループにクラスタリングするために最も一般的に使用されます。 教師なし学習への一般的なアプローチは次のとおりです。

  • k-means
  • 自己組織化マップ、および
  • 階層的クラスタリング

勧告

推奨は、以前の購入、クリック、評価などのユーザー情報に基づいて綿密な推奨を提供する一般的な手法です。

  • Amazonはこの手法を使用して、興味のある可能性のある推奨アイテムのリストを表示し、過去のアクションから情報を引き出します。 Amazonの背後で動作して、ユーザーの行動をキャプチャし、以前のアクションに基づいて選択したアイテムを推奨する推奨エンジンがあります。
  • Facebookは、推奨テクニックを使用して、「知っている可能性のある人」リストを特定して推奨します。

推奨

分類

*categorization* とも呼ばれる分類は、既知のデータを使用して、新しいデータを既存のカテゴリのセットに分類する方法を決定する機械学習手法です。 分類は教師あり学習の一種です。
  • Yahoo!などのメールサービスプロバイダー Gmailはこの手法を使用して、新しいメールをスパムとして分類するかどうかを決定します。 分類アルゴリズムは、特定のメールをスパムとしてマークするユーザーの習慣を分析することにより、トレーニングを行います。 それに基づいて、分類子は、今後のメールを受信トレイまたはスパムフォルダーのどちらに保管するかを決定します。
  • iTunesアプリケーションは、分類を使用してプレイリストを準備します。

分類

クラスタリング

クラスタリングは、共通の特性に基づいて同様のデータのグループまたはクラスターを形成するために使用されます。 クラスタリングは、教師なし学習の一形態です。

  • GoogleやYahoo!などの検索エンジン クラスタリング手法を使用して、同様の特性を持つデータをグループ化します。
  • ニュースグループは、クラスタリング手法を使用して、関連トピックに基づいてさまざまな記事をグループ化します。

クラスタリングエンジンは、入力データを完全に処理し、データの特性に基づいて、グループ化するクラスターを決定します。 次の例を見てください。

クラスタリング

チュートリアルのライブラリには、さまざまなテーマに関するトピックが含まれています。 finddevguidesで新しいチュートリアルを受け取ると、その内容に基づいてグループ化する場所を決定するクラスタリングエンジンによって処理されます。