SVM

2013-05-20 6 views
2

의 감마와 비용 매개 변수 모두, libSVM을 사용하여 예측을하면 이상한 현상이 발생합니다.SVM

SVM 매개 변수를 설정하지 않으면 테스트 세트에서 99.9 %의 성능을 얻게됩니다. 반면 '-c 10 -g 5'매개 변수를 설정하면 테스트 세트에서 약 33 %의 정밀도를 얻게됩니다.

그건 그렇고, 사용하고있는 SVM 툴킷은 LibSVM입니다.

데이터 세트에 문제가 있는지 궁금합니다. 그리고 어떤 결과가 더 설득력 있는지 알 수 없었습니다.

+0

Marc의 답변 이외에도 C 및 g에 적합한 값을 선택하려면 별도의 유효성 검사 세트를 사용해야합니다. 또는 교차 검증을 통해 이러한 매개 변수를 얻으려면 grid.py (libsvm과 함께 제공)를 사용하십시오. – Bull

+2

그리고 다음과 같이 읽어보십시오. http://www.csie.ntu.edu.tw/~cjlin/papers/guide/guide.pdf – Bull

+0

LIBSVM 안내서는 실제로 아주 좋은 초기 참조입니다. –

답변

10

Cgamma의 기본값 (각각 1 및 1/num_features)이 문제가되는 경우가 있습니다.

gamma=5이 기본값보다 상당히 큽니다. gamma=5은 기본값이 최적에 가까울 때 매우 좋지 않은 결과를 유발할 가능성이 있습니다. 큰 gamma과 큰 C의 조합은 오버 피팅 (예 : 높은 교육 세트 성능 및 낮은 테스트 세트 성능)을위한 완벽한 방법입니다.

+1

기본값'C'와'gamma'가 잘 작동한다는 것을 의미합니까? 나는 실세계 문제를 고려하여 너무 높은 정확도를 생각했다. 그래서 어떤 기능이 실패했는지 확인해야합니까? – Peiyun

+0

예, 기본값 인'C'와'gamma'는 좋은 값입니다. 현실 세계의 많은 문제에서 매우 높은 정확도를 얻을 수 있습니다. 트레이닝 세트에서 분류자를 평가하지 않도록하십시오. 기능이 실패했는지 확인하면 무엇을 의미합니까? –

+2

훈련 세트에서 분류 기준을 평가하는 것은 사실 좋은 아이디어입니다 (검증 세트와 테스트 세트에서 수행하는 경우). 더 많은 교육 데이터 또는 더 나은 기능이 더 나은 모델을 얻을 수 있는지 여부를 판단하는 데 도움이되므로, 그러나 이것은 문제의 범위를 벗어납니다. – Bull