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

ここのコンテストの一つにRのパッケージとユーザー名(番号)だけ与えられて、インストールするかどうかを予測せよってものがある。訓練データの方には同一ユーザーが他のパッケージがインストールしたかどうかの情報と、各パッケージの情報(依存パッケージの数やコアパッケージであるか否か等)が与えられている。賞金の額は150$なので1万5000円くらい。

最初はTokyo.Rの発表用のネタのために申し込んでみたのだが、データもシンプルだし、これはモデルの精度を少しずつ上げていく修行になるかもと思い、まじめに取り組んでみることにした。

閲覧数とインストール割合

インストールの有無についてユーザー側の行動の視点からみてみる。
ユーザーの行動に関しての情報は少ない。パッケージを閲覧した数くらい。
これをざっと散布図で確認する。

番号はユーザー番号を示しており、横軸は閲覧数、縦軸はパッケージをインストールした割合である。
5番だけあほみたいにインストールしている。他のユーザーは高くてもせいぜい2割。閲覧数との関係は相関係数で0.47で微妙。

パッケージ属性とインストール割合

今度はインストールの有無についてパッケージ側の視点からみてみる。
パッケージ属性は、パッケージ名、他のパッケージから依存されているパッケージ数、他のパッケージからのsuggestion数、他パッケージのインポート数、task viewに含まれている数、コアパッケージか否か、リコメンドパッケージか否か、maintainerの氏名の計8つ。

なお、今回、パッケージ名、コアパッケージか否か、リコメンドパッケージか否か、maintainerの氏名以外の属性は対数をとったものがあるのでそちらを用いることにする。また、maintainerの氏名についてはインストールには関係ないだろうと邪推して除く。

各パッケージごとにインストール割合を算出し、パッケージをざっと10グループにクラスタリングし、グラフにしてみる。


こうしてみると、インストール割合が高いグループと低いグループで各属性に傾向が現れており、Suggestionが多く、なおかつ依存されているパッケージがインストールされる割合が高いという結果になっている。これはあるパッケージをインストールする際についでにインストールするという様子を思い浮かべればまあ納得のいく結果。またリコメンドパッケージか否かも大きく関わっている。
とりあえず今日はここまで