White Whale Studio

군집분석[Cluster Analysis] - 1 개념 및 데이터 유형 본문

IT Engineering/Data Mining

군집분석[Cluster Analysis] - 1 개념 및 데이터 유형

glorymind 2012. 4. 24. 18:08
반응형

군집분석[Cluster Analysis]

 

군집이라고 하면, 모임, 집단과 같은 의미로 보면된다.

 

책자에 나온 내용이나 사전적인 의미로 정리하자면

 

물리적 혹은 추상적 객체들을 비슷한 객체로 그룹화하는 것을 군집화(Clustering)이라고 한다.

 

데이터마이닝 기법 중 하나인 군집 분석은 이미 많은 연구가 이루어져 왔고, 다양한 응용을 위한 연구 또한 진행되고 있다.

 

군집 분석 자체가 인간과 밀접한 관계를 가진다.

 

어릴 때부터, 사람은 지속적으로 무의식적으로 군집화를 시도함으로써 동식물을 구분하거나,

가족 친지 중에서도 나에게 편한사람, 좋은사람, 그리고 어려운 사람, 나쁜 사람과 같이 분류하는 방법을 배운다.

 

실제적으로 군집 분석이 응용되는 사례를 살펴보면, 패턴 인식, 데이터 분석, 이미지 처리, 시장조사 등등 다양한 분야에서 응용될 수 있다.

 

군집은 대큐모 데이터 집합을 유사성(Similarity)에 따라서 그룹들로 분할하기 때문에 데이터 분할(Data segmentation)이라고 하기도 한다.

 

사실 데이터마이닝 쪽에서 먼저 연구한 것은 아니고 통계학에서 가지쳐서 나온 부분이라 통계학에서도 많이 다루는 부분이다.

다만 데이터마이닝 쪽에서는 좀더 전산적이고 계산적인 부분을 연구하고 응용한다는 점이 차이랄수 있겠다.

 

군집 분석 방법은 S-Plus, SPSS, SAS와 같은 통계 분석 소프트웨어 패키지에 구현되어 있어 학습하기에 좋다.

[학교에서 제공한다..후후..]

 

◎ 군집 분석에 사용되는 데이터의 유형

군집에 사용되는 데이터야 참으로 다양하겠지만, 어느정도는 일정한 형태의 데이터로 정제가 되어야할 필요가 있다.

이러한 데이터 형식에 대해서 한번 알아보자.

 

1. 데이터 행렬(Data Matrix)

사람을 예로 들면, 나이, 키, 몸무게, 성별, 인종 등과 같은 p개의 변수들을 나타낸다.

구조는 관계형 테이블, 즉 n × p 행렬 형태이다.

 

예를 들어볼까?

A 반에 속하는 학생들의 신체 검사 정보라고 가정하자.

 

 

이름 

키 

몸무게 

시력

최개바라

175 

67 

1.0 / 1.2 

이거봐라

170

78 

0.3 / 0.8 

 

 

위의 표에서 보면 최개바라와 이거봐라라는 2개의 객체가 있고 각 객체별로 이름, 키, 몸무게, 시력이라는 변수가 있다.(시력같은 경우는 단일 데이터는 아니니까... 단일 데이터로 보자.)

 

아무튼.. 위와 같은 형태인거다.

위의 테이블 형태를 적용하면, 2 × 4 행렬이라고 할 수 있다.

 

2. 상이성 행렬

음... 어떻게 설명하면 쉬울까?

 

말하자면, 스마트폰을 구매하려고 2개의 모델을 비교한다고 보자.

이 때, 2개의 스마트 폰이 어떤 점에서 차이가 나고 어떤 점에서 유사한가를 판단하기에 적절한 데이터인것이다.

 

d(i, j)는 객체 i와 객체 j간에 측정된 차이(difference) 혹은 상이성(dissimilarity)을 나타낸다.

d(i, j) = d(j, i) 이고,d(i, i)는 0이기 때문에 아래의 형태와 같은 행렬을 얻는다.

 

0

 

 

 

 

 

d(2, 1)

0

 

 

 

 

d(3, 1)

d(3, 2)

0

 

 

 

 

 

 

d(n, 1)

d(n, 1)

...

