【问题标题】:Cross validation for polynomial kernel in LibSVM, using Python使用 Python 对 LibSVM 中的多项式内核进行交叉验证
【发布时间】:2013-04-12 01:11:29
【问题描述】:

我正在将 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 屏幕手动复制它。有没有办法访问和保存输出文件?

谢谢。我是 Python 新手。

【问题讨论】:

  • 使用 svm_predict 返回的值解决了第 1 部分,并将它们写入 Python 中的文件。仍然需要处理 ValueError 的帮助

标签: python machine-learning libsvm svm


【解决方案1】:

我强烈建议您使用出色的 sklearn 库来完成您的任务。它还具有 LibSVM 的包装器(请参阅 svm.SVC),但此外还为您提供了 cross-validation 的所有必要工具,使用 grid-search 找到最佳 d 和 C,使用度量模块和一个巨大的测量准确性的简单方法许多其他有用的工具。

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

【讨论】:

  • 恐怕我现在没有时间去想一个新的环境。 ValueError 的修复将解决我目前的问题。以后会考虑在sklearn图书馆,谢谢!
  • 在答案中添加了对valueerror的解释,希望对您有所帮助
猜你喜欢
  • 2014-04-28
  • 2012-12-11
  • 2011-07-09
  • 2012-02-21
  • 2015-06-01
  • 2015-05-23
  • 2011-07-14
  • 2012-12-14
  • 2022-01-25
相关资源
最近更新 更多