본문 바로가기
R

45. 데이터마이닝-군집분석

by #Glacier 2018. 11. 22.
반응형

안녕하세요. 오늘은 군집분석에 대해서 알아보겠습니다.


1. 군집분석의 개요


 -각 객체(대상)의 유사성을 측정하여 유사성이 높은 대상집단을 분류하고, 군집에 속한 객체들의 유사성과 서로 다른 군집에 속한 객체간의 상이성을 규명하는 분석 방법.

 -특성에 따라 고객을 여러 개의 배타적인 집단으로 나누는 것이다.

 -결과는 구체적인 군집분석 방법에 따라 차이가 나타날 수 있다.

 -군집의 개수나 구조에 대한 가정 없이 데이터로부터 거리를 기준으로 군집화를 유도한다.

 -마케팅 조사에서 소비자들의 상품구매행동이나 life style에 따른 소비자군을 분류하여 시장 전략 수집 등에 활용한다.


 1) 군집분석 특징

 -요인분석과의 차이점 : 요인분석은 유사한 변수를 함께 묶어주는 것이 목적

 -판별분석과의 차이점 : 판별분석은 사전에 집단이 나누어져 있는 자료를 통해 새로운 데이터를 기존의 집단에 할당하는 것이 목적이다.

 

2. 전통적 군집분석


 1) 기존 세분화 방법의 유형

 -임의로 나누는 방법 : 신규/기존 고객, 고객 등급 등

 -통계적 기법 - clustering, k-means 등


 2) 전통적 세분화 방법

 -변수를 선정하고 구간대로 나눈 다음, 이를 기준으로 격자형으로 단순히 나누고 집단이 적으면 병합하는 방식과 단순 clustering, k-means가 있다.


 *문제점

 (1) 단순 격자형의 경우 작업 시간이 오래 걸린다.

 (2) 후처리에서 병합할 때 기준이 명확하지 않다.

 (3) 분리된 격자 셀의 프로파일(profile)을 보고 유사한 집단끼리 나누어야 하는데, 집단 간 프로파일(profile)이 차이가 나지 않을 때가 있다.

      즉, 세분화 변수와 프로파일 변수는 달라야 한다.

 (4) 격자,  cluster, k-means 의 공통 문제 : 변수의 특성으로 인한 변동에 따라 의미 없이 고객 집단이 이동

    -첫달(A,B,C ) 둘째달(B,D,F)로 특성이 변화하거나  (A,B,C) 집단이 다음달에 분포가 바뀌거나  (A,B,C1)로 프로파일 자체가 변경되는 경우도 있다.


 3) 목표기반 세분화 방법

 -목표기반 세분화는 고객가치 또는 특정상품을 구매하는 고객을 타깃으로 세분화하는 방법이다.

 -해당 집단이 많이 존재하는 집단과 그렇지 않은 집단으로 구분한다.


 4) 프로파일링 방법

 -격자방식의 세분화 방식으로 프로파일링을 한 경우, 집단 간의 차이가 세분화 기준변수에 의해서 발생한다.

 -자동화 방식으로 세분화가 되고, 프로파일링 해야 동일한 데이터에 대해 일관된 품질의 결과가 나오게 되는데 이를 위해서는 프로파일링 기법이 필요하다.

 

 5) 세분화 수행기간

 -세분화를 수행하고 보고서를 작성하는 데 매우 오랜 시간이 걸리기 때문에 군집분석을 통한 세분화를 통해 기간을 단축할 수 있다.

 

 6) 세분집단 개수

 -마케팅 및 영업 전략수립을 할 때 전략적으로 집단을 상호배반적으로 나누는데, 이러한 경우 집단이 어느 정도 규모를 갖춰야 의미가 있으므로 보통 3~10개로 나눈다.

 -군집의 수를 늘리거나 줄일 때 전략적으로 집단을 상호 배반적으로 나누는데, 이러한 경우 상호배반적인 집단이 집단 내 분산의 크기가 줄어듦을 파악하는 방법으로

   결정한다.


 7) 거리

 -군집분석에서는 관측 데이터 간 유사성이나 근접성을 측정해 어느 군집으로 묶을 수 있는지 판단해야 한다.

 -연속형 변수 : 유클리드 거리, 표준화 거리, 마할라노비스 거리, 체비셰프 거리, 맨하탄 거리, 캔버라 거리, 민코우스키 거리

 -범주형 변수 : 자카드 거리, 자카드 계수

 #위의 거리 구하는 방식은 다른 군집분석 포스팅에 나와있습니다.


