Hi,
I've been testing libFM using the pywFM package which is a wrapper for cli interface to libFM,
My question involves understanding how the predictions links to the information that is produced in the output
My specific example: If i run libFM with a train and test dataset, i can see in the output test(ll) drops to 0.515385, if i take the predictions and run the test predictions against the test label i get logloss values of 2.XXX.
I would have though that the predictions and Test(ll) value should match? or am i misunderstanding the output in some way?
FYI the labels are 0,1 an param equivalent (im running in a wrapper so data is converted) would be:
./libFM -task c -train XXX.libfm -test XXX.libfm -dim '1,1,5' -iter 10 -method mcmc -init_stdev 0.1
#Iter= 0 Train=0.666074 Test=0.668503 Test(ll)=0.665911
#Iter= 1 Train=0.693502 Test=0.694918 Test(ll)=0.606683
#Iter= 2 Train=0.707983 Test=0.693256 Test(ll)=0.570645
#Iter= 3 Train=0.730493 Test=0.711274 Test(ll)=0.526459
#Iter= 4 Train=0.731135 Test=0.711274 Test(ll)=0.513271
#Iter= 5 Train=0.692782 Test=0.714686 Test(ll)=0.515833
#Iter= 6 Train=0.702832 Test=0.70419 Test(ll)=0.516339
#Iter= 7 Train=0.698818 Test=0.7097 Test(ll)=0.514831
#Iter= 8 Train=0.709859 Test=0.707076 Test(ll)=0.515032
#Iter= 9 Train=0.714223 Test=0.711624 Test(ll)=0.515385
Full thread on Kaggle: