[R을 활용한 분류분석]



1. 개요


IRIS 데이터에 R을 활용한 분류분석


R을 활용한 분류분석을 위해 IRIS데이터를 활용하여 보겠습니다. IRIS데이터는 세 가지 종류의  붓꽃으로 분류된 데이터입니다. 붓꽃들은 Iris setosa, Iris virginica, Iris versicolor입니다.  이 데이터는 붓꽃에 따라 꽃받침인 sepal의 길이, 너비, 그리고 꽃잎인 petal의 길이와 너비 값을 기록한 데이터입니다. 이 붓꽃들은 꽃받침과 꽃잎의 비율로 품종을 구분하기 때문에 연구 끝에  데이터를 추출한 것으로 150개의 레코드로 구성되어 있습니다. 데이터 정보가 영어로 되어 있기  때문에 각 데이터가 어떤 것을 나타내는지를 먼저 확인하겠습니다. Sepal Length는 꽃받침의 길이를  나타내며 Sepal Width는 꽃받침의 너비를 나타냅니다. Petal Length는 꽃잎의 길이를 나타내고  Petal Width는 꽃잎의 너비를 나타냅니다.  그리고 Species는 꽃의 종류를 말하며 setosa, virginica, versicolor의 3종류로 구분됩니다. 





2. 수행


Party Packgae  우리는 party package를 사용할 것인데요. party package는 R에서 제공하는 분류분석 패키지 중  하나입니다. ctree를 이용하여 의사결정 트리를 생성합니다. party package는 사용하기 편하다는 큰  장점이 있으나 단점도 있는데요. 먼저 좌우로 분실이 분류되는데 분실값을 잘 처리하지 못합니다.  그리고 tree에 투입된 데이터가 표시되지 않거나 predict가 실패하는 경우, 명목 변수의 테스트   데이터가 train과 다르게 처리됩니다. 이를 주의하며 다루어야겠습니다.






R에서 party package를 실행하기 전에 iris 데이터에 대한 통계 값을 산출할 수 있는 것이 summary   함수입니다. 이를 사용하면 Sepal.Length 변수의 최소 값은 4.3이고, 평균인 Mean은 5.843이며  최대 값인 Maxs가 7.9임을 알 수 있습니다. 동일하게 다른 변수들에 대해서도 확인할 수 있죠.  또한 setosa, versicolor, virginica 3종의 iris가 각각 50개씩 있는 것도 알 수 있습니다.





Party Package의 ctree를 이용한 분류분석


먼저 data(iris)는  사용할 데이터를 지정해서 로딩한다는 것입니다. 그리고 2번 박스를 보시죠. 먼저 nrow(iris)가  있는데요. nrow( )함수는 행렬에서 행 개수를 파악할 경우 사용합니다. ind → sample(2,nrow(iris),  replace=TRUE, prob=c(0.7,0.3))라는 것은 ind 변수에 1과 2값을 할당하여 이 범위에서 iris테이블의  행의 개수만큼 70%, 30%로 샘플 데이터셋트를 구성하겠다는 것입니다. 이는 학습 데이터와 테스트 데이터를 구분하기 위한 것인데요. 학습 데이터란 모델개발을 위해 학습할 데이터이고, 테스트  데이터는 학습을 통해 만든 모델을 검증하는 데이터입니다. 

trainData ← iris[ind==1,]와 testData ← iris[ind==2,]로 iris 전체 데이터 중에서 ind에 따라 학습 데이터와 테스트 데이터를 구분합니다. 

myFormula ← Species ~ Sepal.Length + Sepal.Width +  Petal.Length + Petal.Width 라는 것은 모델링에 타겟변수와 타겟을 분류하는데 사용할 변수들을  공식으로 정의한 것입니다. 변수가 많거나, 이미 모델링을 위한 데이터를 선별해서 작성한 경우 “~”처럼 표현해서 모든 변수를 투입합니다. 


iris_ctree ← ctree(myFormula, data=trainData)는  ctree를 이용해서 학습 데이터를 해당공식에 맞는 모델로 만들어 iris_ctree에 저장한 것입니다.

6번 박스의 언어는 학습 데이터에 따른 모델의 성과를 확인하기 위해 예측된 데이터가 원래 학습  데이터에 있는 Species와 어떻게 차이가 있는지 확인합니다. 




좌측은 예측값이고 상단은 실제값입니다.  따라서 vesicolor라고 예측한 것 36개 중에 실제로 vericolor는 34개이고 2개는 virginica입니다.   전체적으로 보면 원래값으로 제대로 예측했음을 알 수 있습니다.


print(iris_ctree)를 입력하면 학습 데이터로 개발된 모델의 산출물이 텍스트 형식으로 표현됩니다.  다음과 같이 조건문으로 표시됩니다.




plot(iris_ctree)를 입력하면 개발된 모델을 그래프로 표현합니다. 어떤 변수가 크게 분류를 하고, 어떤 조건인 경우에 어떠한 class가 주로 존재하는지를 구조적으로 파악할 수 있습니다. 4개의 끝난  노드를 갖는 tree로 표현되었습니다.





plot함수에 타입을 심플로 주면 개발된 모델을 심플하게 그래프로 표현합니다.
testPred ← predict(iris_ctree, newdata=testData)는 개발된 모델을 이용해서 테스트 데이터에 적용해  최종 검증을 합니다. 




그리고 table(testPred, testData$Species)테스트 데이터의 정확도를  분석합니다. 
다음은 그 결과입니다. 








[R을 활용한 군집분석]



1. 개요


IRIS 데이터에 R을 활용한 분류분석


IRIS 데이터인 (iris.arff)에서 IRIS 종류를 의미하는 class 속성을 제거하고 4가지 속성을 기준으로  군집분석을 해볼 텐데요. 꽃받침의 길이와 너비 그리고 꽃잎의 길이와 너비가 4가지 속성입니다.  이 값을 기준으로 150개의 데이터를 클러스터링 하는 군집분석을 수행해보도록 하겠습니다.



2. 수행


K-평균(K-Means) 군집분석


K-평균(K-Means) 군집분석을 진행해보도록 하겠습니다. 먼저 data(iris)로 사용할 데이터를  지정해서 로딩합니다. 그리고 newiris<-iris를 입력하여 iris 데이터를 newiris로 복사합니다.  이는 K-평균(K-means) 분석을 위함입니다. newiris$Species <-NULL은 복사한 데이터의 Species에  NULL값을 주는 것입니다. NULL은 아무 가치 없는 이라는 의미를 가진 형용사인데요. 프로그래밍  언어에서 초기값을 만드는 역할을 합니다. 이 전체명령어는 복사한 데이터를 세분화 했을 때 세분  집단이 Species를 잘 분류해 주었는지를 알고자 Species에 NULL값으로 초기화 하는 것입니다. 

kc <-kmeans(newiris,3)는 Species가 3개가 있으므로 일단 이러한 아이디어를 갖고 최적의 값이  3개라는 사전지식 하에 시도해본다는 것입니다. kc는 결과를 도출합니다. 다음 결과를 보시죠.

이 결과값은 3개 집단의 size와 각 집단의 변수들의 평균값, 각 데이터가 어느 cluster에 속할지에  대한 값을 보여줍니다.




plot(newiris[c("Sepal.Length","Sepal.Width")], col=kc$cluster)에서 col=kc$cluster이라는 것은  kc변수의 cluster 값마다 다른 color를 적용한다는 것입니다. 즉, Sepal의 width와 length color를  다르게 하여 K-평균 결과를 나타냅니다. 7번 박스 언어 중 pch(  )는 plotting character의 약어로  위치 표식을 하는 함수입니다. 


즉, points(kc$centers[,c("Sepal.Length","Sepal.Width")],  col=1:3,pch=8,cex=2)는 3개 클러스터의 중심점을 위치 표식 정수 8번이 가리키는 심볼 함수를  사용하여 디폴트 포인트보다 2배 포인트로 표시하겠다는 것입니다. 변수가 Sepal.Length와 Sepal.Width 2개로 제한되어 일부 집단이 겹쳐지는 것으로 나타나지만 전체적으로 집단이 다른 색으로 구분됨을 알 수 있습니다.








[R을 활용한 연관분석]


1. 개요


R은 arules library를 사용하여 연관분석을 수행합니다. arules는 Apriori 알고리즘을 이용하여  연관규칙을 분석하는데 아직 arules 패키지를 R에 설치하지 않았다면 install.packages("arules")를  이용하여 설치합니다. 그리고 연관분석을 위해 트랜잭션 데이터가 반드시 필요한데요. ID라고 즉, Item으로 구성된 Data라고도 부릅니다. 이는 상점에서 고객의 주문이나 판매, 은행에서 고객의  입금이나 출금 등과 같은 외부 거래를 기록하기 위해 단말기 등에서 생성하여 컴퓨터 시스템으로  전송하는 데이터라는 것을 알아두세요.




2. 수행


그럼 DVD 대여 거래 정보 데이터를 이용하여 연관분석을 해보겠습니다 DVD 대여 거래 정보는  rattle 패키지에서 제공하는 데이터를 활용할 것입니다. DVD 대여 거래 정보를 가지는 dvdtrans.csv  파일을 다운 받아 작업디렉토리에 이동시키고 dvd ← read.csv("dvdtrans.csv", header = TRUE,   as.is = TRUE) > dvd를 치면 다음과 같은 결과화면이 나옵니다. 



자, 결과를 살펴봅시다. 10개의 DVD 대여 거래에서 어떤 DVD가 대여되었는지를 보여주고 있습니다. 

첫 번째 열은 거래 번호, 두 번째 열은 대여된 DVD 물품 정보를 보여줍니다. 예를 들어 첫째에서  다섯째 행까지는 1번 거래에서 다음과 같은 5개의 DVD가 동시에 대여되었음을 보여주고 있습니다.




데이터변환 - 트랜스잭션 클래스로 변환


다음은 데이터를 트랜스잭션 클래스로 변환해 보겠습니다. arules 패키지를 이용하여 연관규칙을  분석하기 위해서는 arules 패키지가 사용하는 데이터 형태로 변화해주어야 하기 때문입니다. 

> dvd.list ← split(dvd$Item, dvd$ID)를 입력하면 DVD 물품별의 기록이 하나의 레코드로 된 구조를  거래 ID별로의 기록이 하나의 레코드로 된 구조로 변환합니다. 이렇게 변환하기 위해 split 함수를  이용하는데요. split 함수는 첫 번째 인수로 주어진 벡터의 데이터를 두 번째 인수로 주어진 벡터의  요인별로 데이터를 구분하여 list를 생성해 줍니다. 





결과화면을 보면 거래 ID에 따라 대여된 DVD 물품을 개별적 벡터로 분할하여  보여주고 있습니다.





arules 패키지를 이용한 작업


지금부터의 작업은 arules 패키지를 이용하여야 합니다. ibrary(arules)로 arules 패키지를  적재합니다. 그리고 dvd.trans ← as(dvd.list, "transactions")으로 arules에서 사용하는  트랜스잭션 클래스로 데이터를 변환해 줍니다. 이는 as(  ) 함수를 이용한 것인데요. as(  ) 함수를  이용하면 해당 데이터 구조를 정해진 클래스 데이터로 변환할 수 있습니다. 이는 데이터를 변환  결과인데요. 거래 정보가 10개의 거래와 총 10개의 물품으로 구성된 데이터임을 보여줍니다.





연관규칙의 생성

이제 연관규칙을 생성해볼 텐데요. 연관규칙은 arules 패키지가 제공하는 apriori() 함수를 이용하여  생성합니다. apriori() 함수는 최소 지지도에 의해 가지치기를 하는 알고리즘을 이용하며 출력  결과를 통해 알고리즘에서 사용한 매개변수의 값을 보여줍니다. > dvd.rules ← apriori(dvd.trans)는  변환한 데이터에 apriori() 함수를 이용하여 연관 규칙을 생성하라는 것입니다.  그 결과 화면을 보시죠. 



apriori() 함수는 출력 결과를 통해 알고리즘에서 사용한 매개변수의 값을 보여줍니다.  우리는 호출 시 별도의 매개변수 설정이 없었으므로 디폴트 값에 의해 규칙이 생성되었습니다.  디폴트 값이란 프로그램에서 사용자가 값을 지정하지 않아도 컴퓨터 시스템 자체에서 저절로 주어지는   값인데요. 주요 매개변수의 의미와 디폴트 값을 알아보겠습니다. confidence는 규칙의 최소  신뢰도 라는 의미로 0.8이라는 디폴트 값을 가집니다. smax는 규칙의 최대 지지도를 의미하며 1을  디폴트 값으로 가집니다. support는 규칙의 최소 지지도로 0.1을 디폴트 값으로 가집니다. minlen은  규칙에 포함되는 최소 물품수로 1을 디폴트 값으로 가지며 maxlen은 규칙에 포함되는 최대 물품수로  10을 디폴트 값으로 가집니다. 



연관규칙의 결과 요약정보

연관규칙의 결과를 요약한 정보를 확인하겠습니다. 이는 summary(  ) 함수를 이용할 겁니다. summary(  ) 함수는 연관규칙 분석결과에 대한 요약 정보를 출력하는 함수이기 때문입니다. 

> summary(dvd.rules)는 생성된 연관규칙 결과데이터를 요약하라는 것입니다. 결과 화면을 보시죠






총 77개의 연관규칙이 발견되었고, 이 중 물품이 2개 관련된 연관규칙은 12개, 3개 관련된 규칙은  36개, 4개 관련된 규칙은 24개, 5개 관련된 규칙은 5개임을 알 수 있습니다. 또한 규칙에 포함된  물품 수에 대한 최소, 최대 및 사분위수 정보도 확인할 수 있고, 발견된 규칙에 대한 지지도,  신뢰도, 향상도(lift)에 대한 최소, 최대 및 사분위수 정보와 함께 분석에 사용된 데이터와  매개변수에 대한 정보도 함께 제시하고 있습니다.





발견된 연관규칙 확인


발견된 연관규칙의 결과를 확인하려고 할 때 inspect(  ) 함수를 이용합니다. inspect (  ) 함수는  배열의 내용을 알기 쉬운 형식으로 하여 출력하는 함수입니다. > inspect(dvd.rules)는 생성된  연관규칙 결과데이터를 보기 좋게 정렬합니다. 결과 화면을 보시죠. 





발견된 77개의 연관규칙을 확인할 수 있는데 우리는 그 일부분만 보겠습니다. 총 10개의 거래를  가지고 연관규칙을 분석하였으므로 한 거래에서만 물품들이 같이 대여되었어도 지지도가 0.1이 됨을  알 수 있습니다. 결과에서 제시된 많은 연관규칙이 한 거래에서만 나타난 지지도 0.1인 규칙임을  볼 수 있습니다.


좀 더 유용한 연관규칙 을 확인하고 싶다면 

> dvd.rules ← apriori(dvd.trans, parameter = list (support = 0.2, confidence = 0.6))를 적용합니다. 최소 지지도를 0.2 이상 가지고 신뢰도를  0.6으로 낮추어 실행하는 것입니다. 그러면 총 15개의 연관규칙을 발견할 수 있습니다.









[R의 기본개념]



1. 소개


R 프로그램은 오픈 소스 프로그램으로 통계와  데이터 마이닝 및 그래프 수행을 위한 언어입니다. 주로 연구 및 산업별 응용 프로그램으로 많이 사용되고  있으며, 최근에는 기업들이 많이 사용하기 시작했습니다. 특히, 빅데이터 분석을 위한 아키텍처 전반에  걸쳐 공통적인 분석 플랫폼으로 자리잡고 있으며, 2013년 2월 기준 4332개가 넘는 패키지들이 다양한  기능을 지원하고 있으며 수시로 업데이트 되고 있습니다.


R은 다양한 최신 통계분석 및 마이닝 기능을 자동화 할 수 있습니다. 언어에 가까운 문장형식이므로  자동화가 매우 쉽고, 다양한 사용자들이 다양한 예제들을 공유할 수 있습니다. www.r-project.org에서의  Core팀에 의한 내용 및 www.r-blogers.com에서 다양한 예제들이 제공되고 있습니다.  구체적으로 다시 살펴보면 www.r-project.org 사이트는 통계 프로그램인 R을 소개하는 사이트로서  R 프로그램 개발 Project를 소개하고 R 프로그램의, 매뉴얼 및 설치 파일 등에 대한 다운로드를 제공합니다.

또한 www.r-bloggers.com 사이트에서는 앞서 언급했다시피 R 프로그램의 다양한 예제들이 제공되고  있습니다.




기능

