더북(TheBook)

기존 데이터로 훈련하고 예측하기

지금까지 .arff 파일에서 100,000행짜리 데이터로 훈련하였다. 웨카 워크벤치에서 작업했던 대로 자료의 10%로 훈련하고, 나머지 90%는 예측하려고 한다.

웨카 API에서 옵션을 추가하여 코드로도 훈련용 데이터를 분할할 수 있도록 해준다.

다음과 같이 옵션을 수정하고 훈련용 분할 퍼센티지(percentage)를 추가할 수 있다.


String[] options = weka.core.Utils.splitOptions("-K 0 -D 3");

 

분할 퍼센티지 옵션을 추가한 코드는 다음과 같다.


String[] options = weka.core.Utils.splitOptions("-K 0 -D 3 -split-percentage 10");

 

데이터의 예측을 보여주려면 데이터 인스턴스를 순회하는 새 메서드를 추가해야 한다.


public void showInstanceClassifications(LibSVM svm, Instances data) {
        try {
            for (int i = 0; i < data.numInstances(); i++) {
                System.out.println(“Instance “ + i + ” is classified as a “
                        +
            data.classAttribute().value((int)svm.classifyInstance(data.
            instance(i))));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

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