使用Python对LibSVM中的多项式内核进行交叉验证

时间:2013-04-18 19:03:41

标签: python machine-learning libsvm svm

我正在使用LibSVM和Python。在构建分类器之前,我想绘制不同值dC的交叉验证的平均误差,以便在平均准确度方面找到最佳(d, C)组合。我编写了一个Python脚本来交叉验证特定的d, C值,并且我的交叉验证的十次迭代中的每一次的输出都出现在屏幕上。我现在有两个问题:

  1. 如何编写Python脚本,将dC值的变量作为svm_parameter函数中的参数。 svm_parameter('-d dval')给出错误:

    ValueError : invalid literal for int() with base 10:dval
    
  2. 如何记录输出数据 - 除非我从UNIX屏幕手动复制,否则我找不到保存每个分类的准确性的方法。有没有办法访问和保存输出文件?

  3. 谢谢。我是Python的新手。

1 个答案:

答案 0 :(得分:1)

我强烈建议您使用优秀的sklearn库来完成任务。它还有一个LibSVM的包装器(参见svm.SVC),但另外为cross-validation提供了所有必要的工具,用grid-search找到最佳的d和C,通过简单的方法测量精度度量模块和大量其他有用的工具。

关于valuerror,python尝试将字符串dval转换为整数。如果svm_parameter('-d %s' % dval)是保持dval值的变量,您可能希望执行d之类的操作。