뉴스 기사 분류에 SVM을 사용하려고합니다.LibSVM은 모든 트레이닝 벡터를 지원 벡터로 변환합니다. 이유는 무엇입니까?
필자는 문서 (문서에있는 고유 단어)를 행으로 포함하는 테이블을 만들었습니다. 이러한 기능으로 매핑 된 가중치 벡터를 만들었습니다. 즉, 물품이 특징 벡터 테이블의 일부인 단어가있는 경우, 위치는 1
또는 0
으로 표시됩니다.
전 - 트레이닝 샘플 생성 ...
1 : 1 2 : 1~3 : 1~4 : 1~5 : 1~6 : 1~7 : 1~8 : 1~9 : 1 10 : 1 11 : 1 12 : 1 13 : 1 14 : 1 15 : 1 16 : 1 17 : 1 18 : 1 19 : 1 20 : 1 21 : 1 22 : 1 23 : 1 24 : 1 25 : 1 26 : 1 27 : 1 28 : 1 29 : 1 30 : 1
이 문서는 첫 번째 문서이므로 모든 기능이 제공됩니다.
클래스 레이블로 1
, 0
을 사용하고 있습니다.
나는 분류를 위해 svm.Net을 사용하고 있습니다.
나는 수동으로 훈련 데이터로 분류 된 300
웨이트 벡터를 주었고, 생성 된 모델은 모든 벡터를지지 벡터로 취하고 있으며, 이는 확실히 overfitting입니다.
내 총 기능 (기능 벡터 DB 테이블에서 unique words/row count
)은 7610
입니다.
어떤 이유가있을 수 있습니까?
내 피팅 때문에 지금 내 프로젝트는 꽤 나쁜 모양입니다. 이용 가능한 모든 기사를 긍정적 인 기사로 분류합니다.
LibSVM 바이너리 분류는 클래스 레이블에 제한이 있습니까?
-1
및 +1
대신 0
, 1
을 사용하고 있습니다. 그게 문제 야?
이유를 찾았습니다. SVM.net이 trainingdata의 유효성을 검사하지 않기 때문에 이런 일이 발생했습니다. 내 훈련 데이터에서 기능 번호가 정렬되지 않아 이상한 결과가 발생했습니다. 지형지 물 수에 대한 가중치 벡터를 정렬 한 다음 모델을 생성하면 훨씬 나은 결과를 얻을 수 있습니다. 정확도는 74 %입니다. 고맙습니다. –