본 글에서는 데이터마이닝 공개 프로그램으로 유명한 웨카 프로그램을 인터넷에서 다운로드 받고 설치하는 방법을 설명합니다. 기본적으로 프로그램을 설치하고 실행하면 에러가 발생하는데 이것을 해결하는 방법도 설명하였습니다. 

Weka 홈페이지 소개 

웨카(weka) 설치 프로그램은 해당 프로젝트 홈페이지를 방문하여 다운로드 받을 수 있다.

 * 프로젝트 명칭 : Weka Machine Learning Project
 * 프로젝트 주소 : http://www.cs.waikato.ac.nz/ml/weka/


Weka 다운로드 <6단계 과정> 설명  


[1단계] 홈페이지를 방문한 후 왼쪽 편의 [Download] 를 클릭한다.

[2단계]
 개발자 버전(소스코드 포함)에서 다운로드한다.
            자바환경을 포함할 경우 34이고 포함하지 않을 경우 18M 정도이다.

[3단계]
전 단계에서 다운로드 하기 위해 <here> 부분을 클릭하면 [SourceForge.Net] 사이트를 통해
            다운로드 할 수 있도록 연결된다. [Download] 글자를 클릭한다.

[4단계]
 다양한 버전의 weka를 선택하여 다운로드 받을 수 있다.
            2008년 8월 현재 3.5.8 버전까지 개발된 것을 확인할 수 있다. 3.4.13 버전을 클릭하였다. 
            (최근 버전의 경우 오류가 발생할 수 있음으로 안정성이 있는 약간 이전의 버전을 선택했다.) 

[5단계] weka-3-4-13jre.exe 파일을 클릭하여 다운로드 한다.

[6단계] [저장] 버튼을 눌러 다운로드를 시작한다.


아래에 WEKA 다운로드 과정을 그림으로 다시 설명하였다.

1단계.

홈페이지를 방문한 후 왼쪽 편의 [Download] 를 클릭한다.

2단계.

개발자 버전(소스코드 포함)에서 다운로드한다. 자바환경을 포함할 경우 34이고 포함하지 않을 경우 18M 정도이다. 

3단계.

전 단계에서 다운로드 하기 위해 <here> 부분을 클릭하면 [SourceForge.Net] 사이트를 통해 다운로드 할 수 있도록 연결된다. [Download] 글자를 클릭한다. 

4단계. 

 다양한 버전의 weka를 선택하여 다운로드 받을 수 있다.     2008년 8월 현재 3.5.8 버전까지 개발된 것을 확인할 수 있다. 3.4.13 버전을 클릭하였다. (최근 버전의 경우 오류가 발생할 수 있음으로 안정성이 있는 약간 이전의 버전을 선택했다.)


5단계.

weka-3-4-13jre.exe 파일을 클릭하여 다운로드 한다.  

6단계. 

[저장] 버튼을 눌러 다운로드를 시작한다.


바탕화면에 설치 프로그램 파일(weka-3-4-13jre.exe) 다운로드가 완료되었다.




지금까지 weka 설치 프로그램을 다운로드 하는 방법을 사용하였다.

다운로드하는 방법은 차후 변경될 수 있음으로 참고하기 바란다.

이제 다음 부분에서는 프로그램을 설치하고 실행하는 방법을 배워보도록 하겠다. 


Weka 설치하고 실행하기   

이전 단계에서 다운로드 한 설치 프로그램 파일을 더블클릭하여 실행한다.

설치 마법사가 실행되는데 아래와 같이 단계별로 선택하여 설치한다. 

 [1단계] [next] 버튼을 클릭한다.  [2단계] [next] 버튼을 클릭한다.
 



  [3단계] 설치 옵션을 선택한다.  [4단계] 설치할 폴더를 선택한다.
 
 


Weka 실행하기 

이전 단계에서 weka 프로그램을 설치를 완료하였다.

설치를 완료하였으면 시작 프로그램에 weka가 등록된 것을 확인할 수 있다.

그럼 등록된 버튼을 눌러 weka를 실행해보자.

[시작] - [모든 프로그램] - [Weka 3.4.13] - [Weka 3.4] 경로로 실행하였다.




앗~ 그런데 ..., 아래와 같이 에러 화면이 발생하였다.