R은 프로그래밍 언어이기 때문에 패키지가 미리 프로그램 해 놓은 절차에  제한 받지 않고 새로운 방법을 프로그램 하기가 상대적으로 쉽습니다. 또한, R은 대화식으로 수행하여 한번에 하나의 프로세스를 수행하고 분석하는 동안 보이는 것에 기초해 변경이 가능하고 빠른 처리속도를  가지고 다양한 함수 및 데이터를 내장하고 있습니다. 그리고 Help의 examples을 바로 사용할 수 있으며  분석에 효과적으로 활용될 수 있는 그래픽을 지원하고 각종 그래프를 R에서 바로 사용할 수 있습니다.


그렇다면 R은 어떤 분야에서 응용되고 있을까요? R은 우리 생활 곳곳에 있지만 주로 통계 분석이나  자료 분석 등의 분석 역할을 하며, 모델링이나 그래픽 작업, 조직화 및 시각화 작업 시에도 R이 쓰이고  있습니다. 또한 학문에서도 R이 쓰이고 있는데요. 재정학이나 생물정보학 등 다양한 학문에서 활발히  사용되고 있습니다. 이처럼 R은 생각보다 많은 분야에서 응용되고 있습니다.



2. 설치

( Link :   http://cran.nexr.com )


R을 설치할 때 주의할 점입니다. 만약에 설치과정에서 시작 환경 설정을 변경하지  않았거나 화면표시형식을 MDI, 즉 One big window로 선택하였다면 RGui 메인 창 안에 명령어 입력을  기다리는 R Console창이 들어있는 형태로 시작될 수 있습니다. 여기서 R Console이란 R의 표준 입력 및  출력 장치입니다. 그리고 Mdi는 하나의 화면으로 제공되는 형태를 말합니다.






[R 사용법과 분석모듈]



1. R의 기초 사용법



R은 공학수식 계산이 가능한데요. 각 표시가 무엇을  의미하는지 알아보겠습니다. 다음 명령어가 제시된 화면을 보시죠. 


  



명령어 입력 다음 줄 처음에 [1]라는  표시가 있습니다. 이는 R이 명령어 수행결과를 벡터로 출력하기 때문에 나타난 수행결과로서 벡터의 첫 번째 요소라는 것을 의미합니다. 이 값에 log10(10)와 log(exp(1))를 세미콜론을 이용하여  동시에 수행하는데 각각의 결과 값은 [1]이라는 표시로 나누어 보여줍니다.


여기서 세미콜론(;) 은 한 줄에 여러 개의 명령을 입력할 때 사용합니다. 현재 이미지를 보시면 log10(10)와  log(exp(1)) 두 가지 명령을 한 줄에 넣고 있지요? 이럴 경우 세미콜론으로 명령을 구분해주는 것입니다.

exp(2)를 수행하면 7.389056으로 수행결과 값이 나옵니다. 그리고 rnorm(12)명령어는 임의의 숫자 12개를  불러 내는 것으로 이를 실행하면 이미지와 같이 12개의 숫자가 나옵니다. 하지만 이것을 어떻게 해석해야  할까요? 아까 [1]는 R이 명령어 수행결과 중 첫 번째 요소라는 것을 의미한다고 했습니다.  그렇다면 이 꺽쇠괄호 안에 있는 숫자7은 무슨 의미일까요? 이는 rnorm(12) 명령어 수행결과처럼 한 줄에  모든 결과를 표현하지 못할 경우 새로운 줄 앞에 [7]과 같은 숫자를 출력하여 -0.21073790이 계산결과의 7번째 요소라는 것을 표시합니다. 여기서 rnorm은 정규분포를 의미합니다.


벡터 라는 것은 크기와 방향을 동시에 나타내는 물리량으로, 여러 개 차원의 수치 값으로 이루어진 데이터  구조로 이해할 수 있습니다. 본 화면에 대해 추가로 설명을 하면 5 더하기 6의 제곱에 대한 수행결과는  백터의 첫 번째 요소가 41이라는 것입니다. 그리고 벡터는 데이터 구조의 가장 기본이 되는 것인데  여기서 데이터 구조란 데이터 베이스에 있는 파일 간에 관련성과 각 파일 내의 항목 간의 관련성 형태를  말합니다. 이때, R프로그램은 데이터구조를 기반으로 어떤 기능을 수행합니다.   


또한 벡터는 기본적으로 R프로그램에서 벡터를 다루는 작업이 가장 기초가 됩니다. 이것은 여러 개 차원의  수치 값으로 이루어진 데이터 구조를 가집니다. 다음 화면에 제시된 것은 벡터를 생성하기 위한 입력  값들입니다. 





즉, 벡터를 생성하기 위해서 이와 같이 입력한다면 벡터 값이 생성 되어지는 것입니다. 

그러면 화면에 제시된 입력 값들에 대해 하나씩 살펴 보면 x는 벡터 변수를 의미하며 는 할당 연산자를  나타냅니다. 그리고 c()는 ,(쉼표)로 구분된 길이 1인 하나의 벡터를 묶어서, 연속된 하나의 벡터로  생성하는 함수를 의미합니다. 





변수의 사용과 값 지정


R은 공학수학 계산 표시 외에도 변수의 사용과 값 지정이  가능합니다.

다음 이미지를 보면




amount.x를 3으로 설정한 후 amount.x에 amount.x를 더합니다. 

그 결과 [1]는 6이라는 결과값을 얻게 됩니다. 그리고 amount.y를 7로 설정합니다. 

그 후 amount.total로 amount.x에 amount.y 값을 더하게 됩니다. 그 결과 [1]은 13이라는 결과값을  얻게 됩니다. R은 이와 같은 변수 사용을 할 수 있습니다. 이처럼 R을 이용하는데 있어 문자변수에 값을  할당하고 이들 변수의 연산을 수행하는 것은 매우 중요한데요. 주의해야 할 사항은 특수문자로 시작하는  변수이름과 숫자만으로 이루어진 변수이름은 사용하지 않는 것입니다. 예를들면, 특수문자인 #으로  시작되는 #abc나 숫자로만 이루어진 123과 같은 이름은 변수이름으로는 사용할 수 없습니다.




데이터 벡터의 산술연산


또한 R은 데이터 벡터의 산술연산이 가능합니다. 

다음 이미지를 보면






먼저, weight라는 이름의  데이터 벡터를 생성하였습니다. 여기서는 값을 보시는 것처럼 93, 82, 80, 67, 72,  69로 설정하였습니다.

또한, height 데이터 벡터를 생성하는데, 여기서는 다음처럼 값을 설정하였습니다. 그리고 weight 벡터의  각 요소 값들을 각각에 대응하는 height 벡터 각 요소 제곱 값으로 나누어 BMI 벡터를 구합니다.  여기서도 그 과정으로 BMI 벡터를 구한 결과 다음과 같은 6개의 결과값을 산출하였습니다.  산출한 값으로 데이터 벡터의 weight 요소들의 평균과 표준편차를 계산할 수 있는데요.  다음 이미지를 보면






우선 앞서 생성한 weight 벡터의 각 요소 값들을 다 합산한 결과 463이라는  결과값이 나왔습니다. 그 후 weight 벡터의 관측 수를 계산한 결과 6이라는 값이 나옵니다. 

이렇게 산출된 값을 통해서 weight의 평균을 계산하면 77.16667이라는 값이 도출됩니다. 이 값을 weight  벡터의 각각의 관측 값에서 빼면 다음과 같이 결과가 도출됩니다. 그리고 이 값들을 제곱하여 값을  산출하고 이 결과값을 합산합니다. 그럼 478.8333이라는 결과값이 도출됩니다. 이 값에서 다음식처럼 weight  벡터의 관측 수에서 1개를 뺀 값으로 나누면 weight의 분산 값, 즉 95.76667이라는 값이 도출됩니다. 다시 이 값에서 weight의 표준편차를 구하려면 제곱근 함수인 sqrt 함수를 적용하게 되는데  그러면 9.786044라는 표준편차 값을 구할 수 있습니다. 이렇게 해서 합, 평균, 분산, 표준편차와 같은  통계 값을 R을 이용하여 산출할 수 있습니다. 평균을 계산하면 77.16667, 분산 값을 계산하면 95.76667,  표준편차는 9.786044입니다. 이처럼 R을 활용하여 데이터 벡터의 산술연산을 수행할 수 있습니다. 



표준 통계분석


그리고 R에서 통계분석을 수행할 수 있습니다. 예를들면, 가설 검정이라는 통계분석을 수행할 수 있습니다.  가설검정은 귀무가설과 대립가설을 세워 표본 데이터를 수집하여 귀무가설이 참인지를 통계적으로 검정하는  방법입니다. 아래의 이미지는 데이터 벡터 BMI의 평균 값이 22.5라고 말할 수 있는지를 유의수준 5%에서  통계의 t검정을 통해 검정하는 경우입니다. 이를 위해 R함수 t.test 함수를 사용하였습니다. 






앞의 예에서 사용한 BMI 데이터가 표본 데이터에 해당합니다. alternativ hypothsis 즉 대립가설은 ‘모집단의 평균이  22.5가 아니다’이고 귀무가설은 ‘모집단의 평균이 22.5이다’입니다. 이를 통해 T.test 결과가 result  변수에 저장되고 저장된 결과값중 p-value 값만 조회하면 0.1346972라는 것을 알 수 있습니다.  

          


이 부분에 대해 좀 더 구체적으로 알아보도록 하겠습니다. 


여기서는 가설검정 결과를 특정 이름의 변수에 저장한 후 그 변수에 저장된 값 가운데 p-value 값만을  호출할 수 있어 요약된 결과 출력을 명령할 수 있습니다. 즉, 주어진 예에서는 result라는 변수에  BMI 데이터에 대한 t검정 결과 값을 저장한 것이고 이렇게 저장된 T test 결과값 중 p-value 값만 조회하면   0.1346972라는 것을 알 수 있는 것입니다. 참고로 여기서 p-value는 통계학에서 어떠한 가설을 검증하기  위해 사용되는 확률로, 실제 관측된 표본 값으로부터 산출되는 확률 값입니다. 이것은 유의확률이라고도 하는데, 구체적으로 통계적 가설 검정에서 유의 확률이라고 합니다. 또한 이것은 귀무가설이 맞다고  가정할 때 얻은 결과보다 극단적인 결과가 실제로 관측될 확률을 의미합니다.  help 기능을 이용하고 싶을 때는 화면에서와 같이 help(함수이름)을 입력합니다.



그래프 그리기


R은 그래프를 그릴 수 있습니다. 데이터 사이의 관계를 표현하는데 유용한 플롯함수 라인즈함수 를 활용할 수 있는데요. 간단하게 각 함수에 대해 설명하겠습니다. 


먼저 플롯함수 는 그림을 그릴 때 일반적으로 사용되는 함수이고 기본적인 사용 형식으로 plot(x, y,…) 를 사용합니다.  그리고 x, y 2차원 축으로 도표를 그려주는데 그래프 매개변수라 하여 그래프 타입 등 다양한 사항을  정의할 수 있습니다. 또한 Help 명령어를 이용하여 자세한 내용을 알 수 있다는 특징이 있습니다. 


다음으로 라인즈 함수 는 플롯 함수로 출력한 결과에 덧붙여 선들을 출력하고자 할 때 쓰이는 함수를 말하며,  Graphic 함수 군에 속하므로 par()함수의 옵션 대부분을 그대로 이용할 수 있습니다. 그리고 y축 또는  Line Type을 정의할 수 있으며 기본적인 형식은 lines(x, ...) 입니다.  더불어 라인즈 함수도 Help 명령어를 이용하여 자세한 내용을 알 수 있다는 특징이 있습니다. 

두 함수가 모두 Help 명령어를 이용하여 자세한 내용을 알 수 있기 때문에 각각에 대한 Help 명령어  수행결과를 살펴보도록 하겠습니다.



이 두 함수의 사용 예시를 살펴보겠습니다. 



여섯 사람의 키와 몸무게 데이터를 가지고 그래프를 그린 것입니다. height를 x축, weight를 y축으로 하여  각 데이터 쌍을 좌표평면에 한 점으로 대응시키되 위치 표식으로 정수 15번이 가리키는 심볼인 ■ 을   사용하는 산점도 그래프를 출력합니다. 그리고 xvalue를 x축, xvalue의 제곱 값에 22.5을 곱한 값을  y축으로 하여 각 데이터 쌍을 선으로 연결한 선 그래프를 출력합니다. 여기서 xvalue라는 변수는 6개의  height 값을 sorting하여 얻어지므로 가장 작은 값인 1.69부터 가장 큰 값인 1.83이 순서대로 값을 가짐을  알 수 있습니다. 결과값이 나타난 R 그래프 출력 창을 확인해보세요.








2. R의 데이터 마이닝 분석모듈



기본적인 행렬의 생성 및 조작과 관련된 명령어




먼저 지금 보시는 함수는 c 함수로 1차원 벡터를 생성하는데  사용됩니다. 다음으로 차원(dimension) 지정함수인 dim함수입니다. 이 함수는 보시는 것처럼 m × n차원의  행렬을 생성합니다. 다음으로 진행되는 명령어는 matrix 함수인 matrix인데요. 행수를 지정하는 방식으로 행렬을 생성하는 함수입니다. 이때 byrow=F가 기본인자이기 때문에 matrix(1:15, nrow=3)의 경우 1부터  15까지 3개씩 아래방향으로 써내려 가며 행렬을 만들어내게 됩니다. 즉 byrow=T라는 인자를 사용하면  1부터 3개씩 우측방향(행 방향)으로 배열하게 되는 것입니다. 그 다음은 rownames, colnames 함수입니다.   이 함수는 행렬의 행 제목과 열 제목을 부여하는 함수입니다.




다음은 transposition 함수인  t입니다. 이 함수는 행렬의 행과 열 index를 바꾸는 역할을 합니다. 

이는 이전 명령어에서의 결과와 t함수 명령어의 결과를 보시는 것처럼 (2,3)위치 요소는 (3,2)위치로  바뀌게 된다는 것을 알 수 있습니다. 






다음 함수는 columnwise 결합 함수 cbind, rowwise 결합함수 rbind입니다. 이 함수들은 같은 길이의 벡터를   열 또는 행 방향으로 합쳐 행렬을 만들 수 있는 함수입니다. month.name[1:12], LETTERS[1:26]과 같   달 이름이나 알파벳 대문자 벡터 등은 별도로 생성하지 않고 사용할 수 있습니다. 또한 month.abb[c(1,3)]은  1월과 3월 영문약자 벡터 c("Jan","Mar")를 의미한다는 것을 기억하시기 바랍니다.

 예시와 함께 기본적인 행렬의 생성 및 조작과 관련된 명령어에 사용되는 함수들을 살펴보았습니다. 

 각 함수들에 대한 설명을 간단하게 도표로 정리하였습니다. 실무에 응용할 수 있도록 함수의 설명들을  숙지하도록 하세요.







데이터셋(Data Set) 구성


다음은 R에서 분석할 데이터 세트를 구성하는 방법에 대해 소개하고자 합니다. 데이터 세트는 대부분의  경우 데이터 프레임 함수를 이용하여 구성합니다. 그렇다면 데이터 프레임이란 무엇일까요?  데이터 프레임은 행과 열 형태로 데이터 요소들이 집합을 이룬 것입니다. 데이터 프레임에서는 각각의 열은  다른 타입의 데이터를 가질 수 있습니다. 이러한 데이터 프레임은 data.frame()함수로 만들게 되는데  이 함수를 통해 하나의 워크시트에 열이 각종 변수의 측정값이 되도록 데이터를 정리합니다.  데이터 프레임 함수로 만들어진 데이터 세트는 컴퓨터상의 데이터 처리에서 그 자체로 한 개의 단위로  취급하는 데이터의 집합으로 각종 연산 등을 처리할 수 있습니다. 각 개념에 대해 숙지하시기 바랍니다.






예시를 보면 deit1이라는 데이터 셋은 data.frame( ) 함수에 의해 Before와 After라는 변수가 합쳐져서   만들어집니다. data.frame( ) 함수 괄호 안에 Before=diet.pre라고 쓰는 것은 Before라는 새로운 내부  변수(열 제목 개념)에 diet.pre 벡터를 입력한다는 의미입니다. 동일하게 After는 diet.post 벡터 값을  입력한다는 의미입니다.



         



dataset.diet1과 개체를 데이터 프레임이라고 하는데 내부의 Before 개체의 값을 확인하기 위해서  dataset.diet1$Before와 같이 데이터 프레임 이름과 개체이름 사이에 문자 $를 사용합니다. 

dataset.diet2는 data.frame(diet.pre, diet.post)처럼 괄호 안에 벡터나 요인의 이름만 열거했다면  그 이름(diet.pre, diet.post)이 그대로 열 제목으로 사용되므로 dataset.diet2$diet.pre와 같은 표현을  사용할 수 있습니다. 물론 dataset.diet2[1] 표현도 사용 가능합니다.




데이터파일의 통계분석


사용자가 생성한 데이터파일을 R 시스템의 데이터세트(data set)로 읽어들인 후 통계분석을 수행하는 것이  가장 일반적인 방식입니다. 이때 사용 가능한 명령어, 즉 함수로는 read.table( )가 가장 편리합니다.  read.table( ) 함수는 구분자로 공백문자(탭 포함)를, 소수점으로 도트문자(.)가 사용된 파일을 머리글, 

즉, 변수 이름 없이 읽어 들이는 것이 기본 인자 값(default arguments)이므로 header가 있는 경우  괄호 안에 데이터파일 경로와 함께 반드시 header=TRUE를 입력해주어야 합니다.




read 함수의 종류


다음으로 read 함수의 종류에 대해 살펴보겠습니다. read.table과 유사한 함수가 있지만 활용도는  떨어집니다. 그 이유는 데이터파일에서 사용된 구분자와 소수점 문자가 어떤 것이냐에 따라 선택해서  사용하면 되는데 read.table() 함수 인자로 구분자와 소수점 문자를 설정할 수 있어 read.table()만으로도   텍스트 형식의 데이터 파일 읽기는 충분하기 때문입니다. 어떤 유사함수가 있는지 알아볼까요? 


첫 번째 함수는 구분자로 공백문자, 소수점으로 도트 문자를 사용한 파일을 읽고, 두 번째 함수는 구분자로  tab문자, 소수점으로 도트 문자를 사용한 파일을 읽습니다. 세 번째 함수는 구분자로 tab문자,  소수점으로 콤마 문자를 사용한 파일을 읽고, 네 번째 함수는 구분자로 콤마문자, 소수점으로 도트 문자를  사용한 파일 읽습니다. 마지막 함수는 구분자로 세미콜론, 소수점으로 콤마 문자를 사용한 파일을 읽습니다.





[WEKA를 활용한 분류분석]



1. 개요


웨카(WEKA)를 활용한 분류분석에서는 J48알고리즘을 활용합니다. 이는 C4.8 알고리즘인데  웨카(WEKA)에서 이름만 달리하고 있다는 것을 기억하시고 학습을 시작해보세요.  웨카(WEKA)를 활용한 분류분석을 위해 iris.arff파일인 IRIS데이터를 분류분석해 보도록 하겠습니다. 

 


IRIS데이터란 세 가지 종류의 붓꽃을 분류한 데이터입니다. 그리고 arff 파일이란 웨카(WEKA) 입력  형식을 따르는 데이터 파일임을 나타냅니다. 붓꽃들은 Iris setosa, Iris virginica, Iris versicolor  입니다. 


웨카(WEKA)는 한글 지원을 해주지 않기 때문에 프로그램 분석에 익숙해지기 위해서는 영어단어  그 자체를 받아들일 수 있도록 합시다. 이 데이터는 붓꽃에 따라 꽃받침인 sepal의 길이와 너비,  그리고 꽃잎인 petal의 길이와 너비 값을 기록한 데이터로 이 데이터를 분석하면 어떤 붓꽃이 꽃받침  (sepal)과 꽃잎(petal)의 길이와 너비 관점에서 어떤 차이를 가지는지에 대한 유용한 지식을 얻을 수  있습니다.



2. 수행



웨카(WEKA)에서 Exploer를 실행시켜보세요.  자, Explorer를 클릭하면 다음과 같은 화면이 생성됩니다. Preprocess 부분에서 첫 번째 메뉴인  Open file을 클릭해주세요. 



          


 iris.arff 파일을 선택하고 열기를 클릭합니다.  그 다음 Classify를 클릭하고 왼쪽 상단의 Choose 버튼을 클릭합니다.   trees 항목에 속해있는 J48 알고리즘을 선택합니다. 





자, 우리는 대표적인 데이터 마이닝의 분류분석  방법인 C4.8 의사결정 트리 알고리즘을 사용하여 분석해 볼 건데요. 웨카(WEKA)에서는 C4.8 알고리즘을  J48 이라는 이름으로 제공하고 있습니다. 헷갈리지 않으시겠죠?  왼쪽 중간 부분의 Start 버튼을 클릭하면, J48 분석 수행을 시작합니다. 분석이 종료되면 오른쪽에   결과가 텍스트 형식으로 출력됩니다. 



iris.arff 데이터에 대한 설명과 tree 결과 모델과 데이터를  구분하여 검증한 결과들을 보여주고 있습니다. 결과를 자세히 살펴볼까요?


 tree 부분을 보면 iris 종류에 영향을 주는 속성은 꽃잎의 너비와 꽃잎의 길이 즉 petalwidth와  petallength로 분석되었습니다. 텍스트로 된 이 결과가 한 눈에 해석이 되시나요? 






텍스트로 된 Tree 결과는 분석하려면 시간이 오래 걸립니다. 이를 시각적으로 표시하면 의미를 쉽게  이해할 수 있습니다. J48 알고리즘은 텍스트뿐 아니라 시각적인 기능도 제공하고 있는데요.  확인해볼까요?

왼쪽 하단의 Result list에서 방금 수행된 tree.J48 항목을 찾아 마우스 오른쪽 버튼을 누르면 이 창이  제시됩니다. 여기에서 Visualize tree를 클릭하세요. 






그럼 이와 같이 결과가 시각화된 의사결정나무를 확인 할 수 있습니다. 의사결정나무를 통해 중요한  속성을 한 눈에 확인할 수 있는데요. 꽃잎의 너비와 꽃잎의 길이인 petalwidth와 petallength가 중요한  속성임을 알 수 있습니다. 








[WEKA를 활용한 군집분석]


1. 개요


웨카(WEKA)를 처음 사용하는 경우 군집을  수행하는 절차 그리고 결과를 해석하기가 좀 어렵게 느껴집니다. 분류분석의 경우는 Tree 형태로 결과가  나와서 모델을 해석하기가 쉬운데 군집은 수행한 결과가 뭘 의미하는지 좀 해석하기가 좀 애매합니다.  하지만 수행하고 해석하는 방법을 차근차근 학습한다면 어려울 것이 없습니다!


 웨카(WEKA)를 활용한 분류분석을 위해 iris.arff파일인 IRIS데이터를 군집분석해 보도록 하겠습니다.  군집분석에서는 IRIS 데이터에서 IRIS 종류를 의미하는 class 속성을 제거합니다. 4가지 속성을 기준으로  150개의 데이터를 클러스터링 하는 군집분석을 수행하기 위해서 인데요. 즉, 꽃받침인 sepal의 길이와  너비, 그리고 꽃잎인 petal의 길이와 너비 값을 기준으로 150개의 데이터를 클러스터링 하는 군집분석을  수행해보도록 하겠습니다. 




2. 수행


이제 군집분석을 수행하기 위해 Cluster를 클릭합니다. 그리고 왼쪽 상단의 Choose 버튼을 클릭합니다.




여러 가지 군집분석 알고리즘들이 있는데요. 기본적으로 EM 알고리즘이 설정되어 있고 다른 알고리즘을  선택할 수 있습니다. 우리는 SimpleKMeans 알고리즘을 선택하는데 이 SimpleKMeans 알고리즘은 K-평균  (K- MEANS) 군집분석을 수행합니다. 





K-평균 알고리즘(K-means algorithm)은 주어진 데이터를 K개의 클러스터로 묶는 알고리즘으로  각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작합니다. K-평균 알고리즘은 주어진 데이터에서  K개의 데이터 오브젝트를 임의로 추출합니다. 그리고 그 데이터 오브젝트들을 각 클러스터의 중심으로  설정합니다.


그 후 각 클러스터의 중심과 그룹 내의 데이터의 거리 제곱합을 비용 함수로 정하고, 이 함수값을 최소화하는 방향으로 각 데이터의 소속 그룹을 업데이트 합니다. K-평균 알고리즘은 이 과정으로  클러스터링을 수행하게 됩니다.


이번에는 K-평균 알고리즘(K-means algorithm)의 역사에 대하여 살펴보고 가겠습니다. K-평균에 대한  개념은 1957년 위고 스타인하우스(Hugo Steinhaus)에 의해 소개되었으나, 용어 자체는 1967년 제임스  맥퀸(James MacQueen)에 의해 처음 사용되었습니다. 현재 사용되고 있는 표준 알고리즘은 1957년  스튜어트 릴로이드(Stuart Lloyd)가 처음으로 고안하였습니다. 이것이 공개되기 전 1965년 포기  (E. W. Forgy) 또한 같은 알고리즘을 제안하였습니다. 스튜어트 릴로이드가 고안한 이 표준 알고리즘은  1982년이 되어서야 컴퓨터 과학 매거진에 처음 공개되었습니다. 차후 1975년과 1979년에 하티간  (Hartigan)과 웡(Wong)에 의해 거리 계산이 필요하지 않은 좀 더 효율적인 방법이 소개되면서 K-평균  알고리즘은 발전하게 되었습니다. 



 SimpleKMeans를 클릭합니다. 그리고 화면의 빈 공간을 클릭합니다. 




그러면 옵션을 변경할 수 있는 창이 표시됩니다. 여기서, K-평균(Kmean) 알고리즘을 수행할 경우,  생성되는 클러스터의 수를 변경할 수 있습니다. 기본적으로는 2로 설정되어 있는데 옵션 변경 창에서  클러스터의 수를 3으로 변경해줍니다. 기본 값은 그 수로 클러스터를 자동으로 찾겠다는 것을  의미하는데요. 자동으로 지정된 군집의 개수는 일반적으로 적합하지 않은 경우가 많습니다.  따라서 분석하는 사람이 데이터를 잘 이해하고 적절히 지정해주도록 합니다.




Cluster Mode에서 [Use training set]을 선택합니다. 이는 원래의 입력 데이터를 기준으로 클러스터링  하겠다는 의미인데요. 즉 원래의 입력 데이터로 모델을 생성한 후 이 데이터를 그대로 사용하여  테스트하겠다는 것입니다. 이 모드가 가장 간단한 형태입니다. 




일반적으로는 바로 Start 버튼을 누르면 분석이 수행되지만 IRIS 데이터 셋 안에 있는 나머지 4개 변수를  기준으로 클러스터링 하기 위해서 수행 전에 class를 제거해야 하는데요. Ignore attributes를 눌러서  class 속성을 선택하여 분석에서 제거합니다. 그 후 하단의 Start를 눌러줍니다. 





분석이 수행되고 오른쪽 창에 분석 결과가 표시됩니다. 결과를 자세히 살펴볼까요?





클러스터링 결과를 해석해보면, 오른쪽 창의 맨 하단에서 군집이 3개 생성되었다는 것을 볼 수 있습니다.  번호가 1번부터가 아니라 0번부터 붙혀집니다. 군집0, 군집1, 군집2의 이름이 부여되고 우선은 각 군집에  포함된 데이터의 개수를 파악할 수 있습니다. 그리고 비율도 파악할 수 있는데요. 전체 데이터가  150개이니 비율은 각 군집 데이터 개수 나누기 150 곱하기 100으로 구할 수 있습니다. 군집0 데이터 개수는   61개이며 비율은 61 나누기 150 곱하기 100으로 40.666…의 값을 반올림하여 41%입니다.  군집 1 데이터 개수는 50개로 비율은 50 나누기 150 곱하기 100으로 33.333..을 반올림하여 33%입니다.  군집2 데이터 개수는 39개로 비율은 39 나누기 150 곱하기 100하여 26%로 계산됩니다. 


군집의 특성은 결과 텍스트의 상단부분을 보면 확인할 수 있습니다. 군집0(Cluster 0)은 4가지 속성 중에,  꽃받침(sepal)의 길이와 너비가 중간 크기인 그룹인데요. 이 결과는 어떻게 해석한 걸까요? 먼저 꽃받침의  길이인 sepallength에 대하여 군집 3개를 비교하여 보시죠. 군집0이 5.8885, 군집1이 5.006, 군집2가  6.8462로 군집 0이 중간크기입니다. 그리고 꽃받침의 너비인 sepalwidth에 대하여 군집 3개를 비교하면  군집0이 2.7377, 군집1이 3.418, 군집2가 3.0821로 군집 0이 중간크기입니다. 이해가 되시나요? 군집1 (Cluster 1)은 꽃잎(petal)의 길이와 너비가 가장 작은 그룹인데요. Petallength에 대하여 군집 3개를  비교해보겠습니다. 

군집0이 4.3967, 군집1이 1.464, 군집2가 5.7026으로 군집 1이 가장 작다는 것을  확인할 수 있습니다. 그리고 petalwidth를 비교하면 군집0이 1.418, 군집1이 0.244, 군집2가 2.0795로  여기에서도 군집 1이 가장 작습니다. 이렇게 해석하면 군집2 (Cluster 2)는 꽃받침(sepal)의 길이와 너비,  꽃잎(petal)의 길이와 너비 모든 속성에서 군집 3개 중 가장 큰 그룹임을 알 수 있습니다.





[WEKA를 활용한 연관분석]



1. 개요


웨카(WEKA)를 활용한 연관분석에서 우리는   기본으로 설정되어 있는 Apriori 알고리즘 을 활용할 것입니다.  웨카(WEKA)를 활용한 연관분석을 위해 고객이 백화점의 여러 매장에서 구매한 제품을 기록한 데이터인  supermarket.arff를 연관분석 해 보도록 하겠습니다. 이 데이터는 고객이 여러 매장에서 구매한 제품을  기록한 것으로 매장을 나타내는 변수들과 고객이 구매한 제품을 나타내는 변수들, 그리고 총구매액의  크기를 나타내는 변수로 구성되어 있습니다. 매장에서 특정제품을 구매했을 경우, ‘t’ 값을 가지고, 구매하지 않았을 경우 빈 값으로 표현합니다.




2. 수행


웨카(WEKA)에서 Exploer를 실행시켜보세요. Preprocess 부분에서 첫 번째 메뉴인  Open file을 클릭하고 supermarket.arff 파일을 선택하고 열기를 클릭합니다. 

이제 연관분석을 수행하기 위해 Associate를 클릭합니다.  여러 가지 알고리즘들이 있는데 기본적으로 Apriori 알고리즘이 설정되어 있고 다른 알고리즘을 선택할 수  있습니다. 우리는 대표적인 데이터 마이닝의 연관분석 방법인 Apriori 알고리즘을 사용할 것입니다.  왼쪽의 Start을 클릭하면, Apriori 분석 수행을 시작합니다.





분석이 종료되면 오른쪽에 결과가 텍스트 형식으로 출력됩니다. 수행결과를 자세히 살펴볼까요?   앞서 우리는 매장에서 특정제품을 구매했을 경우, ‘t’ 값을 가지고, 구매하지 않았을 경우 빈 값으로  표현한다는 것을 학습하였습니다.  1번째 발견된 연관규칙을 해석해보면, 고객이 biscuits, frozen foods,  fruit을 사고 total 구매액이 high이면 bread and cake을 구매한다는 경향이 있다는 것이고,  이 규칙의 신뢰도가 92%임을 알 수 있습니다.






[WEKA]



1. 개념


웨카(WEKA) 란 자바(Java) 언어로 개발된 오픈 소스 데이터 마이닝 프로그램입니다. 

이는 뉴질랜드의 와이카토 대학의 '이안 위튼' 교수팀에 의해 개발 되어지고 있는 프로그램으로  지식분석용 와이카토 환경이라는 뜻의 “Waikato Environment for Knowledge Analysis"의  앞 글자를 따서 이름 지어졌습니다. 이것은 프로그램 전체에 자바(Java) 언어로 된 소스  코드를 제공하는데 여기서 자바는 완성도가 높고 웹과의 연동성이 좋으며 보안이 뛰어난  장점을 가집니다. 


웨카(WEKA)는 다양한 분석 알고리즘들을 제공하여 유용하게 사용될 수  있습니다. 구체적으로 데이터 전처리, 분류, 클러스터링, 연관 규칙, 시각화 등  데이터 마이닝 분석 알고리즘을 포함하고 있습니다.


자바(Java)는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이며, 오라클에서 무료로 제공하고 있습니다. 처음에는 가전제품 내에 탑재해 동작하는 프로그램을 위해 개발했지만 현재 웹 애플리케이션 개발에 가장 많이 사용하는 언어 가운데 하나이고, 모바일 기기용 소프트웨어 개발에도 널리 사용하고 있습니다. 이러한 자바는 문법적인 특성이 C 언어와 비슷합니다. 


 자바를 다른 컴파일언어와 구분 짓는 가장 큰 특징은 컴파일 된 코드가 플랫폼이 독립적이라는 점입니다. 자바 컴파일러는 자바 언어로 작성된 프로그램을 바이트 코드라는 특수한 바이너리 형태로 변환합니다. 이러한 바이트 코드를 실행하기 위해서는 JVM(자바 가상 머신, Java Virtual Machine)이라는 특수한 가상 머신이 필요한데, 이 가상 머신은 자바 바이트 코드를 어느 플랫폼에서나 동일한 형태로 실행시킵니다. 때문에 자바로 개발된 프로그램은 CPU나 운영 체제의 종류에 관계없이 JVM을 설치할 수 있는 시스템에서는 어디서나 실행할 수 있으며, 이 점이 웹 애플리케이션의 특성과 맞아 떨어져 폭발적인 인기를 끌게 되었습니다.




설치

 (Link :  http://www.cs.waikato.ac.nz/~ml/weka/downloading.html)








2. 활용모듈



웨카(WEKA) 프로그램은 설치하기 전에 전제조건이 있습니다. 바로 자바(Java)가  먼저 설치되어 있어야 한다는 것입니다. 플랫폼에 따라 설치해야 하는 자바(Java) 버전이 다를  수 있으니 자신의 컴퓨터에 맞는 자바(Java)를 설치하면 됩니다. 설치된 화면을  다시 보면 Explorer, Experimenter, KnowledgeFlow, Simple CLI 가 있습니다. 


웨카(WEKA) 프로그램은 이 4개의 애플리케이션을 제공합니다. 그러면 이러한 애플리케이션들에  대하여  알아볼까요?  웨카(WEKA)는 한글 지원을 해주지 않기 때문에 프로그램에 익숙해지기 위해서는 영어단어   그 자체를 받아들일 수 있도록 합니다. 먼저 Explorer는 특정 데이터 집합에 대해 다양한  알고리즘을 활용하여 데이터를 분석하는 환경을 제공하고, Experimenter는 다양한 알고리즘을  서로 비교해 볼 수 있는 환경을 제공합니다. 그리고 KnowledgeFlow는 기능적으로 Explorer와  동일하지만 드래그 앤 드롭 방식으로 사용할 수 있는 환경을 제공하며 Simple CLI는  명령행인 Command Line 인터페이스를 구동시키는 메뉴로 자바(Java) 클래스 모듈을 바로  구동시켜볼 수 있으며 다양한 명령어를 조합할 수 있습니다. 


명령행(Command Line)이란 직접 자바 프로그램의 명령어를 입력하여 실행시킬 수 있는 것을 의미합니다. 그리고 자바(Java)는 클래스 기반의 언어로서, 명령행 인터페이스에서 명령을  입력하여 직접 클래스 모듈을 실행시킬 수 있습니다. 


이번에는  ARFF 에 대해서 알아보겠습니다. ARFF는 웨카(WEKA)에서 사용하는 포맷입니다.  이는  헤더 부분 과  본문 부분 으로 크게 나눌 수 있는데요 헤더는 데이터에 관련한 기본 정보를  정의하는 부분으로 데이터파일의 이름과 속성 이름을 정의하고 속성의 타입까지 정의할 수  있습니다. 본문은 실제 데이터가 입력되는 부분으로 속성 명에서 정의된 속성의 실제 데이터  값을 행 단위로 입력하는 것입니다.


웨카(WEKA) 설치 시 데이터 디렉토리에 설치되어 있는 IRIS.ARFF데이터 셋을 살펴보겠습니다.  IRIS.ARFF 데이터 셋은 우리나라에서 붓꽃으로 해석되는 IRIS데이터에 대한 데이터입니다.  이것은 꽃잎의 각 부분의 너비와 길이 등을 측정한 데이터이며 150개의 레코드로 구성되어  있습니다. 


자, IRIS.ARFF 데이터 셋의 헤더 부분을 좀 더 자세히 살펴 볼까요? 데이터 셋에서  Sepal Length는 꽃받침의 길이에 대한 정보이고 Sepal Width는 꽃받침의 너비에 대한  정보입니다. 그리고 Petal Length는 꽃잎의 길이 정보이며 Petal Width는 꽃잎의 너비에 대한  정보입니다. 마지막으로 Class는 꽃의 종류 정보인데 Setosa / Versicolor / Virginica 의  3종류로 구분되며 이는 곧 같은 세가지 종류의 붓꽃으로 분류된 데이터 결과를 보여주는  것입니다. 


[Relation-name]은 문자열로 데이터 셋의 이름을 명시하는데 이는 ‘iris’로 정의합니다.  속성은 @attribute [attribute-name] [datatype]로 정의하고 이는 속성이름을 나타내는  문자열, 데이터 유형을 의미합니다. 그 중에서 속성 sepallength를 실수형 속성으로 정의하고,  속성 class는 Iris-setosa, Iris-versicolor, Iris-viginica 라는 값을 가지는 속성으로 정의할 수 있습니다.





IRIS.ARFF 데이터 셋의 본문 부분도 좀 더 자세히 살펴 볼까요? 본문 부분은 @DATA로 시작하며  각 라인은 데이터의 행을 나타내는 레코드를 의미합니다. 그 데이터 속성의 값들은 헤더에  정의된 속성 정의 순서를 따르게 됩니다.






[WEKA 기초사용법과 데이터 마이닝 분석 모듈]


1. 주요 컴퍼넌트


웨카를 구성하는 주요 컴포넌트는 weka.core(웨카 코어), weka.filters(웨카 필터),  weka.classifiers(웨카 분류자), weka.clusters(웨카 클러스터), weka.associations 웨카  연관) 등이 있습니다. weka.core는 공통 컴포넌트에 해당하며 weka.filters는 데이터셋 필터링  컴포넌트이고 weka.classifiers는 분류분석 알고리즘 컴포넌트입니다. weka.clusters는  클러스터링 알고리즘 컴포넌트이며 weka.associations은 연관분석 알고리즘 컴포넌트입니다.  그럼 각각에 대하여 자세히 알아볼까요?


웨카 코어(weka.core) 는 다른 패키지에서 사용하는 일반적인 컴포넌트들을 포함하는  패키지입니다. 여기에는 속성, 데이터 셋, 컨버터, 행렬 조작, 텍스트 파싱, 트리 표현,  XML과 같은 모델링 관련 클래스가 있습니다. 


데이터 셋 필더링 컴포넌트인 웨카 필터 (weka.filters) 는 데이터 셋에 적용하기 위한 필터에 관련된 패키지입니다.   이러한 웨카 필터는 연속형 값을 이산형 값으로 변환할 때 사용할 수 있습니다.


분류분석 알고리즘 컴포넌트인 weka.classifiers 는 다수의 의사결정 분석 알고리즘을  제공합니다. 분류 분석 알고리즘에는 서포트 벡터 머신(Support Vector Machines) 알고리즘,  인공신경망 분석 알고리즘, 로지스틱 회귀분석 등을 지원합니다. 간단하게 이들에 대해  언급하자면 서포트 벡터 머신인 SVM은 Vladimir Vapnik이라는 러시아 과학자가 만들어낸  분류 알고리즘으로 많은 영역에서 사용하고 있는 분류 알고리즘입니다. 인공신경망 분석  알고리즘은 뇌기능의 특성 몇 가지를 컴퓨터 시뮬레이션으로 표현하는 것을 목표로 하는 수학 모델입니다. 마지막으로 로지스틱 회귀분석은 종속변수가 2개의 값을 가지는 경우  사용하는 회귀분석입니다.


 클러스터링 알고리즘 컴포넌트 weka.clusters 는 클러스터링 분석을 수행할 수 있는   알고리즘을 제공합니다. 즉, K-평균 클러스터링, EM 알고리즘, 거미집(Cobweb) 알고리즘, 평균값인 X-means 등을 제공합니다. K-평균 알고리즘(K-means algorithm)은 주어진 데이터를   k개의 클러스터로 묶는 알고리즘입니다. EM 알고리즘은 기대값이 최대화 된 알고리즘으로 기존의 가능도를 기반으로 하여 더 좋은 가능도를 찾을 수 있도록 계산을 반복하는 구조의  클러스터를 수행하는 것입니다. 거미집(Cobweb) 알고리즘은 분류 나무 형태의 클러스터를  구성하는 클러스터링 방법이고 평균값을 나타내는 X-means 알고리즘은 K-평균 알고리즘의 문제점을 개선한 클러스터링 알고리즘입니다. 


연관분석 알고리즘 컴포넌트인 weka.associations 는 장바구니 분석과 같은 연관분석을  수행하는데 필요한 선험적 알고리즘을 제공합니다. 선험적 알고리즘이란 가장 흔히 사용하는  연관 분석 알고리즘으로, 이는 속성들이 수치형이 아니라 범주형의 값을 가질 때 분석할 수 있습니다. 범주형 속성은 명목(Nominal) 속성으로 범주형으로 구분되는 값을 가지는 경우에  해당하고, 수치형 속성은 보통(Numeric) 속성으로 실수 및 정수와 같은 수치 값을 가지는  경우에 해당합니다.




[데이터마이닝 분석유형과 분석 알고리즘]


데이터 마이닝의 분석 유형은 데이터 마이닝을 통해 어떤 종류의 정보를 찾고자 하는가에 따라 
구분될 수 있습니다. 이를 바탕으로 데이터 마이닝은 분류분석, 군집분석, 연관분석 등으로 구분 할 수 있습니다.



1.분류분석


분류분석은 데이터 마이닝 분석의 가장 기본적인 분석 형태입니다. 이것은 분류 결과가 알려진 과거 데이터로부터 분류별 특성을 찾아내어 분류 모형 및 분류 규칙들을 알아냅니다. 그리고 이를 바탕으로  그 규칙들을 분류 결과가 알려지지 않은 새로운 데이터에 적용하여 분류 값을 예측하는 것입니다.


분류분석의 단계를 알아보겠습니다. 분류분석은 2단계를 거치는데요. 

첫 번째 단계에서는 (1) 분류 모델을 구축합니다. 이는 과거 데이터를 기준으로 Output 속성의 Class라고도 하는 범주와 input 속성들과의 관계를 설명하는 모델을 구축하는 것입니다. 고객에게 제품 홍보 우편을 보냈을 때 반응이 있을지를 분류하는 것을 예를 들어 설명하겠습니다. 고객에게 제품 홍보 우편을 보냈을 때 반응이 있을지 여부를 판단하기 위해서 고객의 직업, 성별, 거주지, 나이를 기준으로 분류합니다. 우편을 보냈을 때 응답 반응으로는 예 또는 아니오로 나뉘게 되는데 이때는 범주의 수가 2이고 Input 속성의 수인 4는 분류분석 문제가 됩니다. 
           

구체적으로 다시 살펴보면 범주가 알려진 고객들에 대하여 4개의 Input 속성 데이터를 수집한 후 이들 사이에 존재하는 패턴을 Input 속성의 조합으로 나타내는 분류 모델을 구축하는 것입니다. 여기서 분류 모델은 분류 규칙, 의사결정나무 또는 수학식들로 표현됩니다.



두 번째 단계에서는 (2)1단계에서 구축한 분류 모델을 이용하여 분류작업을 진행합니다. 이 단계에서는 모델의 예측정확도를 추정하고, 모델의 정확도가 확인되면 이를 통해 새로운 데이터들에 대해 적용하여  분류작업을 수행하게 됩니다. 이를 구체적으로 알아보기 위해 고객에게 제품 홍보 우편을 보냈을 때 반응이 있을지를 분류하는 것을 예를 들어 설명하겠습니다. 앞선 1단계가 구축된 고객 반응 여부를 분류하는 모델이라면, 2단계는 특정 고객의 반응 여부를 4개 속성 값을 근거로 예측하는 것입니다.

제시된 화면의 내용은 의사결정나무로 고객에게 제품 홍보 우편을 보냈을 때의 반응을 구축한 것입니다. 분류된 옆 괄호 안에숫자가 적혀 있지요? 이 괄호 안에는 전체 레코드의 수, ‘아니오’라 응답한 레코드의 수, ‘예’라 응답한 레코드의 수가 순서대로 적혀있습니다.여기서 레코드란 데이터베이스의 테이블에서 행을 의미합니다. 여기서 1단계 분류 모델 구분 기준으로 제시된 성별이 포함되지 않은 것은 성별은 중요하지 않은 변수라고 판단되었기에 의사결정나무에 나타내지 않았음을 참고 하시기 바랍니다.





의사결정나무 분석 알고리즘

이번에는 의사결정나무 분석 알고리즘에 대해서 살펴보겠습니다. 의사결정나무 분석 알고리즘은 대표적인 분류분석 기법으로 여러 단계의 복잡한 조건을 갖는 문제와 그 조건 및 그에 따른 해결방법을 나무 형태로 나타낸 것입니다. 의사결정나무 단계는 총 4단계를 거치는데 첫째, 의사결정나무 생성 둘째, 가지치기 셋째, 타당성 평가 넷째, 해석 및 예측의 단계를 거쳐 수행됩니다. 각 단계에 대해서 알아 보도록 하겠습니다. 



첫째, 의사결정나무 생성 단계에서는 분석의 목적과 자료구조에 따라 적절한 분리기준과 정지규칙을 지정하여 의사결정나무를 얻습니다. 여기서 분리기준이란 의사결정 나무를 생성할 때 가지를 나누는 기준을 의미합니다. 정지규칙이란 의사결정 나무를 생성할 때 더 이상 가지를 만들지 않고 정지하는 규칙을 의미합니다. 둘째, 가치치기 단계에서는 분류오류를 크게 할 위험이 높은 가지를 제거하게 됩니다. 여기서 분류오류란 의사결정나무를 만들면 이를 이용하여 분류하게 되는데 이때 발생되는 오류를 의미하는 것입니다. 



셋째, 타당성 평가 단계에서는 이익표나 위험도표 등을 이용하여 의사결정나무를 평가합니다. 
이때, 이익도표란 생성된 의사결정나무를 이용하여 분류를 할 경우 얻게 되는 성능에 따른 이익을 표시한 것을 의미하고 위험도표란 생성된 의사결정나무를 이용하여 분류를 할 경우 얻게 되는 성능에 따른 위험을 표시한 것을 의미합니다. 마지막 넷째, 해석 및 예측 단계에서는 의사결정나무를 해석하고 예측 모형을 설정하게 됩니다. 이러한 수행단계에서 분리기준, 정지규칙, 평가 기준 등을 어떻게 적용하느냐에 따라 서로 다른 의사결정 트리를 생성하게 됩니다. 

 


2.군집분석

 

분석 유형 중 군집분석에 대해서 알아보겠습니다. 군집분석이란 수많은 데이터들을 유사한 특성을 지닌 몇 개의 소그룹으로 분할하는 것을 의미합니다. 이는 유사성이 많은 것을 그룹으로 묶음으로써 그룹 내에서는 동질성을 극대화하고  서로 다른 그룹 상호 간에는 이질성을 극대화시킵니다. 그래서 군집분석은 특정한 가설을 세우지 않고도 수많은 데이터내에 숨겨진 패턴들을 찾을 수 있다는 특징이 있습니다.




군집분석 활용 분야 대해서 알아보겠습니다. 군집분석은 고객 세분화, 상품배합 세분화 같은 세분화 작업 등에 많이 사용되는데 구체적으로 하나씩 살펴보도록 하겠습니다.


첫째, 고객 세분화란 고객의 특성에 따라 고객을 나누어 그룹핑 하는 것을 말합니다.

둘째, 상품 세분화란 상품의 특성 즉 용도, 크기, Brand, 맛 등에 따른 상품을 그룹핑하는 것입니다. 

 

앞선 두 세분화 이외에도 패턴인식생물연구, 공간데이터 분석, 웹 문서 클러스터링 등 많은 분야에 응용되고 있는데 먼저, 패턴인식이란 계산이 가능한 기계적인 장치(컴퓨터)가 어떠한 대상을 인식하는 문제를 다루는 인공지능의 한 분야를 의미하는 것인데 군집분석이 여기에 사용됩니다. 다음으로 생물연구는 말 그대로 생물의 특징을 연구하는 분야이며 공간데이터 분석은 공간 데이터를 이용하여 공간을 분석하는 분야입니다. 마지막으로 웹 문서 클러스터링이라는 활용 분야에도 군집분석이 사용되는데 이는 웹 문서의 특징을 분석하여 유사성에 기반하여 웹문서를 그룹핑하는 것을 의미합니다.

          

이어서 군집분석의 대표적인 알고리즘에 대해 알아보도록 하겠습니다. 군집분석의 대표적인 알고리즘에는 분할기법, 계층기법, 밀도기반기법, 격자기반기법, 모델기반기법 등이 있습니다. 
           



분할기법이란 K개의 초기분할을 만들어 각각의 객체를 하나의 그룹에서 다른 그룹으로 재배치하고 이러한 작업을 반복함으로써 분할을 개선하는 기법을 의미합니다. 계층적 기법은 주어진 데이터 집합을 계층적으로 분해하는 상향식(Bottom-up) 접근을 사용합니다. 이를 통해 모든 그룹이 하나로 합쳐질, 즉 계층의 가장 높은 단계이거나 종료의 조건이 될 때까지 서로의 근처에 데이터 또는 데이터 그룹을 연속적으로 합치는 것울 의미합니다. 또는 하향식 (Top-down) 접근을 사용하여 각각의 데이터가 하나의 군집이 되거나 종료의 조건이 될 때까지 더 작은 군집으로 분할시키는 것입니다. 밀도기반기법은 밀도라는 개념에서 출발하여 군집을 이웃 객체의 밀도에 혹은 특정한 밀도함수에 기반해 군집을 키워 나가는 군집 기법입니다. 격자기반기법은 데이터가 존재하는 공간을 격자구조로 이루어진 유한개의 공간으로 만든 후 군집화 과정이 격자구조에서 실행되는 기법입니다. 마지막으로  모델기반기법은 각 군집에서 모델을 가정하고 이렇게 주어진 모델에서 가장 잘 맞는 데이터를 찾는 기법을 의미하는 것입니다.

 

 



K-평균 알고리즘

 

K-평균 알고리즘은 분할기법의 대표 알고리즘으로 N개의 데이터 집합을 K개의 군집으로 분해하게 되는데 이는 분석자가 K값을 결정하여 입력하면 군집 내 유사성은 높고 군집들 사이의 유사성은 낮도록 군집을 만들기 위함입니다. 여기서 군집간 유사성은 군집들의  평균값을 기준으로 산정합니다. 왜냐하면 군집의 평균 값은 군집의 무게중심으로 볼 수 있기 때문입니다.



그럼 K-평균 알고리즘 과정을 알아볼까요? 우선, 군집 평균이나 중심을 나타내는 값으로 데이터들에서 K개를 임의로 뽑습니다. 그러면 남겨진 데이터들은 데이터와 군집평균에 기초하여 가장 유사한 군집에 할당되고 이렇게 할당된 각 군집들은 새로운 평균을 구하는 과정을 거칩니다. 이 때, 각 데이터의 소속 군집이 바뀌지 않을 때까지 두번째와 세번째 과정을 반복합니다.

 



 

3.연관분석

 

연관분석은 데이터 안에 존재하는 항목 간의 종속 관계를 찾아내는 작업을 의미합니다. 구체적으로 예를 들면 살펴보면 상품을 팔 때, 어떤 상품들이 함께 잘 팔리는지, A 제품을 구입한 고객에게 어떤 제품을 함께 팔 수 있을지, 카드 사기 유형 간에는 어떤 관계가 있는지 등을 분석할 수 있습니다. 이와 같은 연관분석을 통해 ‘항목 A 그리고 항목 B는 항목 C’ 라는 형태를 가지는 연관규칙을 생성할 수 있습니다. 연관 규칙에 대해 상품 구매 과정 요소를 바탕으로 알아 보도록 하겠습니다. 상점에서 판매되는 상품 전체를 하나의 세계라고 가정한 후 이를 구성하는 각 상품에 대해서 존재유무를 표현한다면, 각각의 고객 장바구니는 이들 변수들에 할당된 값으로 구성된 벡터로 표현할 수 있습니다.

그리고 이러한 벡터는 자주 함께 구매되는 상품에 관한 구매패턴의 분석에 이용될 수 있습니다.
자주 함께 구매되는 상품에 관한 구매패턴은 연관규칙의 형태로 표현됩니다. 예를 들면 편의점에서의 고객 거래 데이터인 Point Of Sales를 줄인 POS데이터를 분석하면 화면에 제시된 그림에서와 같이 넥타이를 구매한 사람이 셔츠를 함께 구매한다는 연관 규칙을 찾아낼 수 있습니다. 이러한 분석을 이러한 분석을 장바구니 분석이라고 하는데 이를 이용하면 구매 행태와 관련하여 예컨대 고객이 넥타이를 살 때 셔츠를 함께 구매할 가능성이 얼마나 되는지를 확인할 수 있다는 특징이 있습니다.

 

 

연관분석은 빈발패턴을 찾습니다. 빈발 패턴이란 하나의 데이터 집합에 자주 나타나는 패턴을 찾는 것으로 빈발항목 집합(Item sets), 빈발 부분순차(Subsequences), 빈발 부분구조(Substructures)의 패턴을 찾는 것입니다. 좀 더 자세히 학습하기 전에 최소지지도와 최소신뢰도가 무엇인지 알아보도록 하겠습니다. 최소지지도란 최소로 만족해야 하는 지지도 값을 의미하는데,  여기서 지지도란 전체 자료 중에서 빈발패턴의 자료가 차지하는 비율을 의미합니다.  다음으로 최소신뢰도란 최소로 만족해야 하는 신뢰도 값을 의미하는데, 이때, 신뢰도는 빈발패턴의 자료가 정확할 확률을 의미합니다. 연관규칙의 빈발패턴 과정을 다시 살펴보도록 하겠습니다. 연관분석은 사전에 지정된 최소 지지도 개수 이상이 빈번하게 발생된 빈발항목 집합 전체를 찾은 후, 빈발항목 집합에서 최소지지도와 최소신뢰도를 모두 만족하는 강한 연관성을 가지는 것을 도출하여 규칙으로 표현하게 되는 과정을 거칩니다.

 

 

선험적 알고리즘

 

빈발 패턴에서 선험적 알고리즘은 빈발 항목 집합을 마이닝하여 연관규칙을 생성할 때 사용하는 알고리즘을 의미합니다. 앞서 언급한 내용들을 바탕으로 연관규칙에 대해 다시 한번 정리하여 알아보도록 하겠습니다. 연관규칙은 규칙의 지지도와 신뢰도 값을 가지는데, 이것은 해당 규칙의 유용성과 확실성을 반영합니다. > 예를들어 넥타이를 구매한 사람이 셔츠를 함께 구매한다는 연관규칙이 지지도 2%와 신뢰도 60%의 값을 가진다고 하면,  분석 대상이 된 모든 거래의 2%가 넥타이와 셔츠를 함께 구매했음을 나타내고, 넥타이를 구매한 고객의 60%가 그 셔츠를 구매했다는 것을 나타냅니다. 그래서 연관규칙은 일반적으로 분석가가 설정하는 최소지지도 값과 최소신뢰도 값으로 표시되는 것입니다.

 

 

 

 

 

[데이터마이닝 분석유형별 사례]


1. 분류분석 사례


분류분석 사례로 ‘의사결정나무모형을 이용한 급경사지 재해 예측프로그램 개발 및 적용 사례’를  살펴보면 화강암, 편마암 등 결정질암 지역에서의 급경사지재해 발생지역 및 미발생 지역에 대한  현장조사 및 토질시험자료를 토대로 의사결정나무모형을 이용하여 급경사지재해 예측모델을  개발하였습니다. 이를 위해, 경기북부, 상주 및 속초 지역에 있는 108개소에 대해, 총 15개의  급경사지재해에 영향을 미치는 변수 데이터를 활용하였습니다. 이 데이터에 따르면 목표변수는  산사태 발생여부이고, Input 속성은 풍화정도, 지형고도, 사면 방향, 사면 경사 등등 총 15개의  변수입니다.  분석결과 생성된 의사결정나무모형 예측모델은 그림과 같습니다. 



 상위 분리기준 변수로는 사면경사가  선택되었으며, 하위 분리기준 변수로는 각각 투수계수와 간극비가 선택되었습니다.  각 예측 모델의 하위 숫자 데이터들이 무엇을 의미하는지 살펴 보겠습니다.  맨 왼쪽에 1과 0은 산사태 발생여부를 나타냅니다. 여기서 1은 발생을 나타내며 0은 미발생을 나타냅니다.  그리고 옆에 보이는 93.2%는 해당비율을 나타내는 것이며 그 옆의 41은 해당 데이터 개수를 의미하는  것입니다. 즉, 여기서는 해당 데이터의 개수가 41개 임을 알 수 있습니다.


 

 

 


2. 군집분석 사례


군집분석 사례로 ‘군집분석을 통한 중소기업 온라인 마케팅 지원 수혜기업의 세분화 전략에 관한 연구’를 살펴보겠습니다. 창업기업 홍보마케팅 지원사업의 367개 수혜기업을 대상으로 지원 프로그램에 대한 사업추진 만족도를 구성하고 있는 4개 항목을 변수로 설정하여 군집분석을 실시하였습니다.  여기서 4개 항목 변수란 지원사업의 전반적인 활용도, 전반적인 만족도, 지속적 참여의사, 다른 기업에게 추천할 의향을 나타냅니다. 이러한 군집분석 후에 군집별 유형화 및 지원기업 세분화 전략을 제시하였습니다. 


그리고 군집분석 방법으로는 K-평균 알고리즘을 사용하여, 군집 수를 3으로 결정했습니다. 이때, +값은 긍정, -값은 부정적 의견을 나타냅니다. 






이를 바탕으로  K-평균 알고리즘 분석 결과를 살펴 보면 군집1은 총 93개 기업으로 활용도, 만족도, 지속적 참여의사, 추천의향의  4개 모든 항목에서 다른 두 군집보다 높은 점수를 가집니다. 따라서 이 군집에 포함된 기업들은 창업기업 홍보마케팅 지원사업에 대한 전체적 만족도가 높음을 알 수 있습니다. 군집2는 4개 항목 모두에서 전체적으로 낮았습니다. 특히 활용도와 만족도는 음수를 보이고 있어 이 기업들은 홍보마케팅 사업에 대한 활용도 및 만족도가 매우 낮았고 지속적 참여의사 및 추천의향은 조금 있는 것으로 나타났습니다.

군집3은 군집2보다 4개 항목에서 모두 부정적인 수치를 보였습니다. 이를 통해 이 군집에 속한 기업들은 창업기업 홍보마케팅 지원 사업에 대한 만족도가 전체적으로 매우 낮다고 볼 수 있습니다.


 


3. 연관분석 사례

 

‘데이터마이닝을 활용한 소아 족부 질환 연관성 분석’ 사례를 통해 연관분석 사례에 대해  알아보겠습니다. 족부 클리닉에 저장된 소아 족부 임상데이터를 바탕으로 연관분석 기법인 선험적  알고리즘을 사용하여 족부 질환 관련 규칙을 도출함으로써 의미있는 지식을 발견하고자 한 것이  이 연관성 분석 사례의 의의입니다. 또한 이 연관성 분석 사례의 조건은  J시에 위치한 J족부 클리닉의  환자 중 수집된 125명의 초진 족부 임상 데이터를 활용하여, 데이터베이스를 구축하였고 분석 대상  자료는 1개 이상의 질환을 진단 받은 환자의 모든 진단 정보를 추출한 113명의 표본 데이터를 최종  분석에 이용하였습니다.




그리고 자료 분석을 위해 선험적 알고리즘을 적용하였고, 최소 지지도는 20 %, 최소 신뢰도는 85%로  설정하였습니다. 선험적 알고리즘을 적용한 결과, 경골 내회전과 평발이 가장 많이 동반되는 것으로  나타났고, 남자 소아보다 여자 소아에게서 경골 내회전과 평발의 동반이 조금 더 나타나는 것으로  나타났습니다. 

 

 

 

[데이터마이닝 개념과 프로세스]



1. 데이터마이닝 개념

미국 IT분야 시장조사 및 컨설팅 전문 업체인 가트너는 데이터 마이닝을 통계 및 수학적 기술뿐만 아니라 패턴인식 기술들을 이용하여 데이터 저장소에 저장된 대용량의 데이터를 조사함으로써 의미 있는 새로운 상관관계, 패턴, 추세 등을 발견하는 과정이라고 정의했습니다. 그리고 데이터 마이닝 컨설턴트인 Berry와 Linoff는 2000년에 데이터 마이닝을 의미 있는 패턴과 규칙을 발견하기 위해서 자동화되거나 반자동화된 도구를 이용하여 대량의 데이터를 탐색하고 분석하는 과정으로 정의하였습니다. 


데이터 마이닝은 주로 지식탐사, 기계학습, 패턴인식, 통계학, 신경망 컴퓨팅 등과 관련해 다양한 분야에서 활용될 수 있는데 이것은 빅데이터 분석에 있어서 가장 기본적인 분석 기술입니다. 각 분야에 대해서 간단히 알아보자면, 지식탐사는 Knowledge Discovery in Database의 약어로 KDD라고도 하는데 데이터베이스 안에 내재된 의미 있는 지식을 추출하는 전 과정이 이에 해당됩니다. 기계학습은 Machine Learning으로 인공지능이라고도 하는데 자동적인 학습 기법을 설계하고 연구하는 분야입니다. 패턴인식이란 계산이 가능한 기계적인 장치(컴퓨터)가 어떠한 대상을 인식하는 문제를 다루는 인공지능의 한 분야로 데이터베이스에서 유용한 패턴을 찾아내는 다양한 기법을 제공합니다. 그리고 통계학은 수량적 비교를 기초로 하여, 많은 사실을 통계적으로 관찰하고 처리하는 방법을 연구하는 학문이고 신경망 컴퓨팅은 신경망 등과 관련된 다양한 학문적 배경을 가진 한 분야입니다. 데이터 마이닝은 통계학과 기계학습으로 알려진 두 학문분야의 합류점에서 존재합니다. 데이터를 탐색하고 모델을 구축하는 다양한

기법들은 통계학분야에서 오랫동안 존재해 왔고 오늘날 컴퓨터 과학은 기계학습 기법을 제공합니다. 이러한 기계학습 기법은 강력한 계산능력에 의존하며 전통적인 통계모형보다는 덜 구조화되어 있습니다.






2. 데이터마이닝 프로세스


일반적인 데이터 마이닝 수행 프로세스에 대해서 살펴보겠습니다. 데이터 마이닝 프로세스는 데이터를 추출한 뒤 크게 데이터 선택, 데이터 전처리, 데이터 변환, 데이터 마이닝, 해석과 평가 단계로 진행됩니다. 그럼 각 프로세스에 대해 자세히 알아보도록 하겠습니다. 먼저 데이터 선택 단계에서는 분석에 사용될 데이터를 파악하기 위해 대량의 데이터베이스에서 표본을 추출하는데 이는 상이한 데이터베이스에서 데이터를 합치는 것을 의미하기도 합니다. 여기서 데이터베이스는 내부데이터이거나 외부데이터일 수 있는데 일반적으로 데이터 마이닝은 매우 큰 데이터베이스를 다룹니다. 데이터 전처리 단계에서는 데이터를 탐색, 정제, 그리고 전처리를 합니다. 전처리란 기본 반응이나 가공에 앞서 화학적 ∙ 물리적 작용을 가하여 예비적으로 하는 처리를 의미합니다.

즉, 결측치를 어떻게 처리해야 하는지, 각각의 변수에 대해 데이터 값이 합리적인 범위 내에 있는지, 극단치가]존재하는지에 대해서 검토하는 것을 말합니다. 



