Mahoutには機械学習や分析のアルゴリズムがいろいろ入っていますが、機械学習を始めたばかりの人にはいまいちなじみにくいと思います。そこで、どんなアルゴリズムがあるのか、簡単ですが概要を調べました。元ネタはMahoutのList of Algorithmのページです。
今回対象にしたMahoutのバージョンは0.9です。バージョンが上がると使えるアルゴリズムがどんどん変わるのでこの内容もすぐに陳腐化するかもしれません。ご注意ください。
協調フィルタリング (Collaborative Filtering)
種別 | 内容 |
---|---|
User-Based Collaborative Filtering | 自分と似たアイテムを買っている人が持っている別のアイテムをおすすめするレコメンド。Background of collaborative filtering with Mahout から引用しましたがこの図がわかりやすいです。![]() |
Item-Based Collaborative Filtering | 自分の買ったアイテムに類似するアイテムをおすすめするレコメンド。類似の基準はオプションで指定するようです。これも上記と同じサイトの図がわかりやすいです。![]() |
Matrix Factorization with Alternating Least Squares | ユーザーがこれまでアイテムにつけた評価をもとに別のアイテムの評価を予測するレコメンド。Matrix Factorizationという行列積分解の手法を使うそうです。 |
Matrix Factorization with Alternating Least Squares on Implicit Feedback | 上記のレコメンドに暗黙的フィードバックを加えたもの。 |
ほかには、Weighted Matrix Factorization,SVD++, Parallel SGD(確率的勾配降下法)などがあります。
分類 (Classification)
種別 | 内容 |
---|---|
Logistic Regression | ロジスティック回帰による分類です。 |
Naive Bayes | ナイーブベイズ(単純ベイズ分類器)による分類です。 |
Complementary Naive Bayes | 上記ナイーブベイズの拡張。あるクラスに属さない補集合(Complement)を用いて学習させる。 |
Random Forest | 複数の木構造モデルを作り集団学習させる手法。SVMなどの手法に比べ特徴量の重要度が学習とともに計算できること、学習が早いこと、過学習が起きにくいことなどの利点があるそうです |
Hidden Markov Models (HMM) | 隠れマルコフモデル。時系列のデータをパターンで分類するのに良く使われます。少し前までの音声認識の主流方法でした。 |
Multilayer Perceptron | 多層パーセプトロン。これに決めつけると怒られるかもしれませんが、いわゆるニューラルネットです。 |
その他
クラスタリング (Clustering)、Topic Modelsなどがあります。が、これらについてはMahoutで使える学習アルゴリズム (2) にて。
勉強中なので間違っているところもあるかと思いますが、誤りありましたらコメントください。