Rパッケージリコメンデーションコンテストその2

その1の続き。とはいえコンテストはずいぶん前に終わってしまったのでこれは備忘録。

ユーザーとパッケージの相互関係

昨日はユーザーとパッケージのそれぞれの視点からのインストール割合をみた。まとめると以下のようになる。

  1. ユーザーは一人を除くとせいぜい2割程度のインストール割合
  2. パッケージはsuggestionおよびdependencyが多くrecommendされているものが多くインストールされている

ここで気になるのは相互関係。つまりどのようなユーザーがどのようなパッケージをインストールしているのか、そこに傾向はあるのか。

ということでユーザーを5つのグループにクラスタリングで分け、各ユーザーグループごとに10に分けたクラスターパッケージのそれぞれのインストール割合を確認した。

こうしてみるとユーザーごとにパッケージの嗜好性は変わらない印象を受ける。

これまでの結果を受けてどのように考えるか

ユーザーを大きく3グループ(どのパッケージでもインストールするグループ、どのパッケージもインストールしないグループ、どちらでもないグループ)に分けて、あとは比較的重要度の高い説明変数であるSuggestion数、依存されているパッケージ数、recommendの有無を入れたモデルを作って予測すれば良いように思える。
予測モデルに何を使うかだが、今回は作成したモデルを改めてアプリ等に実装する必要もないので複雑なモデルでも構わないだろうと言うことでランダムフォレストを使う。なお、この場合説明変数も特に絞る必要もなさそうなので、パッケージごとのインストール割合を確認した時の説明変数は全て加えてみる。
ユーザーのグループ分けは5つにグループ分けした際に似たような挙動を示しているグループは一緒にして、先に挙げた3つにまとめる。

こんな感じで予測をすることを考えていたがあえなく時間切れ。

ちなみに優勝者のインタビュー記事は下記の通り。そんなに突飛なことはしてない印象。
http://www.kaggle.com/blog/2011/02/15/dave-slate-on-winning-the-r-challenge/