앞서 언급한 결측치와 극단치 더 나아가 이상치에 대해서 알아보도록 하겠습니다. 결측치(Missing Value)라는 것은 변수 값을 조사나 측정하지 못했을 경우나 변수 값에 대한 정보를 모르는 경우를 의미합니다. 극단치라는 것은 다른 값에 비해 크게 벗어난 값을 의미하는데 이는 비정상적으로 분포를 벗어난 값으로, 이는 측정오류에 의해 발생하는 경우도 있습니다. 더불어 이상치는 평균, 상관계수 추정치 등의 값을 왜곡시킬 수 있다는 특징이 있습니다.

 

데이터 변환 단계에서는 분석을 위해 데이터를 변환합니다. 불필요한 변수를 제거하고, 변수를 변환하며, 새로운 변수를 생성시키는 등의 작업을 포함합니다. 변수란 모델링에서 사용되는 것으로 독립 변수(Independent Variable), 종속 변수(Dependent Variable) 혹은 기타로 분류할 수 있는데, 독립 변수는 입력 값이나 원인을 나타내며, 종속 변수는 결과물이나 효과를 나타냅니다.  그리고 기타 여러 가지 원인으로 관찰 중인 변수들은 기타 변수라고 합니다.  


데이터 마이닝 단계에서는 데이터 마이닝 프로젝트의 목적에 맞도록 분류, 예측 군집 등과 같은 분석유형을 선택합니다. 그리고 각각의 목적에 맞게 회귀분석, 신경망모형, 군집분석 등 사용할 데이터 마이닝 기법들을 선택합니다. 그럼 분석 유형과 데이터 마이닝 기법들에 대해서 살펴보겠습니다. 먼저,

