我正在使用LibSVM和Python。在构建分类器之前,我想绘制不同值d
和C
的交叉验证的平均误差,以便在平均准确度方面找到最佳(d, C)
组合。我编写了一个Python脚本来交叉验证特定的d, C
值,并且我的交叉验证的十次迭代中的每一次的输出都出现在屏幕上。我现在有两个问题:
如何编写Python脚本,将d
和C
值的变量作为svm_parameter
函数中的参数。 svm_parameter('-d dval')
给出错误:
ValueError : invalid literal for int() with base 10:dval
如何记录输出数据 - 除非我从UNIX屏幕手动复制,否则我找不到保存每个分类的准确性的方法。有没有办法访问和保存输出文件?
谢谢。我是Python的新手。
答案 0 :(得分:1)
我强烈建议您使用优秀的sklearn库来完成任务。它还有一个LibSVM的包装器(参见svm.SVC),但另外为cross-validation提供了所有必要的工具,用grid-search找到最佳的d和C,通过简单的方法测量精度度量模块和大量其他有用的工具。
关于valuerror,python尝试将字符串dval转换为整数。如果svm_parameter('-d %s' % dval)
是保持dval
值的变量,您可能希望执行d
之类的操作。