이 화면에서는 왜 에러가 발생했는지 이유를 설명하지 않고, 그냥 치명적인 오류가 발생하여 종료된다고 설명할 뿐이다.

이러한 에러가 발생하는 이유는 자바 프로그램 실행시 기본적으로 지정되어 있는 메모리의 크기가 부족하기 때문에 발생하는 것이다. (컴퓨터에 설치된 메모리가 부족하기 때문은 아니다.)

따라서 이 문제를 해결하고 제대로 실행하기 위해서는 다음과 같은 명령으로 실행하면 된다.

                                                       java -Xmx256m -jar weka.jar 

위 명령을 수행하기 위해서는 도스 명령창을 띄우고, weka가 설치되어 있는 폴더로 이동한 후,

아래와 같이 명령을 실행하면 된다. 

 

설명한 것과 같이 메모리를 설정한 후 실행하면 아래와 같이 프로그램이 실행된다.

작은 프로그램 화면이 나타난다.  프로그램에는 weka 새의 그림이 표시되어 있다.

도스 프로그램 창에는 "---Registering Weka Editors-- " 라고 텍스트가 표시된 것을 볼 수 있다.



이렇게 해서 처음에 발생하는 에러 문제를 해결하고 정상적으로 웨카 프로그램을 실행하였다.

* 쉽게 실행하는 방법

메모리 크기 설정 문제로 인해서 도스 명령어를 사용해서 실행하는 방법을 설명하였다.

이러한 방식은 번거롭기 때문에 배치(Batch) 파일을 만들어서 클릭만 하면 실행되도록 하는 것이 좋다.  

[1단계] 아래와 같이 메모장을 사용하여 텍스트 파일을 만들자.
[2단계] 이 파일을 바탕화면에 두고 클릭하여 간단하게 실행할 수 있다. (또는 바로가기 링크)  



위와 같이 텍스트 파일을 만들어서 바탕화면에 두거나 또는 바로가기 아이콘을 만들어 두고 실행하면 되겠다. 
 
이상으로 Weka를 설치하고 실행하는 방법을 설명하였습니다.

끝~


 

by 에이아이 2009. 8. 2. 01:02

본 글에서는 대표적인 데이터마이닝 프로그램인 WEKA를 사용하여 의사결정트리 분류 분석을 수행하는 방법을 설명합니다. 프로그램을 설치하면 기본적으로 제공되는 Weather 데이터를 사용하여 분석을 해보았습니다.

Weka 시작하기

weka 프로그램 설치와 실행을 성공하였으니 간단하게 프로그램을 사용해보도록 하자.
첫 화면에서 하단에 4개의 버튼이 보이는데 그 중 [Explorer]를 클릭한다.
그러면 아래의 오른쪽 그림과 같은 화면이 생성된다.



* 전처리 부분에서 첫 번째 메뉴인 [Open file...]을 클릭한 후, [iris.arff] 파일을 선택한다.
  ( arff 파일은 weka 프로그램의 입력 형식을 따르는 데이터 파일이다. )



선택한 데이터에 대하여 아래와 같이 데이터의 기본 속성 및 분포가 표시된다.
( weka는 텍스트 파일 뿐 아니라 DB를 통해서도 사용할 수 있도록 지원하고 있다. )



오른쪽 중간 위치의 [Visualize All] 버튼을 클릭하면 데이터의 각 속성에 대한 분포를 그림으로 보여준다.
( 데이터를 처음 이해할 때 챠트 분석을 통해 이해하는 것은 쉬우면서도 필수적인 과정이다. )

5개의 속성에 대하여 챠트가 그려진다. 챠트의 색상은 타겟 클래스 값으로 구분된 것이다.




Weka 분류(J48/C4.5) 분석 해보기

이번에는 날씨에 관련된 다른 데이터를 선택하고 분석을 수행해보도록 하자.

이 데이터는 날씨에 따라 Play 여부를 기록한 데이터이다. 날씨의 어떠함에 따라 운동경기를 했는지, 안했는지의 과거 정보들을 기록해둔 데이터이다. 이 데이터를 분석하면 어떤 날씨 조건에서 운동을 하는 것이 좋은 가에 대한 유용한 지식을 얻을 수 있을 것이다.

