1

개체 인식을 수행하기 위해 libsvm 및 3D 설명자를 사용하여 재생하려고했습니다. 지금까지 나는 객체의 7 종류가 있고 각 범주에 대해 나는 개체의 수 (및 pourcentage)이 있습니다LibSVM - 불균형 데이터를 사용한 다중 클래스 분류

카테고리 (1) 492 (14 %)

카테고리 (2) 574 (16 %)

카테고리 3 738 (21 %)

카테고리 4. 164 (5 %)

카테고리 5. 369 (10 %)

카테고리 6. 123 (3 %)

카테고리 7. 1025 (30 %)

그래서 총 3585 개의 개체가 있습니다.

나는 libsvm의 실제 지침을 따랐다. 알림은 여기 : I 교육 및 시험에 내 데이터를 구분하여 교육 및 시험 B. 교차 검증 C. 교육 D. 테스트

을 확장

A.. 5 교차 검증 프로세스를 수행하여 좋은 C 및 감마를 결정할 수있었습니다.

그러나 얻은 불량 결과 (이력서는 약 30-40이고 정확도는 약 50 % 임).

그런 다음 필자는 자신의 데이터에 대해 생각하고 있으며 불균형 한 데이터 (예 : 범주 4와 6)가 있음을 확인했습니다. libSVM에는 가중치에 대한 옵션이 있다는 것을 발견했습니다. 그래서 지금 좋은 몸무게를 설정하고 싶습니다.

지금까지 나는이 일을 해요 :

svm-train -c cValue -g gValue -w1 1 -w2 1 -w3 1 -w4 2 -w5 1 -w6 2 -w7 1 

를 결과는 동일하지만. 나는 그것을하는 것이 좋은 방법이 아니라는 것을 확신합니다. 그래서 제가 여러분에게 도움을 요청하는 것입니다. 주제에 관한 몇 가지 주제를 보았지만이 분류는 다중 분류가 아니고 2 진 분류와 관련이 있습니다. libSVM이 "one against one"(그래서 바이너리 분류 자)을하고 있지만, 여러개의 클래스를 가지고있을 때 그것을 처리 할 줄 모른다는 것을 알고 있습니다.

도와 주시겠습니까?

도움을 주셔서 감사합니다.

답변

1

이전에 같은 문제가 발생했습니다. 나는 또한 그들에게 다른 무게를 주려고 노력했다.

데이터 집합의 하위 집합을 사용하여 학습하는 것이 좋습니다.

대략 같은 수의 서로 다른 클래스 샘플을 사용해보십시오. 모든 카테고리 4 및 6 샘플을 사용할 수 있으며 그 후에 다른 모든 카테고리에 대해 약 150 개의 샘플을 선택할 수 있습니다.

이 방법을 사용하여 정확도가 향상되었습니다. 희망이 당신을 도울 것입니다!

+1

감사합니다. 나는 그것을 고려할 것이다! 하지만 그렇게하면 샘플 수와 그 같은 동정이 제한됩니다. 또는 가장 희귀 한 카테고리에 대한 샘플을 더 찾아야합니다. – lilouch

+1

네 말이 맞아. 어쩌면 다른 샘플을 사용하여 모델을 여러 번 훈련 할 수 있으며 특정 샘플의 편향을 피하고 모든 샘플을 사용하지 않을 수 있습니다. 정확도를 평균화하면 설득력있는 결과를 얻을 수 있습니다. 여전히 원하는 것이 아니라면 적어도 기준을 얻을 것입니다. –

관련 문제