HadoopでMahoutを使用して機械学習をお楽しみください

「象使い」は、象に乗る人を表すヒンディー語です。この場合、象はHadoopです。MahoutはHadoopの上に置くことができる多くのプロジェクトの1つですが、実行するためにMapReduceが常に必要なわけではありません。

Mahoutは、InterWebを作成する単なる人間の開発者の手に強力な数学ツールを提供します。これは、最も人気があり重要な機械学習アルゴリズムの実装のパッケージであり、実装の大部分は、Hadoopを使用して巨大なデータセットのスケーラブルな処理を可能にするように特別に設計されています。一部のアルゴリズムは、アルゴリズムの性質上、並列化できない「シリアル」形式でのみ使用できますが、すべてのアルゴリズムでHDFSを利用して、Hadoop処理パイプライン内のデータに簡単にアクセスできます。

[Hadoopについて今すぐ知ってください| 難しいことではなく、賢く作業する-プログラマーが知る必要のあるすべてのヒントとトレンドについては、開発者サバイバルガイドをダウンロードしてください。| のテクノロジー:アプリケーションニュースレターで、ビジネスアプリケーションの新機能をご覧ください。]

機械学習は、おそらく人工知能(AI)の最も実用的なサブセットであり、確率的および統計的学習手法に焦点を当てています。AIオタクの皆さんのために、Mahoutに含まれている機械学習アルゴリズムのいくつかを次に示します。K-meansクラスタリング、ファジーK-meansクラスタリング、K-means、潜在的ディリクレ割り当て、特異値分解、ロジスティック回帰、単純ベイズ、ランダム森。Mahoutは、「推奨事項」(人気のあるeコマースサイトまたはソーシャルネットワーク)を生成するための高レベルの抽象化も備えています。

誰かが機械学習、AI、谷本係数について話し始めると、おそらくポップコーンを作って元気になりますよね?私もダメ。奇妙なことに、数学の複雑さにもかかわらず、Mahoutには使いやすいAPIがあります。ここに味があります:

//load our datafile somehow

DataModel model = new FileDataModel(new File("data.txt"));

ItemSimilarity sim = new LogLikelihoodSimilarity(model);

GenericItemBasedRecommender r = new GenericItemBasedRecommender(model, sim);

LongPrimitiveIterator items = dm.getItemIDs();

while(items.hasNext()) {

long itemId = items.nextLong();

List recommendations = r.mostSimilarItems(itemId, 10);

//do something with these recommendations

}

この小さな切り取りが行うことは、データファイルをロードし、アイテムを呪い、類似性に基づいて10個の推奨アイテムを取得することです。これは一般的なeコマースタスクです。ただし、2つのアイテムが類似しているからといって、両方が必要というわけではありません。実際、多くの場合、私はおそらく2つの類似したアイテムを購入したくないでしょう。つまり、最近自転車を購入しました。最も類似したアイテム、つまり別の自転車は必要ありません。ただし、自転車を購入した他のユーザーもタイヤポンプを購入したため、Mahoutはユーザーベースの推奨も提供しています。

どちらの例も非常に単純な推奨です。Mahoutは、いくつかの要素を取り入れ、ユーザーの好みと製品の機能のバランスをとることができる、より高度な推奨を提供します。これらはいずれも高度な分散コンピューティングを必要としませんが、Mahoutには必要な他のアルゴリズムがあります。

推奨を超えて

Mahoutは、派手なeコマースAPIをはるかに超えています。実際、他のアルゴリズムは予測、分類を行います(インターネット上のほとんどの音声および言語認識を強化する隠れマルコフモデルなど)。それはあなたがクラスターを見つけるのを助けることさえできます、あるいはむしろ、あなたがそれらを単一のアドレスに送ることができるように...人々の細胞または何かのようなものをグループ化することができます。

もちろん、悪魔は細部にあり、私は本当に重要な部分、つまりその最初の行について詳しく説明しました。

DataModel model = new FileDataModel(new File("data.txt"));

ねえ、もしあなたが数学オタクにすべての仕事をしてもらい、すべての計算をアルゴリズムを構成する10行程度に減らすことができれば、私たちは皆仕事から外れるでしょう。しかし、そのデータはどのようにして推奨に必要な形式になりましたか?そのアルゴリズムの実装を設計できることが開発者が大金を稼ぐ理由です。Mahoutが機械学習アルゴリズムの多くを実装するためにHadoopを必要としない場合でも、データを3つの列に単純に配置するためにHadoopが必要になる場合があります。推奨者が必要です。

Mahoutは、レコメンデーションエンジンからパターン認識、データマイニングまで、さまざまな機能を活用するための優れた方法です。私たちHadoopの記事に関する洞察に満ちたコメンテーターの一人が観察したように、業界としての私たちが大きくて太いHadoopの展開を終えると、機械学習とおそらくAIへの関心が爆発的に高まります。マハウトがお手伝いします。

この記事「HadoopでMahoutを使用して機械学習を楽しむ」は、もともと.comで公開されていました。アプリケーション開発の最新ニュースをチェックし、.comでAndrewOliverのStrategicDeveloperブログの詳細を読んでください。最新のビジネステクノロジーニュースについては、Twitterで.comをフォローしてください。