더북(TheBook)

웨카에서 작동하는 SVM 코드를 만드는 것은 간단하다.


public class MLLibSVMTest {
    public MLLibSVMTest(String filepath){
        Instances data;
        try {
            data = DataSource.read(filepath);
 
            if (data.classIndex() == -1)
                data.setClassIndex(data.numAttributes() - 1);
            LibSVM svm = new LibSVM();
            String[] options = weka.core.Utils.splitOptions("-K 0 -D 3");
            svm.setOptions(options);
            svm.buildClassifier(data);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    public static void main(String[] args) {
 
        MLLibSVMTest mllsvm = new MLLibSVMTest("v100k.arff");
    }
}

 

LibSVM 라이브러리는 설정 옵션이 많지만, 내가 관심이 있는 것은 커널 타입이다. 웨카에서 기본값은 방사 기저 함수로, 옵션에서 숫자 2는 방사 기저 함수를 가리킨다. 선형 커널 함수를 쓰려면 0으로 바꾸면 된다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.