dump model:
//libfm-1.42.src/src/fm_core/fm_model.h
void dump_model();
void fm_model::dump_model() {
std::ofstream ofile;
ofile.open("./model");
for (uint i = 0; i < w.dim; i++) {
ofile << i << " " << w.get(i) << std::endl;
}
for (uint i = 0; i < v.dim2; i++) {
ofile << i;
for (uint j = 0; j < v.dim1; j++ ) {
ofile << " " << v.get(j, i);
}
ofile << std::endl;
}
ofile.close();
}
//libfm-1.42.src/src/libfm/libfm.cpp
//after fml->learn(train, test);
fml->fm->dump_model();
常用训练命令:
Stochastic Gradient Descent (SGD)
./libFM -task r -train train.libfm -test -test.libfm -dim ’1,1,8’ -iter 1000 -method sgd -learn_rate 0.01 -regular ’0,0,0.01’ -init_stdev 0.1
Alternating Least Squares (ALS)
./libFM -task r -train ml1m-train.libfm -test ml1m-test.libfm -dim ’1,1,8’ -iter 1000 -method als -regular ’0,0,10’ -init_stdev 0.1
Markov Chain Monte Carlo (MCMC)
/libFM -task r -train ml1m-train.libfm -test ml1m-test.libfm -dim ’1,1,8’ -iter 1000 -method mcmc -init_stdev 0.1
参考:https://www.aliyun.com/zixun/wenji/1294029.html?spm=5176.100040.1.18.50eb3379rnL7xW
https://blog.youkuaiyun.com/chloezhao/article/details/53462411