在Ubuntu平台上使用Libsvm时,我观察到以下情况:
shuf negativeSet.scaled |head -2000 > negativeSet.scaled.2000cp positiveSet.scaled trainingSetcat negativeSet.scaled.2000 >> trainingSet cp positiveSet.weights trainingSet.weightshead -2000 negativeSet.weights >> trainingSet.weights ./svm-train -s 0 -t 2 -h 0 -W trainingSet.weights trainingSet
输出
optimization finished, #iter = 2525obj = -3548.316727, rho = 1.515229nSV = 2191, nBSV = 2152Total nSV = 2191
使用的命令:
cp positiveSet.scaled trainingSetcat negativeSet.scaled >> trainingSet cp positiveSet.weights trainingSet.weightscat negativeSet.weights >> trainingSet.weights #training the data set to create a model./svm-train -s 0 -t 2 -W trainingSet.weights trainingSet
输出
optimization finished, #iter = 1obj = nan, rho = nannSV = 0, nBSV = 0Total nSV = 0
请帮助我解释svm性能上的这种差异。
回答:
您可能需要尝试在训练核上调整不同的C和gamma值。此外,看起来您的负样本过多,因此像您在方法1中所做的那样,随机从中选择一个子集是一个更好的策略。