먼저 데이터를 이해하기 위해 설명한다. wether.nomial.csv 파일은 메모장으로 열면 아래와 같다.

Excel 프로그램으로 파일을 열면 오른쪽 그림과 같이 볼 수 있다.



csv 파일 형식은 각 데이터의 요소들을 콤마(,)로 구분한 텍스트 파일이다. 따라서 위와 같이 메모장이나 글 같은 워드프로세서 프로그램으로 열 수 있다. 그리고 위와 같이 엑셀 프로그램을 사용하여 열면 좀 더 보기 좋게 표시된다.

위 파일을 Weka에서 입력으로 받아 분석하기 위해서는 ARFF 형식으로 변경해주어야 한다. CSV 형식은 WEKA 프로그램에서 입력으로 허용하지 않는다. ARFF 형식으로 변경한 결과는 아래와 같다.

ARFF 형식은 왼쪽 그림과 같이 @relation, @attribute, @data 의 3개의 영역으로 표현된다.
각 내용은 아래와 같이 입력한다.

@relation 데이터명칭

@attribute 속성이름 {범주형의 값 리스트 }
본 데이터셋은 5개의 범주형 속성으로 구성되었다.

@data
하단에 한 줄에 하나의 레코드(인스턴스)를 기록함.
본 데이터셋은 14개의 레코드가 입력되었다.

데이터는 범주형 속성 뿐 아니라 수치형 속성을 포함할 수도 있다.
위에서 소개한 Weather 데이터의 원래 형태는 아래와 같이 수치형으로 구성되어 있다.



위의 파일과 같이 수치형 속성을 포함했을 때의 ARFF 파일을 생성하는 방법을 예를 통해 설명하겠다.

위 파일을 ARFF 형식으로 변환한 결과는 아래와 같다.

 
위에서 설명한 바와 같이 @attribute 라인을 통해 각 속성에 대한 정보를 기록한다. 이 때, 범주형 속성과 수치형 속성을 구분하여 기록해주어야 한다.

(1) 범주형 속성
@attribute 속성이름 {범주형의 값 리스트 }
본 데이터셋은 5개의 범주형 속성으로 구성되었다.

(2) 수치형 속성
@attribute 속성이름 real

즉, 수치형 속성은 속성의 이름을 적어 준 후, 뒤에 real 이라고만 기록해주면 된다. 범주형 속성의 경우 값을 모두 적어주지만, 수치형은 간단하다.



통계 또는 데이터마이닝 등의 분석 프로그램에서는 입력데이터의 속성을 지정해주어야 한다. 다양하게 요구하는 프로램도 있지만, Weka에서는 2개의 속성 즉, ➀범주형 속성, ➁수치형 속성으로만 구분한다. 범주형 속성은 Categorial 또는 Nominal 속성으로 불려진다. 그리고 수치형 속성은 보통 numeric 속성으로 불려진다.  

@attribute 정의 부분에서 맨 아래쪽에 기입한 속성이 분석의 목표가 되는 속성으로 인식된다. 
그럼, 위에서 설명하고 준비한 weather.nominal.arff 파일을 Weka를 사용하여 분석해보도록 하자. 초기화면에서 [Open file...]을 클릭하여 해당 파일을 선택하면, 아래 그림과 같이 표시된다.




좌측 중간 화면에 5개의 속성의 이름이 표시된 것을 볼 수 있다. 특정 속성에 대한 체크박스를 클릭하면, 오른쪽 부분에 각 속성의 통계 분석이 표시된다.



그림에서 파랑색은 play 속성이 Yes 값을 갖는 경우이고, 빨강색은 play 속성이 No 값을 갖는 경우를 구분한 것이다. 즉 해석하면, Outlook(조망)이 Sunny(맑음)인 경우는 안하는 경우가 약간많고, Overcast(흐림)인 경우 100% 운동을 하고, Rainy(비옴)인 경우도 경기하는 비율이 약간 높음을 볼 수 있다. 온도에 따라서는 크게 비율의 차이가 없는 것으로 보인다.

그럼, 대표적인 데이터마이닝 분석 방법인 C4.5 의사결정트리 알고리즘을 사용하여 분석해보도록 하자. Weka에서는 C4.5 알고리즘을 J4.8 이라는 이름으로 제공하고 있다.  

