2

私は最近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。助けてください。

4

1 に答える 1

2

トレーニングラベルを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インストールに関連する)ディレクトリーにあり、フォーマットのエラーが存在する場合はそれを説明できます。

于 2012-06-17T19:52:16.257 に答える