0

首先,我为通用标题道歉,但我真的不明白我的问题是什么。

我刚刚构建了 libSVM 3.17 并且正在尝试使用它,我注意到它无法预测我的测试集上的任何东西。所以我用一个非常非常小的问题做了一些测试。这是我所做的:

3 个类,2 维特征向量,基本上是 3 个点簇。这是训练文件:

1 0:1 1:1 
1 0:1.1 1:0.9
1 0:1 1:1.2
2 0:10 1:11
2 0:9 1:10
2 0:10 1:12
3 0:50 1:52
3 0:49 1:50
3 0:48 1:49

训练模型

libsvm-train.exe -t 0 data.txt model

(因此,使用在这里应该绰绰有余的线性内核)产生以下模型文件:

svm_type c_svc
kernel_type linear
nr_class 3
total_sv 4
rho -1.26244 -1.04645 -1.58585
label 1 2 3
nr_sv 1 2 1
SV
0.01414027149321267 0.000445053674077491 0:1 1:1.2 
-0.01414027149321267 0 0:9 1:10 
-0 0.0007109847138286527 0:10 1:12 
-0.000445053674077491 -0.0007109847138286527 0:48 1:49 

现在,预测:这是测试文件:

1 1
10 11
49 49

输出是

1
1
1

准确率为 33%。

我对 libSVM 完全陌生,我显然在这里做错了,阅读LibSVM FAQ并没有真正帮助我。

感谢您提供的任何输入。

4

1 回答 1

1

我认为您的数据格式未正确插入。LIBSVM 数据格式由一对 :. 组成。的值是一个从 1 开始的整数。所以我认为你应该尝试改变 . 例如,0 到 1 和 1 到 2 .. 类似的东西。

这是我的建议!

1 1:1 2:1 
1 1:1.1 2:0.9
1 1:1 2:1.2
2 1:10 2:11
2 1:9 2:10
2 1:10 2:12
3 1:50 2:52
3 1:49 2:50
3 1:48 2:49

您也可以在“安装和数据格式”部分查看 libsvm 的README。我希望它可以帮助您解决问题。

干杯!!

于 2013-11-13T05:47:43.443 回答