首先,我为通用标题道歉但我无法理解我的问题是什么。
我刚刚构建了libSVM 3.17并且我正在尝试使用它,我注意到它无法预测我的testset上的东西。 所以我做了一些非常小问题的测试。这是我做的:
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并没有真正帮助我。
感谢您提供的任何意见。
答案 0 :(得分: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
您也可以在“安装和数据格式”部分中查看README以获取libsvm。 我希望它可以帮助你解决问题。
干杯!!