데이터 마이닝 프로세스의 분석 유형에 대해 살펴 보겠습니다. 우선 분류는 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론하는 것으로 예를 틀어 이탈한 고객을 추론할 수 있습니다. 다음으로 예측은 대용량 데이터 집합 내의 패턴을 기반으로 미래를 예측하는 것으로 고객이 제안에 반응을 보이거나 특정 제품을 구매할 확률 등을 예로 들 수 있습니다. 군집이라는 것은 구체적인 특성을 공유하는 자료들을 그룹핑 하는 것인데, 예를 들어 비슷한 행동을 하는 집단을 구분하는 것 등이 이에 해당합니다. 

다음으로 데이터 마이닝 프로세스에서 데이터 마이닝 기법들에 대해 알아보도록 하겠습니다. 먼저 회귀분석이라는 것은 관찰된 연속형 변수들에 대해 독립변수와 종속변수 사이의 상관관계를 나타내는 선형 관계식을 구하는 기법입니다. 더불어 이렇게 얻은 모형의 적합도를 측정하는 분석 방법입니다. 신경망모형은 시냅스의 결합으로 네트워크를 형성한 인공 뉴런인 노드를 학습을 통해 시냅스의 결합 세기를 변화시켜, 문제 해결 능력을 가지는 모델을 구성하는 인공지능 방법을 의미하는 것이며 군집분석은 주어진 데이터들의 특성을 고려해 클러스터를 구성하는 분석방법입니다.

