2017-09-04 48 views
0

我在R中有一个稀疏矩阵。使用包libFMexe我可以将矩阵转换为libFM的正确格式。我得到从R中的字符文件转换为.libfm格式

head(libFMmat) 
[1] "1 0:1 5000:1 33736:1 33737:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[2] "1 0:1 5001:1 33735:1 33737:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[3] "1 0:1 5002:1 33735:1 33736:1 33738:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[4] "1 0:1 5003:1 33735:1 33736:1 33737:1 33739:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[5] "1 0:1 5004:1 33735:1 33736:1 33737:1 33738:1 33740:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 
[6] "1 0:1 5005:1 33735:1 33736:1 33737:1 33738:1 33739:1 33741:1 
33742:1 33743:1 33744:1 33745:1 33746:1 33747:1" 

这是正确的根据我的数据和格式我想要它。现在我想在这些数据上使用libFM。

首先我想实际使用

libFM(libFMmat_train, libFMmat_test) 

,但我得到

sh: libFM: command not found 
Error in system(libfm_exe, intern = TRUE) : error in running command 

所以现在我正在试图做到这一点在我的终端。我用

save(libFMmat_train, file= "/.../libFMmat_train.libfm") 

但是当我在这个数据上运行libFM我得到

Loading train...  
has x = 0 
has xt = 1 

ERROR: cannot parse line "??=???U??;p;?x"?k??Kb??X??? ?ƭV08?P0r? 
@ոS.$%F$JZ(i??) I73?f?D4?qG?lG????[????5?n??<??{??ֵ?u]????ӿ????'>???o??? 
w????c?ϻO??O??????_~??????W?̡?,???:??}???|???7~??????Q/?C?(???̣ƴ>K?a? 
ϔ???)?g?u???a?????ߕ9??} 
      ??;?????qL??>???s???????_l???_??\Kܿ???s5?i?[cl??1?_W???5? 
>???u???ge__(??ʈQ????c?y?}?u?????f??b֟co?{ZJs???h=?V?{??L?????ܟ?<????j?? 
q??_??\R,?S????^???ܿ>??????}????^rߟ???Q?:?^_???K\_??{???q??????3?????? 
R.a??^uaIXS?_X???1?bϽ??????????~o}??^????????N~t}a?:?iؿ?k???Ӿ???s??Y??? 
{J)v=?0????K?z?m 
}???:???H9??,|?s}??????5??<?cZ?Y???????om???=???Ǖί?1???cLC????+k!?9??? 
ޖJ~[|oW??"?ף?u!?Ԧ????u????h?Xߐs?" at character 

所以我的问题是 - 如何以正确的格式的R字符的文件保存为.libfm文件,以便我可以使用libFM?

回答

0

我自己解决了,文件已经是正确的文本格式,并且不需要转换成.libfm格式。所以,我只是转换我的性格矢量libFMmat使用

fileConn <- file("output.txt") 
writeLines(libFMmat, fileConn) 
close(fileConn) 

libFM格式(在另一个线程计算器发现),以获得这可能与libFM使用的.txt文件。