matlab中使用libsvmtrain,怎么控制输出是值还是结构体模型
1、当输出model用于后续预测时
model=libsvmtrain(train_label,train_data,cmd);%cmd中不含v参数
2、当想用libsvm自带的验证输出的准确率(分类问题)或者MSE(回归问题)
acc=libsvmtrain(train_label,train_data,cmd);%cmd中含v参数
如:
cmd = [' -v ',num2str(kfolds),'-s 0 -t 0','-c ', num2str(Positions(i,1)), ' -g ',num2str(Positions(i,2)), ' -q'];%且最好是将v参数放在前面
总结
如果在训练中使用了-v参数进行交叉验证时,返回的不是一个模型,而是交叉验证的分类的正确率或者回归的均方根误差。且如果想要返回一个值而不是一个结构体,应该将v参数的设置放在前面(具体原理不清楚,但我用的时候这样才能实现)。