데이터 마이닝 프로세스 과정중 마지막 해석과 평가 단계에서는 분석 결과가 좋은 성과를 가지는지 평가를 하는데 이는 좋은 분석 결과인 경우 향후 업무에 활용할 수 있기 때문입니다. 좋은 분석 결과라는 것은 추출 되어진 패턴이 실제 현장에서 잘 적용될 수 있을 정도로 신뢰성과 정확성을 가지고 있는 것을 의미하는 것입니다.  또한 도출된 패턴이 좋은 분석결과인지 검증을 하고 실무 적용에 대한 타당성을 반드시 확인해야 합니다. 


데이터마이닝 수행단계

데이터 마이닝  전문업체인 SAS는 데이터 마이닝 수행 단계로서 SEMMA를 제시하였는데요. SEMMA는

샘플링(Sampling)의 S, 탐색인 Exploration의 E, 수정인 Modification의 M, 모델링의 M, 평가인 Assessment의 A, 로 각 과정의 앞머리 글자를 따서 만든 데이터 분석 방법론입니다. 그럼 각 단계에 대해서 알아보겠습니다. 


(1) 샘플링은 분석 데이터 생성 단계로 적절한 양의 표본을 원래 자료로부터 추출하는 단계입니다. 이 단계는 시간과 비용을 절약할 수 있는 효율적인 모형을 구축하기 위해 필수적인 단계입니다. 즉, 분석할 데이터를 통계적 추출 혹은 일정한 조건에 따라 추출하는 과정으로 앞으로 수행 할 모델을 평가하기 위한 사전 준비 과정으로 생각할 수 있습니다. 

