웨카에서 작동하는 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으로 바꾸면 된다.