【问题标题】:libsvm returning a trivial solutionlibsvm 返回一个简单的解决方案
【发布时间】:2012-06-20 12:07:48
【问题描述】:

我正在尝试使用libsvm 对数据进行分类,如下图所示:

您可以“通过肉眼”看到蓝色和红色之间存在柔和的分离,但整个区域都存在一些蓝色样本,我会说“应该标记为红色”。

我无法让 libsvm 返回一个有意义的分类,并继续获取标记为蓝色的微不足道的单点。这发生在各种内核和参数值上。我认为使用成本变量并不能解决这个问题,因为蓝色样本比红色样本多 10 倍。

我错过了什么吗?是否有一些 libsvm 参数可以处理这种情况?
或者 SVM 可能不适合该任务,您可以提出一些建议?

【问题讨论】:

  • 无意冒犯,但所有点都是黑色的。
  • 请发布您尝试过的内核/参数值。这些点对我来说也是全黑的。
  • 感谢您的反馈 :) 我尝试了以下参数:'-t 0 -c 4 -v 3', '-t 1 -n 0.9 -v 3', '-t 2 -d 4 -v 3','-t 3 -g 1 -v 3','-t 0 -c 0.1 -v 3','-t 0 -c 10 -v 3'
  • 您需要在自动网格搜索中尝试更多的 C 和内核参数值。没有一个很好的方法可以先验地知道哪个会做得很好,你需要尝试很多。我过去曾成功检查过 2 ^ (-4, -2, 0, 2, ..., 10) 的 sigma 值和 2^ (-9, -6, ..., 18) 的 C。
  • 我同意 Dougal 的观点 - 以数量级改变参数。

标签: machine-learning classification libsvm svm


【解决方案1】:

使用线性 SVM 应该可以得到一个非平凡的解决方案。 您应该尝试不同的 C 值,并且由于您的数据不平衡,请使用 wi 参数来固定每个类的权重。

【讨论】:

    【解决方案2】:

    尝试做一些主成分分析或一些独立成分分析作为预处理。这应该可以帮助你。鸢尾花数据库有很多例子。

    【讨论】:

      猜你喜欢
      • 2010-12-28
      • 1970-01-01
      • 2010-09-05
      • 2021-02-04
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多