(2) 탐색은 분석 데이터를 탐색하는 단계로 여러 가지 자료의 탐색을 통해 기본적인 정보를 획득하는 단계입니다. 이 단계에서는 데이터 오류를 발견하고 모델의 효율을 증대할 수 있습니다. 또한 데이터 현황을 보고 비즈니스를 이해할 수 있고, 아이디어를 위해 이상현상, 변화 등을 탐색할 수 있습니다. 


(3) 수정은 분석 데이터를 수정하고 변환하는 단계로 데이터의 효율적인 사용을 위해 수량화, 표준화, 각종 변환, 그룹화 등 여러 가지 방법을 이용합니다. 이를 통해 데이터가 지닌 정보의 표현을 극대화 하고 최적의 모델을 구축할 수 있도록 다양한 형태로 변수를 생성하거나 선택 및 변형하는 단계입니다 


(4) 모델링은 실제로 어떤 분석모델을 사용할 것인지 모델을 구축하는 과정입니다. 이 단계는 데이터 마이닝의 핵심으로써, 분석 목적에 따라 적절한 기법을 사용하여 예측 모형을 만드는 단계인 것입니다. 이를 통해 데이터의 숨겨진 패턴을 발견하고 현재 제기되고 있는 비즈니스 이슈를 해결할 방법이나 모델을 찾습니다. 
  

(5) 평가는 모델의 평가 및 검증이 이루어지는 단계로 모형화 결과에 대한 신뢰성, 유용성 등을 평가하는 단계입니다. 또한 서로 다른 모델을 동시에 비교하여 어떤 모델이 적합할 것인가를 검증하고, 도출된 모델이 얼마나 의미 있는지를 파악하기도 합니다. 이를 통해 검증된 모델에 대해 가설을 확장하거나 추가 분석 수행 여부에 대한 결정을 하기도 합니다.






[데이터마이닝 기법]



1. 군집분석 (Cluster Analysis)


정의와 방법

데이터 마이닝 기법 중 군집 분석에 대해 알아보겠습니다. 군집분석이란 데이터 안에 존재하는 알지 못하는 특성들이 있을 때, 데이터 점들이 군집을 이루게 하면서 그 특성들이 나타나도로 하게 하는 것입니다. 군집분석은 유사성을 기초로 그룹화하는 방법과 그룹 내 분산 개념을 기초로 그룹화하는 방법이 있습니다. 여기서 유사성이란 데이터간의 동질성을 의미하는 것이고 그룹 내 분산 개념이란 그룹 내에 존재하는 데이터 간의 산포를 의미하며 그룹간의 분리 정도란 그룹간 차이의 정도를 의미하는 것입니다. 


군집 분석 기법

계층적 군집기법비계층적 군집기법으로 구분할 수 있습니다. 

계층적 기법은 클러스터를 만들어 가는 과정에서 여러 개의 클러스터가 만들어지는 기법이고, 비계층적 기법은 N개의 구성인자를 M개의 클러스터로 분류하는 것입니다. 계층적 군집기법의 알고리즘에는 최단 연결법(Single Linkage Method)이 있는데 이것은 두 군집 사이의 거리를 각 군집에 속하는 임의의 두 데이터들 사이의 거리 중 최단거리로 정의하여 가장 유사성이 큰 군집을 묶어 나가는 방법입니다. 비계층적 군집기법의 알고리즘으로는 K-평균 알고리즘이 있습니다. 이것은 K-means Algorithm이라고도 하는데  주어진 데이터를 K개의 클러스터로 묶으면서 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작하는 것입니다. 





2. 의사결정나무 분석 (Decision Tree)


의사결정나무 분석은 의사결정 규칙을 도표화하여 관심대상이 되는 집단을 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법입니다.


의사결정나무 분석에는 인공지능, 기계학습 분야에서 개발된 ID3, C4.5, C5.0 알고리즘들과 통계학 분야에서 개발된 카트(CART), 체이드(CHAID) 알고리즘으로 나눌 수 있습니다.

인공지능, 기계학습 분야에서 개발된 ID3, C4.5, C5.0 알고리즘들에 대해서 살펴보겠습니다. ID3란 기계학습분야에서 데이터로부터 의사결정나무를 생성할 때 사용하는 알고리즘이고, C4.5는 ID3를 확장한 알고리즘입니다.


그리고 C5.0은 C4.5를 개선한 알고리즘입니다. 통계학 분야에서는 카트(CART), 체이드(CHAID) 알고리즘이 개발되었는데, 카트(CART)란 Classification And Regression Trees 의 약어로서, 의사결정 나무를 생성할 때 후보 나무들을 여러 개 생성하고 그 중에서 최적의 나무를 찾아내는 방법입니다. 체이드(CHAID)란 Chi-square Automatic Interaction Detection 약어로서, 통계학의 카이제곱-검정 또는 F-검정을 이용하여 다지 분리(Multiway Split)를 수행하는 알고리즘입니다. 



3. 연관성 규칙 발견 분석 (Association Rule Discovery)


관성 규칙 발견 분석은 특정의 아이템 집합에서 어떤 아이템 거래가 발생하면 연관성에 따라 다른 특정 아이템의 거래가 발생하는 현상을 발견하고자 하는 분석 기법입니다. 예를 들어 구매자가 특정 아이템 집합인 장바구니에 사과를 넣을 때는 바나나도 같이 넣는 경우가 있다고 가정할 경우 사과와 같이 어떤 아이템 거래가 발생할 때 어떤 연관성에 따라 바나나와 같은 다른 특정 아이템의 거래가 발생하는 상황이 있습니다. 이런 현상을 발견하고자 하는 분석 기법이 연관성 규칙 발견 분석인 것입니다. 이는 마케팅에서 손님의 장바구니에 들어있는 품목간의 관계를 알아본다는 의미에서 장바구니 분석이라고도 합니다. 또한 연관성 규칙은 “상품 A가 구매되어진 경우는 상품 B도 구매된다.” 라고 해석됩니다. 




4. 인공 신경망 (Artificial Neural Network)


인공신경망은 뇌기능의 특성을 컴퓨터 시뮬레이션으로 표현하는 것을 목표로 하는 
수학 모델로서 교사 학습비교사 학습 등의 방식이 있습니다. 교사 학습은 교사 신호(정답)의 입력에 의해서 문제에 최적화되어 가는 것으로 명확한 해답이 있는 경우 이용되는 방식입니다. 여기서 교사 신호란 정답과 같은 목표치를 의미하는 것입니다. 비교사 학습은 교사 신호를 필요로 하지 않으며, 데이터가 어떻게 구성되었는지를 알아내는 문제의 범주에 속하는 것입니다. 인공 신경망은 매우 복잡한 구조를 가진 데이터들 사이의 관계나 패턴을 찾아내고 특수한 컴퓨터를 사용하여 구성될 수도 있으나 대부분 일반 컴퓨터에서 응용소프트웨어에 의해 구현됩니다. 




5. 사례기반 추론 (Case-Based Reasoning)


사례기반 추론은 유사한 과거 문제의 해결에 기초해서 새로운 문제를 해결하는 과정입니다. 이것은  귀납법 및 유추법과 유사한 개념으로 단순하면서도 문제 영역이 잘 정형화되지 않는 분야에서 좋은 접근법입니다. 


형식화 단계

사례기반 추론은 컴퓨터 추론 목적으로 형식화될 때 검색, 재사용, 수정 그리고 유지의 단계 과정을 거쳐 적용됩니다.

검색 단계에서는 대상 문제가 주어지면, 적절한 사례들을 검색하고 하나의 사례는 문제, 해, 해설 등으로 구성됩니다. 

재사용 단계에서는 이전의 사례로부터 대상 문제의 해를 연결합니다. 그리고 수정 단계에서 새로운 해법을 테스트하고 필요하다면 수정을 하게 됩니다. 해법이 성공적으로 대상 문제에 적용된 후에는 마지막 유지 단계를 거치는데 이 단계는 새로운 경험이 메모리에 새로운 사례로 저장됨으로써 축적된 경험이 많아져 앞으로 더 잘 문제를 잘 해결하게 해줍니다



6. 유전자 알고리즘 (Genetic Algorithm)


생물의 유전과 진화 메커니즘을 공학적으로 모델링 하여 문제 해결이나 시스템의 학습 등에 응용하는 것입니다. 유전자 알고리즘은 계산 모델을 프로그래밍하여 문제해결 전략을 수립하고 적용함으로써 자연과학, 공학 및 인문 사회 과학 분야에서 계산 불가능한 복잡한 문제를 해결하는 데 널리 응용되고 있습니다. 





[비즈니스 분석]


1. 비즈니스 인텔리전스(BI) vs 비즈지스 분석(BA)

비즈니스 분석은 Business Analytics를 줄여 BA라고도 합니다. 비즈니스 분석이란 기업이나 조직에  존재하는 과거 데이터와 사례를 분석하여 어떤 이슈의 인과 관계를 밝혀내고 향후 비즈니스 방향을 예측하고  의사결정을 내리는데 도움을 주는 기술입니다.


비즈니스 분석기술

비즈니스 분석의 기술들에 대하여 알아볼 텐데요. 먼저 통계분석 입니다. 통계분석이란 관찰 및 조사로  얻을 수 있는 데이터로부터 수학 및 과학적 기법을 이용해 수치상의 성질, 규칙성 또는 불규칙성을  찾아내는 것을 의미합니다. 통계분석에는 회귀분석, 상관분석, 분석분석 등이 있는데요. 


회귀분석 이란 독립변수와 종속변수 사이의 상관관계를 나타내는 선형 관계식을 구하는 방법이며, 

상관분석 은 두 변수간에 어떤 선형적 관계를 갖고 있는 지를 분석하는 방법입니다. 

분산분석 은 두 개 이상 다수의 집단을 비교하고자 할 경우 사용합니다. 집단 내의 분산, 총평균과 각 집단의  평균의 차이에 의해 생긴 집단 간 분산의 비교를 통해 가설검정을 하는 방법입니다. 

           


시계열 예측 이란 주어진 시계열을 보고 수학적인 모델을 만들어서 미래에 일어날 것들을 예측하는 것을  뜻하는 말입니다. 일반적으로 이 방법은 공학이나 과학계산 혹은 금융시장에서의 주가 예측 등에서 많이  쓰입니다. 여기서 시계열은 일정 시간 간격으로 배치된 데이터들의 수열을 말합니다. 



예측 모델링 이란 기존 데이터나 미래 상황에 대한 가정을 활용하여 미래 발생될 결과 등을 예측할 수 있는  모델을 만드는 것을 말합니다. 통계학의 회귀분석을 통해 회귀 방정식을 구성하는 것 등 다양한 예측 모델링  방법이 있습니다.



최적화 란 수학적, 통계적 모형 등을 활용하여 복잡한 문제에서 최적 해 혹은 근사적인 최적 해를 찾아내는  것입니다. 그래서 이익, 성능, 수익 등을 최대화하거나 손실, 위험, 비용 등을 최소화하여 문제를 해결하는  것입니다. 이를 통해 효율적인 의사결정을 할 수 있습니다.



BI vs BA

비즈니스 인텔리전스는 사용자들의 의사결정을 돕기 위해 데이터를 통합, 분석, 접근할 수 있도록 해주는  도구입니다. 비즈니스 분석은 기업이나 조직에 존재하는 데이터를 분석하여 향후 비즈니스 방향을 예측하는  도구라고 했습니다. 이 둘은 데이터를 분석해주는 도구로 같은 기술인데 어떤 차이점이 있을까요?  비즈니스 인텔리전스 기술은 합리적인 의사결정을 돕습니다. 정확한 성과측정 지표에 의한 정보로 의사결정을  지원합니다. 그에 비해 비즈니스 분석은 대비하기 위한 의사결정을 돕는데 좀 더 주안점을 둡니다.  특정 사건에 대해 분석하고, 최적화 하여 사건이 일어나기 전에 대안을 마련하고 대비하기 위한 의사 결정을  지원해 주는 것입니다. 그리고 비즈니스 인텔리전스 기술은 모든 사용자에게 초점을 두는 반면에 비즈니스  분석은 기업의 경쟁력 강화에 초점을 둡니다. 즉, 비즈니스 인텔리전스 기술은 모든 사용자가 쉽게  성과 데이터에 접근하게 하고, 정보를 전사적으로 공유하는 것에 초점을 둡니다. 반면에 비즈니스 분석  기술은 비즈니스 최적화를 통한 기업의 경쟁력 강화에 초점을 두고 있는 것입니다







BI에서 BA로의 진화과정


다음은 분석 기술이 비즈니스 인텔리전스에서 비즈니스 분석으로의 진화하는 과정을 나타낸 것입니다.  세로축은 기업의 경쟁력 확보와 정보의 가치로 두고, 가로축은 인텔리전스 레벨로 두었습니다.  그리고 각 자리에 비즈니스 인텔리전스 기술과 비즈니스 분석 기술을 각각 배치한 것입니다. 배치된  각 기술의 비즈니스 분석 영역은 보기-인지-예측 단계로 나누었을 때 비즈니스 인텔리전스는 보기와  인지 영역에, 비즈니스 분석 기술은 예측 영역에 해당합니다. 비즈니스 분석은 기업의 경쟁력 강화에 초점을  두기 때문에 더 고도화된 기술을 필요로 하는데요. 이 도식화를 보면 비즈니스 인텔리전스가 하위의  기술이고 비즈니스 분석이 상위의 기술이라고 생각할 수 있습니다. 즉, 비즈니스 분석 영역에서는  통계분석을 통해 결과가 발생된 이유를 찾고, 시계열예측을 통해 어떻게 될 것인지 예측하고,  다음에 발생할 일이 무엇일지 예측모델을 통해 확인할 수 있습니다. 또한 발생할 일에 대한 대안을  최적화 분석을 통해 확인할 수 있습니다.

           




