본문 바로가기

컴퓨터 & 프로그래밍/etc.

Multiclass SVM

매트랩 툴박스에 기본으로 깔려 있는 SVM 은 다중분류를 지원하지 않아서 (2진분류만을 지원함) 외부 라이브러리를 가져다 쓰거나 직접 구현해야 한다. 요즘 데이터 분석을 위해서 MSVM pack 이라는 라이브러리를 가져다 쓰고 있는데, 데이터의 수가 balanced 되어 있는 경우라면 잘 동작하는 것으로 보인다.


http://www.loria.fr/~lauer/MSVMpack/MSVMpack.html


다만 train-test를 여러 번 반복하게 되면 매트랩이 뻗어 버리는데, 확인 결과 파일을 open해 놓고 close 하지 않는 것이 원인이었다.


predmsvm.m 파일의 마지막 줄에 다음 코드를 삽입하면 정상 동작한다.


fclose(fp);


매번 수행시마다 결과를 echo 하는 것이 불편하다면


각 파일 안에 system 함수 호출 부분에서 '-echo' 옵션을 삭제하면 된다.