단계1. 데이터를 선택한다. (우리는 이미 전 단계에서 weather.arff 파일을 선택하였다. )

단계2. 메뉴에서 [Classify]를 선택한다. 왼쪽 상단의 [Choose] 버튼을 클릭한 후 trees 항목에 속해있는 J48 알고리즘을 선택한다.



단계3. 왼쪽 중간 부분의 [Start] 버튼을 클릭하면, J48 분석을 수행을 시작한다.
          데이터의 크기가 작으므로 잠깐만 기다리면 오른쪽에 결과가 텍스트 형식으로 출력된다.



  위에서 수행한 Weather 데이터에 대한 J48 알고리즘의 수행결과를 분석해보도록 하자. 텍스트 결과 전체를 아래의 그림에 표시하였다. 데이터에 대한 설명과 트리 결과 모델 그리고 데이터를 구분하여 검증한 결과들을 보여준다.  

  아래의 결과에서 가장 중요한 부분은 빨강색으로 표시한 트리(tree) 부분이다. 운동 경기(play)에 영향을 주는 속성은 조명(outlook), 습도(humidity), 풍량(windy)으로 분석되었다. 가장 중요한 속성은 조망(outlook)이다.

=== Run information ===

Scheme  :     weka.classifiers.trees.J48 -C 0.25 -M 2
Relation  :     weather
Instances :     14
Attributes :     5    ( outlook , temperature, humidity, windy, play )

Test mode: 10-fold cross-validation

=== Classifier model (full training set) ===

J48 pruned tree
------------------
outlook = sunny
|   humidity <= 75: yes (2.0)
|   humidity > 75: no (3.0)
outlook = overcast: yes (4.0)
outlook = rainy
|   windy = TRUE: no (2.0)
|   windy = FALSE: yes (3.0)

Number of Leaves  :  5
Size of the tree :  8

Time taken to build model: 0.03 seconds

=== Stratified cross-validation ===

=== Summary ===
Correctly Classified Instances           9               64.2857 %
Incorrectly Classified Instances         5               35.7143 %
Kappa statistic                          0.186
Mean absolute error                      0.2857
Root mean squared error                  0.4818
Relative absolute error                 60      %
Root relative squared error             97.6586 %
Total Number of Instances               14    

=== Detailed Accuracy By Class ===
TP Rate   FP Rate   Precision   Recall  F-Measure   Class
  0.778     0.6        0.7       0.778     0.737    yes
  0.4       0.222      0.5       0.4       0.444    no

=== Confusion Matrix ===
 a b   <-- classified as
 7 2 | a = yes
 3 2 | b = no 



위의 텍스트로 된 Tree 결과를 시각적으로 표시하면 의미를 쉽게 이해할 수 있다. Weka에서는 텍스트 뿐 아니라 시각적인 기능도 제공하고 있다. 왼쪽 하단의 [Result list] 부분에서 방금 수행된 [tree.J48] 항목에서 마우스 오른쪽 버튼을 누른 후 [Visualzie tree]를 클릭한다.



아래와 같은 시각화된 의사결정트리를 볼 수 있다.



이상으로 Weka 를 설치하고 간단히 사용해 보는 연습을 마치겠습니다.



 



 


 

by 에이아이 2009. 8. 1. 23:41

EM 알고리즘 소개 (Expectation Maximazation)

2004년 즈음에 EM 알고리즘에 대해서 발표한 PPT 입니다.
발표 후에 2005년 3월 즈음에 오류를 수정했었습니다.

K-Means 알고리즘과 비교하여 EM 알고리즘을 자세히 소개하려고 했었고,
예제를 사용하여 EM 알고리즘을 쉽게 이해할 수 있도록 준비하였습니다.

파일을 첨부합니다.

위의 파일은 PPT 파일이고, 아래의 파일은 한글로 자세하게 설명한 자료입니다.
( 2003년 데이터마이닝 특론 수업에서 발표 및 제출했던 자료들입니다. )

(1) EM 알고리즘 소개 PPT 파일



(2) EM 알고리즘 자세한 소개 한글 파일

by 에이아이 2009. 8. 1. 10:08