그럼 각 기술에 대해서 알아보겠습니다. 기존의 비즈니스 인텔리전스 기술 부터 살펴보겠습니다.   무슨 일이 발생하였는지 정형 데이터에 대하여 리포트하고, 얼마나 많이 자주 어디에서 발생되는지를  비정형 데이터에 대하여 리포트합니다. 그리고 문제의 원인을 간단한 분석을 통해 파악하고,  어떤 행동이 필요한지 경보를 제공하는 기능은 기존 비즈니스 인텔리전스 도구의 영역에 해당 합니다. 


다음은 비즈니스 분석 기술 을 살펴보겠습니다. 통계분석은 데이터로부터, 성질, 규칙성 또는 불규칙성을  찾아내는 기술로 어떠한 결과가 나타난 이유를 도출합니다. 시계열 예측은 시계열 데이터 분석을 통해  미래에 일어날 것들을 예측하는 것으로 분석된 추세가 계속되면 어떻게 될 것인지를 예측합니다. 



예측 모델링은 미래 발생될 결과 등을 예측할 수 있는 모델을 만드는 것으로 다음에 발생할 일은 무엇인지를  예측합니다. 최적화란 최적 해 혹은 근사적인 최적 해를 찾아내어, 이익 등을 최대화하거나 손실 등을   최소화하여 문제를 해결하는 것으로, 발생할 일에 대해 최선의 대안을 찾도록 해줍니다.  


정리하자면, 기업의 당면과제를 해결하고 정확한 의사결정을 위해 정형·비정형 데이터 마이닝의 기술,  예측과 리포팅 기술이 고도화된 비즈니스 분석 기술을 필요로 하고 있습니다.  정형 리포트, 비정형 레포트, 온라인 분석 처리인 올랩 및 경보를 주는 기능을 기존의 비즈니스 분석 기술이  제공하는 반면, 통계분석, 예측, 최적화를 통해 인지 및 예측을 할 수 있는 고급 기능을 비즈니스  분석으로부터 추가적으로 제공받을 수 있는 것입니다. 즉, 비즈니스 인텔리전스 툴은 실적 집계를 통해서  '어디에서 문제가 발생했는지'를 제시해 주었습니다. 그러나 '예측'이나 '대안'을 제시하지는 못함  비즈니스 분석은 경영자가 정말로 원하는 '원인은 무엇인지' '앞으로 어떻게 될 것인지' '어떻게 대응하면  좋을지' 등에 대한 '예측'이나 '대안'을 제시합니다. 비즈니스 인텔리전스 툴을 보충하는 것이  비즈니스 분석인 것입니다. 


비즈니스 인텔리전스에서 비즈니스 분석으로 전환되는 핵심에는 보다 정밀하고 깊이 있는 분석 기법인  ‘ 마이닝 ’이 포함됩니다. 비정형 데이터가 계속 증가하고 있기 때문인데요. 현재 기업에서 생성되는  데이터의 80%가 비정형 데이터이고 앞으로도 비정형 데이터가 더 늘어날 것으로 예상됩니다.  마이닝 기법 중 SNS분석을 위한 텍스트 마이닝 기술이 있는데요. 이 기법은 깊이 있는 분석을 가능케 하는  비정형 데이터 마이닝 기술입니다.




2. 비니지스 분석 프레임워크




IDC 비즈니스 분석 프레임워크

시장조사기관 IDC는 비즈니스 분석 프레임워크를 성과 관리 및 분석 애플리케이션과 비즈니스 인텔리전스 툴,  데이터 웨어 하우스 관리 플랫폼 등 모두 포괄적으로 포함하는 것으로 정의하고 있습니다.  프레임워크란 사용자가 필요로 하는 기능이나 솔루션을 선택하여 얻고자하는 결과를 바로 얻을 수 있는  구조를 말합니다. 더 필요한 기능이 있다면 그때 그때 필요한 컴포넌트를 얹어서 사용할 수 있는 장점이  있는데요. 비즈니스 분석 프레임워크에 포함되는 각 애플리케이션들을 살펴보겠습니다.



(1) 관리 및 분석 애플리케이션 은 재무성과 및 전략 관리 애플리케이션, 공급망 분석 애플리케이션,  생산 계획 분석 애플리케이션, CRM 분석 애플리케이션, 서비스 운영 분석 애플리케이션, 인력 분석  애플리케이션과 같은 6가지 애플리케이션으로 구성됩니다.


재무성과 및 전략 관리 애플리케이션 은  기업의 재무 관련 성과와 전략을 관리하는 기능을 제공합니다. 즉, 예산 편성, 재무 계획, 수익성 분석,  재무 전략 관리 등을 수행할 수 있습니다. 공급망 분석 애플리케이션 은 공급망을 구성하는 관련사항을  분석하는 기능을 제공하는데요. 조달, 물류, 재고, 생산 관련 사항을 분석할 수 있습니다.  생산 계획 분석 애플리케이션 은 생산과 관련된 계획 및 수요 분석을 수행하는 기능을 제공합니다.

CRM 분석 애플리케이션 은 영어, 마케팅, 서비스 관련한 분석과 고객센터, 웹사이트 및 가격에 대한 분석을  수행합니다. 서비스 운영 분석 애플리케이션 은 금융, 교육, 정부, 보건, 통신 분야에서 수행되는  서비스 운영 및 성과 관련한 자료를 분석하는 기능을 제공하는 애플리케이션입니다.  인력 분석 애플리케이션 은 인적자원 관련 데이터를 분석하여 인적자원관리를 효과적으로 수행할 수 있게  지원하는 애플리케이션입니다.



(2)   비즈니스 인텔리전스 툴 에 대해서 알아보겠습니다. 이는 쿼리, 리포팅 및 분석 툴 은 사용자가  손쉽게 데이터베이스에 액세스하여 필요한 데이터를 활용하고 보고서를 작성 및 간단한 다차원 분석을  지원해주는 툴입니다. 여기에 포함된 대시보드는 목표 달성에 필요한 중요 정보를 시각적으로 표시하여  정보를 한 눈에 모니터링할 수 있도록 하나의 화면에 조합하여 보여주는 것을 의미합니다.  생산보고는 생산 관련 중요 정보를 제공하는 것을 의미합니다.  


온라인처리분석인 올랩 은 데이터베이스에 저장된 데이터를 활용하여 다차원 분석을 수행하는 것을  의미합니다. 애드훅 은 처음 학습하는 것인데요. 임시적 조회 및 보고를 의미하는데, 사용자의 비일상적  정보 요구에 따라 관련 데이터를 조회 및 보고하는 것을 의미합니다.  쿼리 는 데이터베이스에 접속하여 데이터를 요청하는 것을 의미합니다.


고급분석 툴 은 고급 분석을 수행할 수 있는 툴을 의미합니다. 데이터 마이닝 은 데이터베이스로부터 과거에는  알지 못했지만 데이터 속에서 유용한 패턴과 관계를 발견하여 미래에 실행 가능한 정보를 추출해 내고  의사 결정에 이용하는 분석을 말합니다. 고급 통계 분석과 모델링 기법을 적용하여 유용한 패턴과 관계를  찾아냅니다. 통계학 이란 데이터로부터, 응용 수학의 기법을 이용해 수치상의 성질, 규칙성 또는 불규칙성을   찾아내는 방법으로 합리적인 의사결정을 할 수 있습니다. 상관분석, 회귀분석, 분산분석 등 다양한  분석방법이 존재합니다.  콘텐츠 분석 틀 은 웹 콘텐츠의 구조, 내용, 사용에 대한 분석을 수행하는 도구입니다.    공간 정보 분석 툴 은 지상 ∙ 지하 ∙ 수상 ∙ 수중 등 공간상에 존재하는 자연적 또는 인공적인 객체에 대한  위치 데이터를 분석하는 도구입니다.




IDC 비즈니스 분석 프레임워크 요약








[비지니스 분석 유형과 비지니스 분석 프로세스]



1.비지니스 분석 유형


비즈니스 분석은 서술적 분석, 예측 분석, 지시적 분석, 의사결정 분석이라는 4가지 유형이 있습니다.


먼저 서술적 분석 은 실제 현상 속에서 발생한 사건이나 자료를 수집하여 분석하는 것으로,  어떠한 현상이나 사건에 따라 “어떤 경우에 어땠다.” 라는 내용을 보여줍니다. 지난 사례를 이용하여  향후 유사 사례에 대한 대응책을 세울 수 있습니다. 


예측 분석 은 기존 데이터를 기반으로 미래에 대한 신뢰할만한 가정을 도출하는 분석방법으로 “A라는 제품을  구매한 고객의 80%는 B라는 제품도 구매 했다.” 라는 데이터를 가지고 “고객이 A라는 제품을 구매했으므로  경우 B를 구매할 할 것이다.”라는 예측을 하는 것입니다. 예측 분석은 특정 제품을 구매할 확률 등  비즈니스 활동 결과를 예측하며, 이를 촉진하기 위한 마케팅 전략 등을 수립할 수 있습니다. 


지시적 분석 은 최적화를 통해 어떤 복잡하고 전문적인 부분에 대한 대응을 지시하는 분석방법으로 복잡하여  예측이 힘들고 결정을 내리기 곤란한 상황에서 최적화를 통해서 최상의 방법을 얻을 수 있는 방안을 제시해  줍니다. 마지막으로 의사결정 분석 은 다수의 대안 또는 전략의 선택에 따른 결과를 분석하는 방법으로  어떤 결정을 내리기 힘들 경우 계량적, 통계적 기법을 이용하여 결정자가 가진 선택사항과 이에 따른 결과를  예측해 줍니다.




2. 비지니스 분석 프로세스




비즈니스 분석 프로세스는 비즈니스 니즈의 규정, 데이터 탐사, 데이터 분석, 예측, 최적화, 의사결정 및  성과 측정, 시스템 업데이트라는 7단계로 구성되어 있습니다. 


1단계는 비즈니스 니즈를 규정 합니다. 비즈니스의 이해관계를 파악하고 방향을 설정하는데 아직 데이터에 관한  연구보다는 기업 내 · 외의 연구가 필요한 시점입니다. 


2단계는 비즈니스 니즈를 충족시킬만한 데이터를  찾는 단계로 기록된 데이터를 탐색 합니다. 기록된 데이터에서 불필요한 부분을 제거, 분리, 분류하고  선출하는 기술이 필요합니다. 이 과정에서 불필요한 부분을 제거와 분리하는 과정이 중요한데, 이는 잘못된  정보가 입력이 될 경우, 나쁜 의사결정을 하게 될 수도 있기 때문입니다. 


3단계는 데이터 분석 이 이루어지는데요. 비즈니스 분석에서는 고급 분석 기술이 요구됩니다.  이 단계에서 데이터의 가치를 창출해내는 작업이 이루어기 때문에 조금 더 정교하게 데이터를 다듬는  단계라고 할 수 있습니다. 


4단계는 미리 어떤 일이 일어나게 될지 예측 하는 단계이고 


5단계에서는 4단계에서의  예측을 기반으로 최적화 시키는 단계로, 예측모델을 기반으로 최고의 솔루션을 창출합니다. 


6단계는 의사결정 성과측정 단계로 최종적으로 의사결정하고 이러한 의사결정에 따른 성과를 측정합니다. 

           

마지막으로 7단계인 시스템 업데이트 단계는 보완 및 피드백 단계로 모든 과정을 마치고 보완과 피드백을  수행합니다.











'빅데이터분석개론' 카테고리의 다른 글

데이터마이닝 분석유형  (5) 2015.12.30
데이터마이닝 (Data Mining)  (5) 2015.12.15
비즈니스 인텔리전스 (Business Intelligence)  (8) 2015.12.13
빅데이터 분석 방법론  (13) 2015.12.13
HDFS와 MapReduce  (295) 2015.12.13



[비즈니스 인텔리전]


수많은 기업인들이 기업경영을 위해 노력하고 있습니다. 그들은 많은 거래를 위해서 정보를 수집해야 함은 물론  그 정보를 토대로 매출 상승, 신제품 개발, 투자금 확보 등 수많은 의사결정을 해야 합니다. 의사결정을 돕기 위해  세상의 정보들을 모으고 분석하는 도구들이 나날이 발전해오고 있습니다. 정밀한 정보도구들을 통하여 의사결정을  함으로써 성공의 확률을 높이고 있죠. 




1. BI 개념


‘비즈니스 인텔리전스의 개념’에 대해서 학습하겠습니다. 비즈니스 인텔리전스의 개념에 대해서  알아보고 비즈니스 인텔리전스 기술의 발전에 대하여 살펴보겠습니다. 비즈니스 인텔리전스란 줄여서 BI라고도  하는데요. 사용자들의 의사결정을 돕기 위하여 방대한 양의 데이터를 통합하고 분석 및 접근할 수 있도록 해주는  도구를 지칭합니다. 비즈니스 인텔리전스는 기업이 보유하고 있는 수많은 정보를 정리하고 분석하여 기업의 생산성을  향상시키거나, 원가를 절감하거나, 고객만족을 높일 수 있는 등의 전략적 의사결정에 활용하게 합니다.  그리고 비즈니스 인텔리전스는 업무 각 분야의 데이터로부터 현재까지의 데이터를 분석하는데요. 이를 통해 미래의  계획을 세울 수 있는 통찰력을 얻게 하는 일련의 기능을 제공합니다. 또한 기업의 마케팅, 영업, 고객서비스 업무에  필요한 각종 의사결정 정보를 제공하여 합리적으로 의사결정을 할 수 있도록 도와줍니다.  


전통적인 비즈니스  인텔리전스 란 기업 경영에서 내비게이션 역할을 수행하는 것입니다. 기업에서 구성원에게 적시에 의사결정을 할 수  있도록 지원하는 기술이라고 정의할 수 있는데요. 기업의 비전을 달성하기 위하여 비즈니스 전략을 효율적이고  효과적으로 지원합니다. 기업의 구성원에는 각 조직의 종업원, 중간 관리자, 의사결정자 등이 있습니다. 비즈니스  인텔리전스 역할은 다음과 같은데요. 먼저 경영인이 전략을 세우는데 필요한 데이터를 수집하고, 이 데이터를  가장 효과적이고 효율적인 방법으로 이용하여 적절한 의사결정을 하도록 도와줍니다. 즉, 경영상의 다양한 위협이나  위험을 자동적으로 알려주는 시스템이라고 할 수 있습니다. 그리고 비즈니스 인텔리전스는 데이터를 가공하여 특정한  의미가 내포된 데이터인 지식과 정보를 추출합니다. 이를 통해  비즈니스 인텔리전스는 올바른 의사결정을 내릴 수  있도록 지원하는 역할을 수행하는 것입니다.




전통적인 비지니스 인텔리전스의 구성

비즈니스 인텔리전스는 전략 인텔리전스 , 분석 인텔리전스 , 확장  인텔리전스 , 인텔리전스 인프라 , 인텔리전스 정보전달 로 크게 다섯 부분으로 구성되어 있습니다. 


전략 인텔리전스는  경영전략을 효과적으로 수립하고 실행하기 위해 필요한 가치동인 관리, 경영성과 관리, 전략 실행 모니터링, 원가 및  수익성 등에 관한 분석정보를 제공하고, 분석 인텔리전스는 특정 이슈의 해결을 위한 전문적인 의사결정 모델부터  업무 기능의 영역별 보고서 및 조회를 위한 기능까지해서 분석을 위한 다양한 정보를 생성하여 제공합니다.  확장 인텔리전스는 기업 내부뿐만 아니라 고객, 공급자 등 외부 이해관계자와의 거래 및 운영 프로세스에서  생성 되는 데이터를 분석하여 정보를 제공하고, 인텔리전스 인프라는 비즈니스 인텔리전스를 구현하기 위한  다양한 기술 및 데이터 통합기반을 제공합니다. 마지막으로 인텔리전스 정보 전달은 비즈니스 인텔리전스에서  생성된 정보를 사용자의 요구에 맞도록 제공하는 것을 목적으로 합니다. 최근에는 비즈니스 인텔리전스 구성에  전사적 성과관리(CPM)나 비즈니스 성과관리(BPM)와 같은 신개념이 등장하고 있으나, 비즈니스 인텔리전스의 프레임워크에서  크게 벗어나지 않습니다.




