2.5 Evaluating the GroupLens data set
GroupLens (http://www.grouplens.org/) が提供しているデータセットを使ってみようの回。
映画のリコメンデーションサイト MovieLens のデータが様々なサイズで提供されています。http://www.grouplens.org/node/73
今回はこのうち MovieLens 100k を使います。
前回 (http://d.hatena.ne.jp/akr4/20111121/1321878009) のコード例の FileDataModel のパスを書き換えてやるだけ。FileDataModel は csv でも tsv でもうまく読んでくれるそうです。
val model = new FileDataModel(new File("data/ml-100k/ua.base"))
AverageAbsoluteDifferenceRecommenderEvaluator で試すと 0.98 でした。1-5 の preference だからこの結果はまずまずですかな?
続いて Recommender を SlopeOneRecommender に切り替えてみます。
lazy val slopeOne = new RecommenderBuilder { def buildRecommender(model: DataModel) = new SlopeOneRecommender(model) }
AverageAbsoluteDifferenceRecommenderEvaluator の結果は 0.74 と出ました。GenericUserBasedRecommender より良い結果ですが、データセットによって変わりますよとのこと。
これで 2 章おわり。