【发布时间】: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