2012-06-17 3 views
2

방금 ​​libsvm을 사용하기 시작했습니다. 나는 잠시 내 기능을 훈련시키고 모델을 얻은 다음 해당 기능으로 예측을 시도했다. Unforunately 나는 몹시 잘못된 파일 형식을 가져옵니다. 필자는 일상적으로이 기능을 사용하여 기능을 잘라내어 교육을 실시했습니다.이 기능을 모델로 사용합니다.1 행에서 올바른 입력 형식을 얻는 방법 libsvm

이것은 모델을 얻는 방법입니다. 나는 유닉스 커맨드 라인 btw를 통해 이것을하고있다.

./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 하위 세계에서 표준입니다. 또한 탭을 제거하고 공백이 공백으로 만 구성되어 있는지 확인하십시오. 당신이 스크립트 checkdata.py를 사용하여 입력 형식에 대해 여전히 혼란스러워하는 경우

-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 

:

는 여기에 몇 가지 내가 libsvm 사용하여 훈련 파일에서 라인입니다. 이 파일은 libsvm-3.12/tools 디렉토리 (libsvm 설치와 관련이 있음)에 있으며 형식이 존재할 경우 오류를 설명 할 수 있습니다.

관련 문제