unix - 如何在第 1 行 libsvm 处获得正确的输入格式

标签 unix machine-learning svm libsvm

我最近刚刚开始使用 libsvm。我已经尝试了一段时间来训练我的特征以获得模型,然后使用相应的特征进行预测。不幸的是我不断地得到错误的文件格式。我经常这样做,削减我的特征,然后对其进行训练,我得到了一个模型。

这就是我训练获得模型的方式。 顺便说一句,我是通过 unix 命令行执行此操作的。

./svm-train -t 0 -b 1 svmtrainModel1Revised.txt TrainedModel1.svm

0 1:8.109121    2:11.063075 3:9.265099 4:7.392232  5:9.577386
0 1:7.497237    2:10.314889 3:9.330452 4:8.658748 5:9.493017
0 1:7.579283    2:9.853208 3:9.863712 4:8.48306 5:9.84812
1 1:7.683603    2:10.323639 3:10.616027 4:7.039438 5:10.321418
1 1:7.645213    2:9.742212 3:9.957533 4:8.810831 5:8.86067
0 1:7.738999    2:9.956453 3:9.643299 4:8.553764 5:9.824224
1 1:7.968907    2:10.610946 3:9.061123 4:7.84069 5:9.793263

我根据上面得到的模型进行预测。

./svm-predict -b 1 svmtest1RevisedA.txt TrainedModel1.svm labelmodel1.txt

这些特征的格式与上面相同,只是它们缺乏基本事实。

8.139867    10.146595   9.554127    8.409128    9.380923
7.691873    9.820682    9.777709    9.136581    9.038513
8.629565    10.684548   9.192018    9.031779    9.733009
7.796154    10.871736   9.113837    7.329961    10.071653
7.235544    9.994834    10.601161   8.720384    10.112152
8.008006    10.75276    10.755063   7.517268    9.415618
7.857692    9.936756    9.556366    8.941176    8.933603
7.806821    9.934397    9.324827    8.422852    8.797105

没有逗号,每个元素之间只有一个空格,但是当我进行预测时,它告诉我第 1 行的输入格式错误。请帮忙。

最佳答案

您需要将训练标签设为 1 或 -1。这是机器学习世界的 SVM 子世界中的标准。此外,您可能想要删除所有制表符并确保您的空白仅由空格组成。

以下是我使用 libsvm 训练的文件中的几行:

-1 1:0.000000 2:0.274121 3:0.448146 4:0.586426 5:0.599033 6:0.112481
1 1:0.406015 2:0.411721 3:0.588133 4:0.757176 5:0.462532 6:0.196860
-1 1:0.131868 2:0.432938 3:0.614296 4:0.711778 5:0.178528 6:0.217912
1 1:0.489093 2:0.393096 3:0.568940 4:0.744675 5:0.527169 6:0.590553
-1 1:0.077703 2:0.226890 3:0.408387 4:0.523369 5:0.837690 6:0.454314

如果您仍然对输入格式感到困惑,请使用脚本 checkdata.py。它位于 libsvm-3.12/tools 目录(相对于您的 libsvm 安装),可以解释格式错误(如果存在)。

关于unix - 如何在第 1 行 libsvm 处获得正确的输入格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074204/

相关文章:

algorithm - 帮助理解交叉验证和决策树

python - 词嵌入+其他特征是否可以解决分类问题?

python - 建模支持向量回归 (SVR) 与线性回归

linux - vi 语法高亮

unix - 硬盘空间不足

shell - 如何在 shell 脚本中为多行变量添加行号前缀?

python-2.7 - scikit learn 随机森林给出了相对较差的预测

image-processing - 如何获取用于对象检测的模型的xml文件?

python - 使用 scikit-learn 线性 SVM 提取决策边界

linux - 从文本文件中检索信息。 Linux