머신러닝을 처음 접해 본다면 weka 툴을 써보시는 것을 추천 드립니다.

 

weka introduction :  http://www.cs.waikato.ac.nz/ml/weka/

weka download : http://www.cs.waikato.ac.nz/ml/weka/downloading.html

 

웨카는 머신러닝 기법들을 맛보고 즐길 수 있는 데이터 마이닝 툴 입니다. Youtube 에 weka 에 대한 공식 튜토리얼도 있고, 머신러닝 소개 영상들에서 많이 접하실 수 있는 툴이기도 합니다.

 

다운로드나 툴에 대한 소개는 위의 링크로 대체하고, 머신러닝이란 어떤 것이냐에 대한 느낌을 느껴보기 위해 바로 툴을 사용해 보도록 하겠습니다. 

 

 

weka 를 실행 하게 되면 위와 같은 화면을 보실 수 있습니다. weka 를 받으시면 weka 폴더 내에 /data 내에 .arff 형식의 샘플 데이터들이 있습니다. 이 데이터들을 활용하여 연습을 해 볼수도 있습니다만, 다른 데이터를 활용해 보고자 합니다.

 

weka dataset : http://www.cs.waikato.ac.nz/ml/weka/datasets.html

위의 링크에서 [A gzip'ed tar containing UCI and UCI KDD datasets] 를 다운 받아 편한 곳에 압축을 푸시면 많은 수의 .arff 파일들을 보실 수 있습니다.

 

데이터의 구조를 먼저 알기 위해 .arff 파일의 구조에 대해서 알아보겠습니다. 다운 받으신 dataset 내에 /nominal 폴더 내에 tic-tac-toe.arff 를 열어보시겠습니다.

tic-tac-toe 게임은 아래 그림과 같이 3 x 3 게임판에 o 와 x 를 그려넣어 같은 모양으로 가로 세로 혹은 대각선으로 한줄을 만드는 사람이 이기는 게임 입니다.

틱택토에 대한 이미지 결과

저희가 확인하려고 하는 데이터는 바로 이 게임에 대한 데이터로써, 각 게임들의 승리, 패배 결과 값을 정의하고 있는 게임 입니다. 이 데이터를 가지고 지도학습, supervised learning, 기법을 실험해 볼 수 있을 것 같습니다. 데이터를 한번 열어 보겠습니다.

 


 

 

arff 는 weka 의 데이터 분석을 위해 작성된 포맷 으로 각 줄 마다 아래와 같은 prefix 들을 보실 수 있습니다. 

- %

- @relation

- @attribute

- @data

 

하나 하나 설명 드리자면 우선, %는 주석이고, @relation 은 이 데이터의 테이블 명이라고 생각하셔도 무방할 것 같습니다. attribute 는 각 테이블의 컬럼을 나타내며 { } 를 통해 해당 컬럼이 가질 수 있는 후보 값들을 나타 냅니다.

tic-tac-toe.arff 의 경우 9의 칸과 결과 값을 모두 컬럼으로 나타내고 있습니다. 각 칸의 위치를 컬럼명, top-left-square 등 으로 나타내고 해당 컬럼은 b(blank), o, x 의 값을 가질 수 있는 것이죠. 또한 Class attribute 를 통해 해당 게임이 이겼는지 졌는지를 나타내고 있습니다. 마지막으로 data는 말 그대로 테이블의 데이터 값입니다.


자, 그럼 이제 weka 를 통해 해당 데이터들을 분석해 보도록 하겠습니다.