libsvm中svmpredict无返回值的问题解决方案
发布时间
阅读量:
阅读量
最近我在进行一些机器学习的工作时(也就是我正在使用支持向量机(SVM)进行相关操作),然后在进行预测的时候(也就是我尝试用SVM模型来做预测),结果却发现系统并没有返回精度值(我发现系统并没有提供所需的结果指标)。接着查看工作空间后发现不仅仅只有accuracy这个指标缺失了反馈(我发现工作空间中不仅显示不出accuracy这一项结果),同时label也没有被正确地返回(此外label这一部分的数据也没有得到相应的反馈)。这确实让人感到困惑(为什么会这样呢?),于是反复检查了很久之后才发现问题所在:使用的libsvm版本较早的问题(具体来说就是我们使用的libsvm版本较为老旧)。因此如果采用较早版本的 libsvm软件的话(也就是像2.x系列这样的旧版本),通常需要额外指定两个参数来进行操作。
[pred,acc] = svmpredict(double(labels), data, model, '-b 1');
以上情况是针对新的libsvm版本是没有输出结果的。
然而,在采用libsvm较新版本时(例如3.2版本),若仅将输出参数设置为两个,则会无法得到预期结果;即导致返回无效值。因此建议将输出参数指定为三个,并参考下文的具体实现方式如后。
[pred,acc,preb] = svmpredict(double(labe
全部评论 (0)
还没有任何评论哟~
