我尝试在互联网上搜索此内容的输入,但效果不佳。
我正在使用libSVM(https://www.csie.ntu.edu.tw/~cjlin/libsvm/)并且在使用rbf内核训练SVM时遇到过这种情况。
如果某个功能包含非常小的数字,例如以下
中的功能150 1:4.25606e+07 2:4.2179e+07 3:5.1059e+07 4:7.72388e+06 5:7.72037e+06 6:8.87669e+06 7:4.40263e-06 8:0.0282494 9:819 10:2.34513e-05 11:21.5385 12:95.8974 13:179.117 14:9 15:6.91877e-310
libSVM将无法读取错误代码为Wrong input at line <lineID>
的文件。
经过一些测试,我能够确认将这么小的数字改为0似乎可以解决错误。即正确读取该行:
0 1:4.17077e+07 2:4.12838e+07 3:5.04597e+07 4:7.76011e+06 5:7.74881e+06 6:8.91813e+06 7:3.97472e-06 8:0.0284308 9:936 10:2.46506e-05 11:22.8714 12:100.969 13:186.641 14:17 15:0
有人可以帮我弄清楚为什么会这样吗?我的文件包含大量数量的数字。
我在Ubuntu上通过终端调用SVM,如:
<path to>/svm-train -s 0 -t 2 -g 0.001 -c 100000 <path to features file> <path for output model file>