3. 계층적 군집방법

 : 계층적 군집방법은 n개의 군집으로 시작해 점차 군집의 개수를 줄여나가는 방법


 1) 최단 연결법 (single linkage, nearest neighbor)
 : n*n 거리행렬에서 거리가 가장 가까운 데이터를 묶어서 군집을 형성한다.

 : 군집과 군집 또는 데이터와의 거리를 계산해서 거리행렬 수정한다.

 : 수정된 거리행렬에서 거리가 가까운 데이터 또는 군집을 새로운 군집으로 형성한다.

 

 2) 최장 연결법(complete linkage, farthest neighbor)

 : 최단연결법과 같은 방법이나 거리가 먼 데이터나 군집을 묶어서 형성한다.

 

 3) 평균 연결법 (average linkage)

 : 최단연결법과 같이 거리가 가까운 데이터나 군집을 묶어서 형성하는데 그 거리를 구하는 식에서 평균을 사용한다는 차이가 있다.


 4) 와드 연결법(ward linkage)

 : 군집내 편차들의 제곱합을 고려한 방법

 : 군집 간 정보의 손실을 최소화 하기 위해 군집화를 진행


4. 비계층적 군집방법

 : n개의 개체를 g개의 군집으로 나눌 수 있는 모든 가능한 방법을 점검해 최적화한 군집을 형성하는 것


 1) K-평균 군집분석 (k-means clustering)

 -원하는 군집의 개수와 초기 값(seed)들을 정해 seed중심으로 군집을 형성한다.

 -각 데이터를 거리가 가장 가까운 seed가 있는 군집으로 분류한다.

 -각 군집의 seed값을 다시 계산한다.

 -모든 개체가 군집으로 할당될 때 까지 위 과정들을 반복한다.


 2) K-평균 군집분석의 특징

 -거리 계산을 통해 군집화가 이루어지므로 연속형 변수에 활용이 가능하다.

 -K개의 초기 중심값은 임의로 선택이 가능하며, 가급적이면 멀리 떨어지는 것이 바람직하며 초기값을 일렬로 선택하지 않은 것이 좋다.

 -초기 중심으로부터의 오차 제곱합을 최소화하는 방향으로 군집이 형성되는 탐욕적(greedy) 알고리즘이므로 안정된 군집은 보장하나 최적이라는 보장은 없다.


 <장점>

 : 알고리즘이 단순하며, 빠르게 수행되어 분석 방법 적용이 용이하다.

 : 계층적 군집분석에 비해 많은 양의 데이터를 다룰 수 있다.


 <단점>

 : 군집의 수, 가중치와 거리 정의가 어렵다.

 : 사전에 주어진 목적이 없으므로 결과 해석이 어렵다.

 : 잡음이나 이상값에 영향을 많이 받는다.

 : 볼록한 형태가 아닌 (non-convex)군집이 (예를들어 U형태의 군집) 존재할 경우에는 성능이 떨어진다.


5. 혼합 분포 군집(mixture distribution clustering) 


 -모형 기반(model-based)의 군집방법이며, 데이터가 k개의 모수적 모형(흔히 정규분포 또는 다변량 정규분포를 가정함)의 가중함으로 표현되는 모집합 모형으로부터

   나왔다는 가정 하에서 모수와 함께 가중치를 자료로부터 추정하는 방법을 사용한다.

 -k개의 각 모형은 군집을 의미하며, 각 데이터는 k개의 추정된 모형 중 어느 모형으로부터 나왔을 확률이 높은지에 따라 군집의 분류가 이루어진다.

 -흔히 혼합모형에서의 모수와 가중치의 추정 (최대가능도추정) 에는 EM알고리즘이 사용된다.


 -혼합 분포모형으로 설명할 수 있는 데이터의 형태

(1) 다봉형의 형태를 띄는 자료는 단일 분포로는 적합하지 않으며 대략 x개 정도의 정규분포의 결합을 통해 설명될 수 있을 것으로 예상한다.

(2) 원형의 형태를 띄는 자료는 여러 개의 이변량 정규분포의 결합을 통해 설명될 수 있을 것이다. (1),(2)번 모두 정규분포로 제한할 필요는 없다.


 1) EM 알고리즘의 진행 과정

- 각 자료에 대해 Z의 조건부분포(어느 집단에 속할 지에 대한)로부터 조건부 기댓값을 구할 수 있다.

- 관측변수 X와 잠재변수 Z를 포함하는 (X,Z)에 대한 로그-가능도 함수(이를 보정된 augmented 로그-가능도함수라 함)에 Z대신 상수값인 Z의 조건부 기댓값을

  대입하면, 로그 가능도함수를 최대로 하는 모수를 쉽게 찾을 수 있다. (M-단계) 갱신된 모수 추정치에 대해 위 과정을 반복한다면 수렴하는 값을 얻게 되고, 이는

  최대 가능도 추정치로 사용될 수 있다.

