我在 Python 中使用 libsvm(svmutils)进行分类任务。分类器非常精确。然而,我得到了如下输出:
*optimization finished, #iter = 75nu = 0.000021obj = -0.024330, rho = 0.563710nSV = 26, nBSV = 0Total nSV = 26*optimization finished, #iter = 66nu = 0.000030obj = -0.035536, rho = -0.500676nSV = 21, nBSV = 0Total nSV = 21*optimization finished, #iter = 78nu = 0.000029obj = -0.033921, rho = -0.543311nSV = 23, nBSV = 0Total nSV = 23*optimization finished, #iter = 90nu = 0.000030obj = -0.035333, rho = -0.634721nSV = 23, nBSV = 0Total nSV = 23Accuracy = 0% (0/1) (classification)Accuracy = 0% (0/1) (classification)Accuracy = 0% (0/1) (classification)Accuracy = 0% (0/1) (classification)
有什么方法可以抑制这些输出吗?分类器运行得很好,我只是好奇。另外,"Accuracy"
代表什么?为什么在我的情况下是 0%?(我的数据在 80 维度上没有重叠。总共有 4 个类别。我也已经正确地进行了归一化。)
回答:
使用 -q
参数选项
import svmutilparam = svmutil.svm_parameter('-q')...
或者
import svmutilx = [[0.2, 0.1], [0.7, 0.6]]y = [0, 1]svmutil.svm_train(y, x, '-q')