【问题标题】:The gamma and cost parameter of SVMSVM的gamma和cost参数
【发布时间】:2013-05-15 00:40:08
【问题描述】:

各位,我在使用 libSVM 进行预测时,出现了一个奇怪的现象。

当我不设置 SVM 的参数时,我将在测试集上获得 99.9% 的性能。同时,如果我设置参数'-c 10 -g 5',我将在测试集上获得大约 33% 的精度。

顺便说一下,我使用的 SVM 工具包是 LibSVM。

不知道是不是数据集有问题。我不知道哪个结果更有说服力。

【问题讨论】:

  • 对于 Marc 的回答,您应该使用单独的验证集来为 C 和 g 选择好的值。或者使用 grid.py(libsvm 提供)通过交叉验证获取这些参数。
  • LIBSVM 指南确实是一个很好的初始参考。

标签: machine-learning svm libsvm


【解决方案1】:

您碰巧遇到了一个问题,Cgamma 的默认值运行良好(分别为 1 和 1/num_features)。

gamma=5 明显大于默认值。当默认值接近最优时,gamma=5 产生非常差的结果是完全合理的。大 gamma 和大 C 的组合是过拟合的完美配方(例如,高训练集性能和低测试集性能)。

【讨论】:

  • 您的意思是默认的Cgamma 恰好可以正常工作吗?考虑到现实世界的问题,我认为太高的准确性不合适。那么我应该检查是否有任何功能失败?
  • 是的,默认的 Cgamma 恰好是很好的值。您可以在许多现实世界的问题中获得非常高的准确性。只要确保您不在训练集上评估分类器即可。检查是否有任何功能失败是什么意思?
  • 在训练集上评估分类器实际上是一个好主意(只要你也在验证集和测试集上这样做!)因为它可以帮助你判断是更多的训练数据还是更好的特征可能有助于获得更好的模型,但这超出了问题的范围。
  • @MarcClaesen 其实我怀疑是不是有特征提取错误,直接暴露了label的信息。
猜你喜欢
  • 2014-01-10
  • 2018-03-06
  • 1970-01-01
  • 2022-12-09
  • 2018-03-07
  • 2017-01-18
  • 1970-01-01
  • 1970-01-01
  • 2015-07-12
相关资源
最近更新 更多