- (1) E-단계 : 잠재변수 Z의 기대치 계산

- (2) M-단계 : 잠재변수 Z의 기대치를 이용하여 파라미터를 추정

 * 반복 수행함에 따라 뭉퉁한 군집 분류가 점점 명확하고 작은 군집으로 분리되어 나타난다.


-혼합분포군집모형의 특징

 : k-평균군집의 절차와 유사하지만 확률분포를 도입하여 군집을 수행한다.

 : 군집을 몇 개의 모수로 표현할 수 있으며, 서로 다른 크기나 모양의 군집을 찾을 수 있다.

 : EM 알고리즘을 이용한 모수 추정에서 데이터가 커지면 수렴에 시간이 걸릴 수 있다.

 : 군집의 크기가 너무 작으면 추정의 정도가 떨어지거나 어려울 수 있다.

 : K-평균군집과 같이 이상치 자료에 민감하므로 사전에 조치가 필요하다.


6. SOM (Self-Organizing Map)

 : SOM (자가조직화지도) 알고리즘은 코호넨(Kohonen)에 의해 제시, 개발되었으며 코호넨 맵(Kohonen map)이라고도 알려져 있다.

 : SOM은 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도 형태로 형상화한다. 이러한 형상화는 입력 변수의 위치 관계를

  그대로 보존한다는 특징이 있다. 다시 말해 실제 공간의 입력 변수가 가까이 있으면, 지도상에도 가까운 위치에 있게 된다.


#즉 초기에 입력층에서 가중치로 연결(연결강도)되어 경쟁층에 하나의 지도형태로 펼쳐지게 되는 것


 -SOM 모델은 두 개의 인공신경망 층으로 구성되어 있다.

 (1) 입력층 (input layer : 입력벡터를 받는 층) : 입력 변수의 개수와 동일하게 뉴런 수가 존재한다.

 -입력층의 자료는 학습을 통하여 경쟁층에 정렬되는데 이를 지도(map)이라 부른다. 입력층에 있는 각각의 뉴런은 경쟁층에 있는 각각의 뉴런과 연결되어 있으며

  이 때 완전 연결(fully connected)되어 있다.

 (2) 2차원 격차(grid)로 구성된 경쟁층(competitive layer) : 입력벡터의 특성에 따라 벡터가 한 점으로 클러스터링 되는 층

 -SOM은 경쟁 학습으로 각각의 뉴런이 입력 벡터와 얼마나 가까운가를 계산하여 연결강도(connection weight)를 반복적으로 재조정하여 학습한다.

  이 과정을 거치면서 연결강도는 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자가 된다.

 -승자 독식 구조로 인해 경쟁층에는 승자 뉴런만이 나타나며, 승자와 유사한 연결 강도를 갖는 입력 패턴이 동일한 경쟁 뉴런으로 배열 된다.


 # SOM의 특징

 - 고차원의 데이터를 저차원의 지도 형태로 형상화하기 때문에 이해가 쉽다.

 -입력 변수의 위치 관계를 그대로 보존하기 때문에 실제 데이터가 유사하면 지도상에서 가깝게 표현된다. 이런 특징 때문에 패턴 발견, 이미지 분석 등에서 뛰어난

  성능을 보인다.

 -역전파(Back Propagation) 알고리즘 등을 이용하는 인공신경망과 달리 단 하나의 전방 패스(feed-forward flow)를 사용함으로서 속도가 매우 빠르다.

  따라서 실시간 학습 처리를 할 수 있는 모형이다.


#간단한 클러스터링

# Hierarchical Clustering


idx<-sample(1:dim(iris)[1], 40)
iris.s<-iris[idx,]
iris.s$Species<-NULL
hc<-hclust(dist(iris.s), method="ave")
plot(hc, hang= -1, labels=iris$Species[idx])






# K-means Clustering


data(iris)
newiris<-iris
newiris$Species<-NULL
kc<-kmeans(newiris, 3)

table(iris$Species, kc$cluster)
            
                  1  2  3
  setosa     50  0  0
  versicolor  0 48  2
  virginica   0 14 36


plot(newiris[c("Sepal.Length", "Sepal.Width")], col=kc$cluster)



#군집화 그래프


여기까지 알아보았습니당!!



반응형

'R' 카테고리의 다른 글

47. 비정형 데이터 마이닝 - 텍스트마이닝  (2) 2018.11.23
46. 연관분석  (0) 2018.11.23
44. 데이터마이닝-분류분석 3  (0) 2018.11.22
43. 데이터마이닝 - 분류분석 2  (0) 2018.11.22
42. 데이터마이닝-분류 분석  (0) 2018.11.22