June 11, 2014 by かわむら
おこんにちは、かわむらです。
梅雨ですね。
毎日雨でほんと嫌になりますね。
しかも結構な頻度で結構な豪雨な感じ、とっても嫌ですね。
早く梅雨明けしないかな〜〜〜
そんな陰鬱としてる気持ちを晴らすため、今日は珍しく技術的なことを書いていきます。
わたくし、仕事の中で機械学習を勉強しとります。
機械学習というのは、人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のことです。(ウィキペディア談)
つまり、いくつかのデータの中から有用な規則、ルール、知識表現、判断基準などを抽出して、
それを基に未知のものを予測したり、分類わけしたり、いろいろするんです。
機械が学習する分だけ賢くなってくんです。
すごいね!機械かわいいね!
機械学習にもいろいろと種類があるんですが、今回はレコメンドにちょっと触れたいとおもいまっす。
レコメンドってのは、よくあるおすすめ機能的なもんですね。
この場合はあるデータを学習しておいて、未知のデータに対して類似したデータを示すものです。
ちなみに機械学習のライブラリ・フレームワークにはいろいろ種類がありますが、
代表的なのにはApache社のMahoutや、株式会社Preferred InfrastructureとNTTソフトウェアイノベーションセンタが共同開発したJubatusなどがあります。
ちなみに使ってみた感じでは、MahoutよりJubatusのほうがとっつきやすい感じでした。Jubatusのがロゴかわいいしね。
今回はJubatusを使ってポケモンのレコメンドをしてみたいと思います。
してみたいと思います、と言いつつ大したことはしてないです。
Jubatus本体とJubatusクライアントをインストールして、
ぱぱっとやるだけ。
対象となるのはコチラのデータ。
649体のポケモンと、各パラメータ(HP、こうげき、ぼうぎょ、とくこう、とくぼう、すばやさ)があります。
フシギダネ,45,49,49,65,65,45
フシギソウ,60,62,63,80,80,60
フシギバナ,80,82,83,100,100,80
ヒトカゲ,39,52,43,60,50,65
リザード,58,64,58,80,65,80
リザードン,78,84,78,109,85,100
ゼニガメ,44,48,65,50,64,43
カメール,59,63,80,65,80,58
カメックス,79,83,100,85,105,78
キャタピー,45,30,35,20,20,45
トランセル,50,20,55,25,25,30
バタフリー,60,45,50,80,80,70
以下続く。
これらを一度学習してから同じデータ内でレコメンドしてみた結果がこちら。
フシギダネ is similar to : フシギソウ フシギバナ バニリッチ
フシギソウ is similar to : フシギバナ フシギダネ アメモース
フシギバナ is similar to : フシギソウ アメモース フシギダネ
ヒトカゲ is similar to : ヒトカゲ マグマラシ リザード
リザード is similar to : リザード バクフーン リザードン
リザードン is similar to : リザードン マグマラシ リザード
ゼニガメ is similar to : チコリータ カメール ベイリーフ
カメール is similar to : ベイリーフ カメックス チコリータ
カメックス is similar to : メガニウム カメール ベイリーフ
キャタピー is similar to : ビードル オオタチ ヤルキモノ
トランセル is similar to : コクーン タマタマ バルジーナ
バタフリー is similar to : ルナトーン キルリア ムウマ
以下続く。
こんなかんじで結果が出てきます。
キャタピーがヤルキモノに似てるらしいのが謎です。
自分、ポケ廃ではないのであんまわかりませんが、
なんとなくある程度類似のものを出せてる気もします。
あとまあ当然のことながら学習対象に自分自身が含まれているのでちょっとオカシイとこもありますが、
大体こんな感じです。
ちなみに私は初代からXYまで全部プレイしましたが結構忘れてるポケモンがたくさんいました。
最近のポケモン数が多すぎるねん…
そんな感じでアデュー!