2012-06-17 52 views
2

我剛剛開始使用libsvm。我一直在嘗試一段時間來訓練我的特徵得到模型,然後用相應的特徵進行預測。不幸的是我連續得到錯誤的文件格式。我經常做這個測量,削減我的功能,然後訓練他們,我得到一個模型。如何在第1行獲得正確的輸入格式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 

沒有逗號,並且只有各個元素之間的空間,但是當我預測它告訴我Wrong input format at line 1。請幫忙。

回答

2

您需要將訓練標籤設爲1或-1。這是機器學習世界的SVM子世界中的標準。你也可能想取出任何標籤,並確保你的空白只包含空格。

下面是我使用SVM訓練的一個文件中的幾行:

-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安裝),並且可以解釋存在格式的錯誤。

相關問題