Skip to content

Instantly share code, notes, and snippets.

@myui
Last active August 29, 2015 14:21
Show Gist options
  • Save myui/3755f9158ec4d432493d to your computer and use it in GitHub Desktop.
Save myui/3755f9158ec4d432493d to your computer and use it in GitHub Desktop.
Parameters of train_mf_sgd
HivemallのMatrix Factorization学習のパラメタの説明です。
http://qiita.com/myui/items/dccb4f58799f080e24ab#%E3%83%90%E3%82%A4%E3%82%A2%E3%82%B9%E3%82%92%E8%80%83%E6%85%AE%E3%81%97%E3%81%9F-matrix-factorization
factor, mu, iterations以外は通常指定不要です。指定順序は関係ありません。
etaは場合によっては指定したほうがよいケースもあります。
1) "-factor 10"
The number of latent factor [default: 10]
潜在変数の数
2) "-lambda 0.03"
The regularization factor [default: 0.03]
正則化を制御するパラメタのλです。
3) "-mu 0.0"
The mean rating [default: 0.0]
評価値のμ(平均値)です。訓練データから算出してください。指定することをおすすめします。
4) "-update_mu" (パラメタはなし)
Whether update (and return) the mean rating or not
訓練事例に基づいて平均値を更新するかどうかです。muを最初に指定できない場合に利用しますが、通常は指定しないで結構です。
なお、-update_muを指定しますと、戻り値にmuが増えますのでご注意ください。
train_mf_sgd(userid, movieid, rating, "-update_mu") as (idx, u_rank, m_rank, u_bias, m_bias, mu)
5) "-rankinit random"
Initialization strategy of rank matrix [guassian, default: random]
行列の初期化手法です。デフォルトはrandomで、gaussianを指定するとガウス分布(正規分布)
で初期化されます。通常はrandomで良いかと思いますが、両方お試しください。
6) "-max_init_value 1.0"
The maximum initial value in the rank matrix [default: 1.0]
ランダムの初期化を行う際の初期値の取りうる値の最大値です。通常はデフォルトのままでokです。
7) "-min_init_stddev 0.1"
The minimum standard deviation of initial rank matrix [default: 0.1]
ガウス分布で初期化を行う際のパラメタです。初期値の標準偏差を指定します。
8) "-iterations 1"
The number of iterations [default: 1]
学習のイテレーション回数です。データセット次第ですが50程度を指定して頂ければよいかと思います。
学習が収束した場合は途中で学習が打ち切られます。
9) "-disable_cv" (パラメタはなし)
Whether to disable convergence check [default: enabled]
イテレーションを学習の打ち切りなしに行う場合に指定してください。通常は指定不要
10) "-convergence_rate 0.005"
Threshold to determine convergence [default: 0.005]
学習の収束を判断するためのパラメタです。デフォルトの0.005では
前回のイテレーションからの経験ロス(学習間違い)の変化が0.5%以下ならば学習が打ち切られます。
通常は指定不要です。
11) "-eta 0.005"
The fixed learning rate [default: 0.001]
このオプションを指定した場合は固定の学習率で学習が行われます。
学習データが巨大の場合は指定してもよいかもしれません。
通常は指定しないで、自動の学習率調整機能を使えばいいはずです。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment