我在项目中使用libsvm库,最近发现它提供了开箱即用的交叉验证功能。我查看了文档,上面明确指出需要在调用svm-train时使用-n开关来启用交叉验证功能。但是当我使用-v开关调用时,无法获得svm-predict所需的模型文件。
从头实现支持向量机超出了我项目的范围,所以我更希望修复这个问题,如果它有问题的话,或者向社区寻求支持。
有谁能帮我解决这个问题吗?
这是库的链接,用C和C++实现的,这里是描述如何使用它的论文。
回答:
因为libsvm仅将交叉验证用于参数选择。
来自libsvm常见问题解答:
问:进行交叉验证后,为什么没有输出模型文件?交叉验证用于选择好的参数。找到这些参数后,您需要在没有-v选项的情况下重新训练整个数据集。
如果您打算使用交叉验证来估计分类器在您数据上的质量,您应该通过分割数据、在部分数据上训练并在其他部分上测试来实现外部交叉验证。