2017.01.10

一日実装をしていた。sklearn の BaseEstimation を extend して MatrixFactorization を実装していたつもりだったんだが、入力の形式が間違っていたので GridSearch やら CrossValidation やらが出来ずに困ったので、実装をやり直した。

教師有り学習の場合、BaseEstimation の fit() は X, y を引数にするんだが、MF って数式だと各ユーザによる各アイテムへの評価値が入った行列 Y になるので、入力は X と y のように特徴量とターゲットに分かれていない。そういうわけで入力形式を合わせるために MF を 書き直した。で、書き直したら 3 倍遅くなってがっくりした。ほとんど同じ処理なんだが、うーむ。

FMs も正則化項の付け方を変えてみた。