전통적인 비지니스 인텔리전스의 영역

전통적인 비즈니스 인텔리전스 영역은 이미 성숙된 분야이기에 이미 오랜 기간 동안 많은 용어들이 통용되고 있으며  어떤 용어는 이미 사장되었고 어떤 용어는 그 의미가 새로운 의미로 진화되었습니다. 예를 들어, ‘비즈니스  인텔리전스’라는 용어 자체도 쿼리, 리포팅 및 분석이라는 협의의 기술적인 의미로 사용되고 있는 경우도 있지만  때로는 그 단계를 넘어 IDC에서 정의하듯이, 프런트-엔드 툴 및 데이터 웨어하우징, 분석 애플리케이션을 포함한  광의적 의미로 사용되기도 합니다. 비즈니스 인텔리전스 정의에 포함되는 것들에 대하여 좀 더 자세히 알아볼까요?


쿼리, 리포팅 및 분석이라는 것은 데이터 베이스에 저장되어 있는 데이터 중에서 사용자가 원하는 데이터를 찾아  적절한 형태로 요약하여 간단한 요약 분석의 내용을 리포팅하는 것을 말합니다. 프런트-엔드 툴 이란 클라이언트에  설치되어 서버의 데이터베이스에 접속하여 데이터 작업을 하는 프로그램을 말합니다. 데이터 웨어어하우징 이란  사용자의 의사 결정에 도움을 주기 위하여, 정보시스템의 데이터베이스에 축적된 데이터를 공통의 형식으로 변환해서  관리하는 데이터베이스인 데이터 웨어하우스를 구성하는 기술입니다. 방대한 조직 내에서 분산 운영되는 각각의  데이터베이스 관리시스템들을 효율적으로 통합하여 조정 ∙ 관리하기 때문에 효율적인 의사 결정 시스템을 위한  기초를 제공하는 기술이라고 말할 수 있습니다. 분석 애플리케이션 이란 통계적 분석 등과 같은 다양한 유형의  분석 작업에 필요한 기능이 들어있는 응용 프로그램을 의미합니다. 




전통적인 비지니스 인텔리전스와 빅데이터 분석

전통적인 비즈니스 인텔리전스는 빅데이터 분석과는 데이터 측면과 프로그래밍 측면에서 차이를 보이는데 데이터  측면 부터 살펴보겠습니다. 먼저 데이터가 어디서 발생되는지부터가 다릅니다. 전통적인 비즈니스 인텔리전스는  기업 내부의 정보시스템에서 데이터가 발생하여 이를 기반으로 데이터의 정제과정을 거쳐 의사결정에 활용하게 되는  반면 빅데이터는 기업의 내부와 외부에서 발생하는 다양한 데이터를 처리합니다. 따라서, 전통적인 비즈니스  인텔리전스 기술이 관계형 데이터를 다루는데 반하여 데이터는 관계형 데이터에서 벗어나게 됩니다. 그리고 데이터  발생에 따라 데이터의 양도 달라지는데요. 전통적인 비즈니스 인텔리전스에서는 기업 내의 정제된 데이터만을  저장하므로 기가 바이트 급의 관계형 데이터베이스가 주류이나, 빅데이터 분석 기술은 비정형 데이터를 포함하는  테라 바이트나 페타 바이트 이상의 데이터가 발생하게 됩니다.


빅데이터 분석은 기업 내부뿐만 아니라 외부에서도 데이터가 발생된다고 하였는데요. 외부 데이터는 크게 트위터와  같은 외부 시스템, 스마트폰 사용자의 위치기반 데이터, 비디오, 소비자의 불만사항 같은 텍스트 정보 등이  있습니다. 






전통적인 비즈니스 인텔리전스와 빅데이터 분석을 프로그래밍 측면 에서 살펴보겠습니다. 먼저 데이터 처리  부분입니다. 전통적인 비즈니스 인텔리전스의 경우, 패키지 기반의 상업용 데이터 추출, 정제, 탑재 등 데이터를  처리하는 제품들이 존재하며, 이기종 데이터베이스와의 자동 연결 기능 등이 지원됩니다. 하지만 빅데이터는 비정형  데이터가 많은 데이터의 속성상 비즈니스 인텔리전스와 같은 자동화가 어렵습니다. 그래서 자바 기반의 맵 리듀스  프로세스로 비정형 데이터 정제를 합니다. 프로그래밍 기술에서도 둘은 차이를 보이는데요. 전통적인 비즈니스  인텔리전스는 SQL 기반의 선언문, 중급수준의 함수 및 통계 알고리즘 등을 사용하여 프로그래밍을 합니다. 반면에  빅데이터 분석에서는 고급수준의 함수 및 알고리즘을 프로그래밍하는 기술이 필요합니다. 또한, 전통적인 비즈니스  인텔리전스는 일반적으로 클러스터 컴퓨팅 환경에서 실행되는 것을 고려하지 않는데 빅데이터 분석에서는  대용량 데이터 처리를 위해 대부분의 작업들은 클러스터 또는 클라우드 시스템을 기반으로 합니다. 






2. BI 기술의 발전



모바일 비지니스 인텔리전스

 비즈니스 인텔리전스 기술은 최근 여러 방향으로 발전하고 있습니다. 먼저 모바일 비즈니스 인텔리전스 방향으로  발전하는 것에 대해서 살펴보겠습니다. 모바일 비즈니스 인텔리전스는 휴대성상호작용성 을 모두 가졌습니다.  경영자들이 출장이나 이동 중에도 실시간 경영 상태를 분석해 의사결정을 할 수 있도록 지원하고, 직원들은 때와  장소에 관계없이 각자의 핵심성과지표 KPI의 달성 상태를 파악하며, 개인 및 팀의 실적을 모바일 상에서 실시간으로  확인할 수 있도록 지원해줍니다. 이처럼 모바일 비즈니스 인텔리전스는 모바일 기기에 최적화된 응용 프로그램을  사용하여 정보 분석을 통해 비즈니스 통찰력을 얻는 기술입니다. 비즈니스 인텔리전스 기술의 최근 발전 방향 중  클라우드 비즈니스 인텔리전스 가 있습니다. 클라우드 컴퓨팅과 비즈니스 인텔리전스 기술을 조합한 것인데요. 클라우드 컴퓨팅 기술은 비즈니스 인텔리전스 애플리케이션에 액세스할 수 있는 가볍고 민첩한 방법을 제공하며  비즈니스 인텔리전스는 적절한 시기에 적당한 사람에게 올바른 정보를 제공에 할 수 있습니다.



시각화

비즈니스 인텔리전스 기술은 최근 발전 방향 중 시각화는 빼놓을 수 없는데요. 비즈니스 인텔리전스는 데이터 분석을 통해 비즈니스에  도움을 주는 서비스이죠. 하지만 이제는 분석만이 아니라 분석한 데이터를 어떻게 효과적으로 보여줄 것인지에 대한,  즉 시각화가 중요한 요소가 되었습니다. 활용 영역도 단순히 분석 결과를 이해하기 쉽게 보여주고 공유하는 것 외에  빅데이터 관련 작업 전반으로 확대 될 것입니다. 







[비지니스 인텔리전스 어플리케이션]


1. BI 애플리케이션 개념


일반적으로 비즈니스  인텔리전스 애플리케이션은 데이터베이스 쿼리 , 리포팅 소프트웨어 , 온라인분석처리 올랩 , 데이터 마이닝, 대시보드 데이터 시각화 기술 등의 도구를 포함합니다. 즉, 기업들이 신속하고 정확한 비즈니스 의사 결정을 위해 사용하는  데이터의 접근, 수집, 보관, 분석 등의 애플리케이션과 기술의 집합을 비즈니스 인텔리전스 애플리케이션이라고  합니다. 



BI 애플리케이션 기능

비즈니스 인텔리전스 애플리케이션은 의사결정자가 핵심 정보를 쉽게 검토할 수 있게 합니다. 의사결정자가  필요로 하는 데이터의 현황을 그래프나 표로 시각적으로  파악할 수 있게 표현함으로써 핵심정보를 쉽게 파악할 수  있게 해줍니다. 또한 기업의 상태를 신속하게 확인할 수 있게 해줍니다. 기업에서 발생하는 중요한 사항에 대한  정보를 빠르게 정리하여 보여주기에 기업의 상태를 신속하게 확인할 수 있습니다. 또한 현재의 상황에 대한 적절하고  정확한 정보를 제공합니다. 기업의 현재 상황과 관련한 데이터를 정리하여 보여주기에 정확한 현재의 정보를  제공합니다. 





2. BI 애플리케이션 도구


쿼리와 리포팅 소프트웨어

 비즈니스 인텔리전스 애플리케이션에 포함되어 있는 도구들에 대하여 알아보고자 합니다. 먼저 데이터베이스 쿼리  도구입니다. 쿼리란 데이터베이스에 정보를 요청하는 것으로 특별한 쿼리 언어로 쓰여진 정형화된 쿼리 문장의  형태로 정보를 요청하도록 하고 있습니다. 비즈니스 인텔리전스 애플리케이션들은 이러한 데이터 베이스 쿼리 기능을  가지는 도구를 포함하고 있습니다. 그리고 리포팅 소프트웨어란 데이터베이스와 연계하여 다양한 보고서를 미리 보기  하거나 출력하는 리포트 제작 기능을 의미합니다. 비즈니스 인텔리전스 애플리케이션들은 이러한 리포팅 기능을  가지는 도구를 포함하여 현황 관련한 다양한 리포트를 제공합니다.



온라인 분석처리(OLAP, OnLine Analytical Processing)

온라인 분석처리는 올랩이라고 하는데 OnLine Analytical Processing의 줄임말입니다. 온라인 분석처리 올랩은  사용자가 다차원 정보에 직접 접근하여 대화 형태로 정보를 분석하고 의사결정에 활용하는 과정입니다. 온라인 분석  처리의 특성은 다음과 같습니다. 먼저 다차원의 데이터 분석을 지원합니다. 정보에 대한 각 측면을 의미하는 차원을  여러 개로 구성하여 데이터를 다차원 형태로 보여주는 것입니다. 그리고 중간 매개자 없이 사용자가 직접 데이터에  접근하는데요. 홈뱅킹, TV 쇼핑 등을 생각하면 좀 더 쉽게 이해가 되실 겁니다. 온라인 분석처리는 대화식으로  정보가 분석되기 때문에 사용자가 명령을 하고 오래 기다리지 않습니다. 그래서 특별한 질문들에 대해  데이터베이스에 해당 데이터들을 구성해놓고 사용자가 신속하게 답변을 얻을 수 있도록 해야 합니다.  



데이터 마이닝

데이터 마이닝은 대규모로 저장된 데이터 안에서 체계적이고 자동 및 반자동화된 과정으로 통계적 규칙이나 패턴을  찾아 내는 것입니다. 즉, 대형 데이터베이스, 데이터 웨어하우스 또는 데이터 마트와 같이 대규모로 저장된  데이터 안에서 자동 및 반자동화된 과정으로 통계적 규칙이나 패턴을 찾아냅니다. 이 패턴 속에서 중요한 비즈니스  정보를 찾아내어 미래를 예측하고자 하는 것입니다. 데이터 마이닝은 대량의 데이터에 숨겨진 의미있는 패턴을  찾아내는 데 촛점을 맞추는 반면, 온라인 분석처리는 데이터에 관해 현황 보고서를 작성하는데 중점을 둡니다.


예를 들면, 온라인 분석처리는 비즈니스의 형태에 따라 판매 보고서와 같은 보고서를 작성하는 반면,  데이터 마이닝은 이런 판매에 영향을 미치는 원인이 무엇인가를 발견하는데 중점을 둡니다. 온라인 분석처리는  다수의 데이터베이스를 복잡한 테이블들로 요약하기 위해 현황 및 사실 정보를 가지는 숫자 값들의 더하기와 합산에  관련되어 있기 때문입니다. 또한 데이터 마이닝이 알고리즘을 사용하여 데이터를 자동적으로 조사하는데 반하여  온라인 분석처리은 사용자가 질의할 것을 구성하여 수행합니다. 정리하자면 데이터 마이닝은 온라인 분석처리보다  데이터베이스내에 숨겨진 지식 및 정보를 발견하는 것에 중점을 둡니다.




정보유형

데이터마이닝으로부터 얻을 수 있는 정보들의 유형은 예측 정보, 분류 정보, 군집화 정보, 연관 정보, 순차 정보  등이 있습니다. 먼저 예측 정보는 대용량 데이터 집합 내의 패턴을 기반으로 미래를 예측하는 것으로 예로 수요를  예측하는 것을 들 수 있습니다. 분류 정보는 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론합니다.  예로는 이탈한 고객을 분류하는 것을 들 수 있습니다. 군집화 정보는 동일한 특성을 가지는  자료들을 찾아  그룹핑하는 정보인데 예로 비슷한 행동 집단을 구분해 내는 것을 들 수 있습니다. 연관정보는 동시에 발생한  사건간의 상호연관성을 탐색하는 것으로 예로는 장바구니의 상품들의 관계를 알아보는 것을 들 수 있습니다.  마지막으로 순차 정보는 연관 규칙에 시간의 개념을 반영하여 시계열에 따른 패턴들의 상호연관성을 탐색하는  정보입니다. 예로 매일 주식의 값을 저장하는 시계열 데이터를 들 수 있습니다.



데이터 마이닝은 대형 데이터베이스,  데이터 웨어하우스 또는 데이터 마트와 같이 대규모로 저장된 데이터 안에서 자동 및 반자동화된 과정으로 통계적  규칙이나 패턴을 찾아낸다고 했습니다. 그럼 이 대규모로 저장된 데이터들이 무엇인지 각각 알아볼까요?


대형 데이터베이스 란 일반적으로 테라바이트급 저장 장치를 가진 초대형 데이터베이스를 의미합니다. 일반적으로 다수의  사용자가 사용하는 의사 결정 지원 시스템이나 트랜잭션 처리 애플리케이션들이 이러한 대형 데이터베이스를  구축하고 있습니다. 데이터 웨어하우스 는 기업 내 업무수행 관련 다수의 핵심적인 거래처리시스템들로부터 현재 및 과거 데이터들을 저장합니다. 그리고 전사적인 사용을 위해 데이터를 통합하고 표준화하지만, 변경은 할 수 없다는  특징이 있습니다. 데이터마트 는 데이터 웨어하우스의 일부분으로, 특정 사용자 집단이 사용할 수 있도록 특정 업무  영역의 데이터를 요약하여 구성하였습니다.



대시보드

대시보드는 프레젠팅을 위한 비즈니스 인텔리전스 애플리케이션입니다. 대시보드는 최고 경영진의 정보 요구에  맞추어 특별하게 설계된 정보시스템인데요. 4가지 특징이 있습니다. 대시보드는 적절한 정보에 쉽게 접근하게 해주며  관리 보고서에도 직접 접근하게 해줍니다. 사용자 친화적이며 그래픽에 의해 지원됩니다. 그리고 관리자들이 예외  보고서를 검토하고 상세 데이터로 드릴 다운할 수 있도록 하는 애플리케이션입니다. 드릴 다운이란 단어가 낯설을 수  있는데요. 드릴 다운이란 각종 요약된 레벨로부터 가장 상세한 레벨까지 차원의 계층에 따라 분석에 필요한 요약  수준을 바꿀 수 있는 기능을 의미합니다. 



데이터 시각화 기술

문자와 그래프, 표 등으로 데이터를 알기 쉽게 표현할 수 있는 데이터  시각화 기술도 비즈니스 인텔리전스 애플리케이션에 있어서 유용한 도구입니다. 즉, 데이터 시각화 기술은 데이터가  처리된 후 결과를 문자, 그래픽, 표 등의 시각적 형식으로 사용자들에게 제공합니다. 일전에 시각화를 위한 도구에는  마이크로소프트 엑셀, 구글 스프레드시트, IBM의 매니아이즈 등의 소프트웨어 도구가 있다고 학습했던 적이   있습니다. 그러한 소프트웨어를 사용하지는 않지만 유사한 기능을 가지는 시각화 도구를 비즈니스 인텔리전스  애플리케이션이 포함하고 있습니다. 






'빅데이터분석개론' 카테고리의 다른 글

데이터마이닝 (Data Mining)  (5) 2015.12.15
비즈니스 분석 (Business Analytics)  (4) 2015.12.13
빅데이터 분석 방법론  (13) 2015.12.13
HDFS와 MapReduce  (295) 2015.12.13
Hadoop 설치  (9) 2015.12.09