0

 

 

상이성 행렬은 1-모드(one-mode) 행렬이라고 불린다.

반면에 데이터 행렬은 2-모드(two-mode) 행렬이라고 불린다.

 

차이를 알겠는가?

데이터 행렬은 행과 열이 다른 원소를 나타내고 상이성 행렬은 행과 열이 같은 원소를 나타내기 때문이다.

 

많은 군집화 알고리즘은 상이성 행렬을 사용한다.

만약 데이터가 데이터 행렬 형태로 나타나 있다면, 군집화 알고리즘들을 적용하기 전에 상이성 행렬로 변환해야한다.

 

 

◎ 구간척도 변수

 

구간척도 변수는 뭐냐?????

쉽게 말하면 몸무게, 키 위도와 경도 좌표와 같은 선형 눈금의 연속형 척도이다.

 

군집화를 수행할 때는 측정 단위가 일정해야 정확한 결과를 도출할수 있다.

만약 높이를 미터에서 인치로 바꾸거나 무게를 킬로그램에서 파운드올 바꾸면 예상했던 결과와는 다른 군집화 구조를 가져올 수도 있기 때문에 이러한 측정 단위에 의존성을 가지게 된다.

 

측정 단위의 의존성을 방지하기 위해 데이터를 표준화 시키기는데, 이를 통해 모든 변수에 같은 비중을 준다.

이러한 표준화의 장점은 데이터에 대한 기존 지식이 없을 때 유용하다.

 

물론 내가 연구하고자 하는 분야에서와 같이 데이터에 가중치를 두어야하는 경우도 있다.

 

변수에 대해서 데이터를 표준화하기위한 방법으로는 단위가 없는 변수로 변환하는 방법이 있다.

 

1. 평균절대편차 sf를 계산한다.

 

 

여기서 x1f, ... xnf는 f의 n개의 측도들이고, mf는 f의 평균값, 즉, (x1f+x2f+...xnf) / n 인 것이다!!

 

2. 표준화된 측도 z-score 계산

(아 귀찮다... 다음에 적자.)

 

표준화를 수행한 후, 혹은 특정 응용분야에서 표준화하지 않았을 떄, 객체간의 상이성은 대표적으로 각 객체 쌍끼리의 거리에 기초하여 계산된 구간척도형 변수로 나타내진다.

 

가장 흔한 거리측도는 우리가 옛날부터 수학시간에 만힝 배웠던 유클리드 거리이다.

(Euclidean Distance)

 

Euclidean distance

공식은 위와 같다. x, y축 그래프에서 두 점 사이의 거리를 구할 때 많이 사용했던 공식이다.

다른 거리로는 맨하탄 거리(Manhattan distance) 혹은 시티블록 거리가 있다.

 

공식은 위와 같다. 유클리드 보다는 공식이 확실히 쉽다.

 

예제를 들어서 유클리드거리와 맨하탄 거리를 한번 구해보자.

x1 = (1,2), x2 =(3, 5) 라고 하자.

 

이때 유클리드 거리는

 요로코롬 되는 것이고, 맨하탄 거리는 2 + 3 = 5 이다.

맨하탄이 확실히 쉽다..하하

 

민코브스키 거리(Minkowski distance)는 뭐 거창해 보이지만 유클리드거리와 맨하탄 거리를 그냥 일반적으로 수식 표현한 것이다.

 와 같은 형태인데, 가만히 보면 p에 1인 경우 맨하탄, 2인경우 유클리드 거리이다.

민코브스키 아저씨가 만들어서 이름붙였다는데 뭐... 괜히 거창해보인다.

 

 

유클리드 거리에 가중치를 적용한 것이 위의 공식이다. w1에서 wm까지의 변수가 가중치 값이다.

 

◎ 이항형 변수

이항형 변수라니까 웬지 또 어렵다. 그러나 영어로는 Binary Variable 이라고 하면 쉽지?

0과 1 상태만을 가지는 변수다.

0은 변수가 존재하지 않는다는 것을 의미하고, 1은 존재한다는 것을 의미한다.

예로 0일때는 안경 낀 아이, 1일 때는 안경 안낀 아이로 판단할수 있다는 거다.

 

 

반응형
Comments