[WEKA] WEKA 시작하기 #2 – JDBC Connection

By | Y2014Y2014-9M-D

Weka 에서 데이터를 불러오는 방법은 앞서 말한대로 ARFF, CSV, URL, DB 를 이용한 방법이 있다(그 외의 방법이 있는지는 아직 파악못한 상태임).

ARFF 포맷이나, CSV 포맷은 쉽게 사용이 가능하다. ARFF 포맷은 이미 WEKA 의  ARFF 페이지에서 포맷과 프로그래밍으로 생성하는 방법이 자세히 나와 있으며 데이터베이스 구조를 다뤄본 적이 있으면 쉽게 이해가 가능하다. 또한 CSV 포맷은 delimiter 를 Comma(,) 나 Tab 으로 데이터를 구분하면 되므로 쉽게 생성 가능하다.(MS Excel 을 이용할 경우 “다른 이름으로 저장…” 을 이용하면 된다. 단, UTF-8 이 아닌 ANSI 로 CharacterSet 이 지정되므로 사용자의 경우에 따라 메모장에서 다시 열어 UTF-8 로 저장하면 된다.)

여기서는 위 두 방법을 제외한 DB 에서 직접 데이터를 불러오는 방법을 알아본다.
(*WEKA 3.6 버전, GUI 모드 실행 기준)

우선 WEKA 가 DB Connection 을 이용할 수 있도록 아래와 같이 환경을 설정한다.

  1. Database 에 맞는 JDBC Driver Download
    우선, 사용자의 환경에 맞는 DB JDBC Driver 를 다운로드 한다.
    참고로 Oracle 10g 환경에서는 ojdbc14.jar 버전이 맞지 않아 ojdbc6.jar 을 사용하였다.
    이 Driver 를 WEKA 설치폴더에 같이 넣는다.
    (msi 버전으로 설치했을 경우 SystemDrv:\Program Files\weka-x-x 폴더)
  2. CLASSPATH 설정
    jdbc driver 및 weka.jar를 classpath 항목에 추가한다.
    이후 커맨드 창에서 set | find “CLASSPATH” 하여 CLASSPATH 설정을 확인한다.
  3. DatabaseUtils.props 파일 수정
    WEKA 설치 폴더에 있는 weka.jar 파일을 열어보면 weka\experiment\DatabaseUtils.props 파일과 그 외 데이터베이스 별로 Sample props 샘플 파일이 들어있다.

    1. 기존에 실행하던 WEKA 를 종료한다.
    2. weka.jar 파일을 백업한다.
    3. jar 파일을 압축 프로그램으로 열어 weka\experiment\DatabaseUtils.props 파일을 삭제하고,  DatabaseUtils.props.oracle  의 파일명을  DatabaseUtils.props 로 변경한다.
    4. DatabaseUtils.props 파일을 열어 # specific data types 항목의 내용을 전부 #을 지우고 주석을 해제한다. 그리고 아래에 oracle data type 들에 대한 내용을 추가한다.(첨부파일 참조)
    5. WEKA 를 실행한다.

** 참고) 설정을 위해 WEKA Wiki 의

  1. CLASSPATH 항목
  2. Database 항목
  3. Database Property File 항목

을 참고하시기 바란다.

** 첨부파일: DatabaseUtils.props for oracle

다음으로 WEKA 에서 DB Connection 을 통해 데이터를 불러오도록 하자

  1. WEKA 실행 후, 메인 창에서 Explorer 를 클릭하여 창을 띄운다.

    WEKA DB Connection 창 및 JDBC URL 입력

    WEKA DB Connection 창 및 JDBC URL 입력

  2. Explorer 창에서 상단의 OpenDB… 를 클릭한다.
  3. SQL-Viewer 창이 뜨면, URL 에 jdbc url (jdbc:oracle:thin:@host_addr:1521:oracle_sid)을 입력하고 USER 버튼을 클릭, 사용자/패스워드 입력 후,  Connect 를 클릭한다.

    WEKA DB Connection 을 위한 사용자 정보 입력

    WEKA DB Connection 을 위한 사용자 정보 입력

  4. Query 박스에 원하는 Query 를 입력하고, Execute 버튼을 누르면, Result 박스에 결과가 출력된다.

    WEKA DB Query 실행 및 결과

    WEKA DB Query 실행 및 결과

  5. 하단의 OK 버튼을 클릭하면 오류가 없을 경우 메인 창의 하단 status 에 “Retrieve Database… ” 라고 뜨며 결과를 WEKA 로 불러들인다.

    WEKA DB 데이터를 가져온 모습

    WEKA DB 데이터를 가져온 모습

reference links:
Data Mining with WEKA as MOOC Course

WEKA HOME

 

4,525 total views, 1 views today

댓글 남기기