새소식

데이터분석준전문가(ADsP)/3과목

[정형데이터 마이닝] 군집분석

  • -

목차

    1. 군집분석 (clustering Analysis)

    개요

    관측된 여러 개의 변수로부터 유사성에 기초하여 n개의 군집으로 집단화하여 집단의 특성을 분석하는 다변량 분석
    변수들이 속한 모집단 범주에 대한 사전정보가 없는 경우에 관측값들 사이의 거리(또는 유사성)를 이용하여 개체들을 자연스럽게 몇 개의 그룹 또는 군집(cluster)으로 나누는 분석법
    각 객체(대상)의 유사성을 측정하여 유사성이 높은 대상 집단을 분류하고, 군집에 속한 객체들의 유사성과 서로 다른 군집에 속한 객체간의 상이성을 규명하는 분석방법이다.
    특성에 따라 고객을 여러 개의 배타적인 집단으로 나누는 것이다.
    결과는 구체적인 군집분석 방법에 따라 차이가 나타날 수 있다.
    군집의 개수나 구조에 대한 가정 없이 데이터들 사이의 거리를 기준으로 군집화를 유도한다.
    마케팅 조사에서 소비자들의 상품구매활동이나 life style에 따른 소비자군을 분류하여 시장 전략 수립 등에 활용한다.

    군집분석은 통계적 방법이기도 하지만 최근 관시이 높아진 ML(머신러닝)의 대표적인 방법이다.
    머신러닝의 종류

    지도학습(Supervised Learning)

    정답이라고 할 수 있는 라벨(label)이 있는 데이터로 학습 시키는 경우
    예) 의자/ 탁자 라벨이 있는 데이터로 학습시키는 경우
    유형: 로지스틱 회귀분석/ 인공신경망분석/의사결정나무 / SVM/랜덤포레스트 등

    비지도학습 (UnSupervised Learning)

    정답인 라벨(label)이 없는 경우 데이터로 구분하는 경우
    예) 경영학의 시장 세분화
    유형: 군집분석/ 장바구니분석/ 자기조직화지도(SOM) 등


    군집분석의 종류
    계측적 군집 (Hierarchical Clustering)
    가까운 개체끼리 차례로 묶거나 멀리 떨어진 개체를 차례로 분리해 가는 군집방법
    한 번 병합된 개체는 다시 분리되지 않음


    비계층적 군집 (Non-Hierarchical Clustering) or 최적분화방법(Partitioning Method)
    -다변량 자료의 산포를 나타내는 여러 측도를 이용하여 판정기준을 최적화 시키는 방법으로

     

    02 군집을 나누는 방법

    계층적 군집

    군집의(cluster)의 개수를 모를 때 쓸 수 있다.
    군집의 개수(optimal number of cluster)를 결정하기 위해 사용되기도 한다.

    비계층적 군집

    한 번 분리된 개체도 반복적으로 시행하는 과정에서 재분류될 수 있음
    대표적인 예로 K-means Clustering 이 있음
    사전에 군집(cluster)의 개수가 정해졌을 경우 사용
    여기서 K는 군집의 개수를 의미한다.
    그러나 일반적으로 군집의 개수를 판단할 수 있는 다양한 기준을 이용하여 군집의 개수를 최종적으로 결정한다.


    군집 분석의 예
    1. 생물의 특성에 따라 생물을 분류(생물분류학- 종속과목강문계)
    2. 성격의 유형에 따라 사람을 분류(심리학-MBTI)
    3. 인체의 체형에 따라 분류하는 표준 치수체계 (55,66,77등 사람의 사이즈대로 분류)
    4. 고객의 특성에 따라 분류하는 시장세분화(경영학-segmentation)

    군집분석에서 중요한 사항

    요인분석or주성분분석: 차원축소
    요인분석과 군집분석을 비교해서 이해해보자.
    엑셀에서 열의 값은 차원이다 . 행은 관측값이다.(observation)
    이 행에 있는 observation(관측값)을 하나로 묶어서 그룹으로 만드는걸 군집분석이라고 한다.
    요인분석은 열을 묶어서 요인으로 만드는것이며열과 행을 요인분석과 군집분석으로 분류할 수 있다.

    군집분석의 예) market segmentation
    같은 군집끼리는 같지만 그룹과 그룹끼리는 이질적이어야 한다.


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

    군집을 어떻게 나눌것일가?

    데이터의 변수를 이용하여 각 관찰값(개체/케이스) 사이의 거리를 측정
    거리의 개념은 유사도(Similarity)비유사도는(Dissimilarity)의미
    거리(Distance)와 비유사도 비례관계
    If 거리 (Distance) 멀어지면 비유사도(Dissimilarity)도 올라간다
    If거리 (Distance) 멀어지면, 유사도는(simillarity)는 내려간다.
    그러므로 군집분석에서 거리는 매우 중요한 측정도구이다.(Item)회귀분석에서는 변수 자체가 중요했다면 여기서는 거리를 어떻게 정의하고 측정할 것인가가 더 중요하다문제는 이 거리를 측정하는 방법이 변수의 특성과 관계가 깊다는 점이다.


    - 과거에 비해 군집분석 자체는 매우 쉬워졌다.
    군집분석은 기본적으로 계산량이 많다.
    관측값(개체/케이스)가 증가하면서 계산량이 기하급수적으로 증가하게 되는데
    20년전까지만 해도 가능은 하지만 만만하지 않은 작업이었다.
    - 컴퓨터 하드웨어 발달과 소프트웨어 다변화
    지금은 데이터만 넣으면 클릭만으로 결과를 볼 수 있게 되었고
    너무 쉽게 결과를 볼 수 있다 보니 문제가 발생한다.
    깊게 데이터를 이해하고 넣지 않고 아무것이나 넣다보니 문제가 발생할 수 있따.
    -군집분석은 정답이 있을까?
    정답이 없다.
    -군집분석의 정답을 찾기 위한 p-값은 있을까?
    앞에서 살펴본 통계적 접근법의 경우 p-value가 등장하나 군집분석드이 경우 p-value로 의사결정을 하지 않음
    이런 이유로 과거에는 통계에서 꽤나 무시당하던 시기도 있었다.
    문제는 변수가 많아지고 방법(알고리즘)에 따라 결과도 달라짐
    통계 프로그램별로 사용하는 defalt algorithm에 따라 같은 데이터가 다른 결과를 보여준다.
    왜 이렇게 clustering 되었을까?

    군집분석의 핵심
    다른 군집 간에는 서로 이질적이어야 한다.
    같은 군집내에서는 동질적이어야 한다.

    03 거리

    연속형 변수의 거리  수학적 거리 (math matical distance)
    유클리드 거리 (euclidian distance)
    맨하튼 거리 (manhatten distance)
    민코프스키 거리 (minkowski distance)
    통계적 거리
    표준화 거리 (standartized distance)
    마할라노비스 거리 (mahalanobis distance)

    연속형 변수의 거리


    수학적 거리 (mathmAtical distance)

    유클리드 거리는 최단 거리라고 한다면 맨하탄거리는 직각으로 움직이는 것이다.

    맨하튼 거리 ( manhattan distance)
    시가(city -block) 거리 라고도 합
    두 위치의 차이의 절대값을 합한 값

    택시 거리
    Chessboard distance (체스판 같이 생겨서 체스보드 거리라고도 한다,)

    민코프스키 거리 ( minkowski distance)
    비유클리드 거리로 물리학에서 만들어진 개념
    m차원 민코프스키 공간에서의 거리로 일반화된 거리 개념
    M=1 일 때, 맨하튼 거리와 같음(L1 norm 이라고도 함)
    M=2 일 때, 유클리드 거리와 같음 (L2 norm 이라고도 함)


    통계적 거리( statitical distance)
    표준화 거리 (standarlized distance)
    각 변수를 해당변수의 표준편차로 척도 변환 후 계산한 유클리드 거리
    즉 표준화한 뒤 계산한 유클리드 거리로
    척도 (scale)의 차이, 분산의 차이로 인한 왜곡을 피할 수 있음
    표본분산의 대각행렬

    마할라노비스 거리 (mahalanobis distance)
    표준화 거리가 표준화한 뒤 계산한 유클리드 거리라면
    마할라노비스 거리는 여기에 변수단의 상관성(분포형태)를 동시에 고려한 것으로
    척도(scale)의 차이, 분산의 차이로 인한 왜곡을 피할 수 있으며
    동시에, 변수간 상관성이 있을 때의 방향성을 고려하여 거리를 구할 수 있고
    이는 데이터의 분포가 조밀한 축에서의 거리는 더 가깝게, 데이터의 분포가 조밀하지 않은
    축에서는 거리를 더 멀게 계산하도록  

    04 계층적 군집분석(Hierarchical Clustering)

    군집을 묶는 방법

    합병에 의한 방법(Agglomerative hierarchical methods) 가까운 케이스(개체)끼리 묶어 군집을 이루어 나가며 마지막엔 한개의 군집이 됨
    분할에 의한 방법(Divisive hierarchical methods) 전체를 두개의 군집으로 분할하는 것으로 시작하여 다른 개체들로부터 나누어 마지막엔 각각의 개체들이 개별 군집이 됨
    ex)덴드로그램(dendrogram)을 그려서 상하관계 선후관계를 그려볼 수 있음

     

    군집을 묶는데에는 정답이 없다. 결국 연구자의 판단에 달려있다.

    계층적 군집분석의 알고리즘(alrorithm)종류

    합병형 단일(최단)연결법

     
    평균 연결법

    Between-groups linkage
    Within-groups Linkage
    Ward연결법  
    완전(최장)연결법  
    중심연결법  
    분리형 다이아나 방법  

     

    계층적 군집분석의 단계

    1) Distance Measure 를 결정 - 거리, 측도
    2) Clustering Algorithm을 결정 - 거리를 분석하는 방식은 여러가지임, 클러스터의 거리를 어떤 방식으로 정할지 결정하는것
    3) 군집의 개수를 결정 (계층적 군집분석에서는 크게 중요하지 않음)
    4) 분석의 타당성을 검토 (계층적 군집분석에서는 크게 중요하지 않음)

    주의 사항
    -사용되는 방법론에 적용된 수리적 알고리즘의 차이
    -여기서 말하는 수리적 알고리즘이란 clustering alforithm을 의미
    -중요한 것은 Distand Measure와 Clustering Algorithm이 달라지면 군집분석 결과가 달라질 수 있음
    -문제는 변수가 많아지고 알고리즘이 다르면 왜 이런 결과가 나오는지 알 수 없음
    -통계 프로그램별로 사용하는 Default algorithm이 달라 같은 데이터로 분석을 해도 다른 결과가 나올 수 있음
    -왜 이렇게 Clustering이 되었는지를 이해하기 위해서는 경험이 중요

    복잡 미묘한 점
    분야마다 서로 다른 용어 사용
    책마다 다른 이름 사용
    ML이 발달할 수록 더 많은 복잡한 알고리즘 출현
    심지어 프로그램마다 default도 다름

     

     

    최단연결법 (single linkage, nearest neighbor)

    n*n ' 거리행렬에서 거리가 가장 가까운 데이터를 묶어서 군집을 형성한다. 군집과 군집 또는 데이터와의 거리를 계산 시 최단거리(min)를 거리로 계산하여 거리행렬 수정을 진행한다. 수정된 거리행렬에서 거리가 가까운 데이터 또는 군집을 새로운 군집으로 형성한다.
    그렇다면 우리가 분석한 결과의 군집분석이 맞았는지 틀렸는지 어떻게 알수있나? 엄격하게 말한다면, 알 수 없다. 왜냐하면 군집분석은 처음부터 Label이 없는 데이터를 이용해 관찰값 간의 거리(유사성)을 바탕으로 묶는 과정이기 때문에 관찰자의 기준에 따라 달라질 수 있다. 그렇기 때문에 논리적으로 설명 가능한 결과를 보고자 노력해야 함.

     

     

    최장 연결법(complete linkage, fathest neighbor)

    군집과 군집 또는 데이터와의 거리를 계산할 때 최장거리(max)를 거리로 계산하여 거리행렬을 수정하는 방법이다. 

    거리의 해석을 쉽게 하기 위해 유클리드 거리는 제곱한 값을 쓴다. 

     

    와드 연결법(ward linkage)

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

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

     

    군집화

    거리행렬을 통해 가장 가까운 거리의 객체들간의 관계를 규명하고 덴드로그램을 그린다. 

    덴드로그램을 보고 군집의 개수를 변화해 가면서 적절한 군집 수를 선정한다. 

    군집의 수는 분석 목적에 따라 선정할 수 있지만 대부분 5개 이상의 군집은 잘 활용하지 않는다. 

    군집화 단계 

    1) 거리행렬을 기준으로 덴드로그램을 그린다. 

    2) 덴드로그램의 최상단부터 세로축의 개수에 따라 가로선을 그어 군집의 개수를 선택한다. 

    3) 각 객체들의 구성을 고려해서 적절한 군집수를 선정한다. 

     

    분할적 군집(Partitonal clustering)

    프로토타입 K중심군집 K평균군집
    K중앙값 군집
    K-메도이드 군집
    퍼지 군집   
    분포기반 혼합분포군집  
    밀도기반 중심밀도 군집  
    밀도기반  

     

    04 비계층적 군집분석

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

    k-평균 군집분석(k-means clustering)의 개념 

    주어진 데이터를 k개의 클러스터로 묶는 알고리즘으로, 각 클러스터와 거리 차이의 분산을 최소화하는 방식으로 동작한다. 

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

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

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

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

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

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

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

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

    - 초기 중심값을 임의로 선택할 때 일렬(위아래, 좌우)로 선택하면은 군집 혼합되지 않고 층으로 나누어질 수 있어 주의하여야 한다. 초기 중심값의 선정에 따라 결과가 달라질 수 있다. 

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

     

     

    05 혼합 분포 군집(mixture distribution clustering)

    개요

    모형기반(model-based)의 군집 방법이며, 데이터가 k개의 모수적 모형(흔히 정규분포 또는 다변량 정규분포를 가정함)의 가중합으로 표현되는 모집단 모형으로부터 나왔다는 가정하에서 모수와 함께 가중치를 자료로부터 추정하는 방법을 사용한다. 

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

     

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

    (a)는 자료의 분포형태가 다봉형의 형태를 띠므로 단일 분포로의 적합은 적절하지 않으며, 대략 3개 정도의 정규분포 결합을 통해 설명될 수 있을 것으로 생각할 수 있다. 

    (b)의 경우에도 여러 개의 이변량 정규분포의 결합을 통해 설명될 수 있을 것이다. 

    두 경우 모두 반드시 정규분포로 제한할 필요는 없다. 

     

     

     

    06 SOM(Self Organizing Map)

    개요 

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

    SOM은 비지도 신경망으로 고차원의 데이터를 이해하기 쉬운 저차원의 뉴런으로 정렬하여 지도의 형태로 형상화한다. 이러한 형상화는 입력 변수의 위치 관계를 그대로 보존한다는 특징이 있다. 다시 말해 실제 공간의 입력 변수가 가까이 있으면, 지도상에도 가까운 위치에 있게 된다. 

     

    성 

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

    입력층(Input layer:입력벡터를 받는 층)

    입력 변수의 개수와 동일하게 뉴런 수가 존재한다. 입력층의 자료는 학습을 통하여 경쟁층에 정렬되는데, 이를 지도(map)이라고 부른다. 입력층에 있는 각각의 뉴런은 경쟁층에 있는 각각의 뉴런들과 연결되어 있으며, 이 때 완전 연결(fully connected)되어 있다.

     

    경쟁층(competitive layer: 2차원 격차(grid)로 구성된 층) 

    입력벡터의 특성에 따라 벡터가 한 점으로 클러스터링 되는 층 SOM은 경쟁 학습으로 각각의 뉴런이 입력 벡터와 얼마나 가까운가를 계산하여 연결 강도(connection weight)를 반복적으로 재조정하여 학습한다. 이 과정을 거치면서 연결강도는 입력 패턴과 가장 유사한 경쟁층 뉴런이 승자가 된다. 입력 층의 표본 벡터에 가장 가까운 프로토타입 벡터를 선택해 BMU(Best-Matching-Unit)라고 하며, 코호넨의 승자 독점의 학습 규칙에 따라 위상학적 이웃(topological neighbors)에 대한 연결 강도를 조정한다. 승자 독식 구조로 인해 경쟁층에는 상자 뉴런만이 나타나며, 승자와 유사한 연결 강도를 갖는 입력 패턴이 동일한 경쟁 뉴런으로 배열된다.

     

    특징

    고차원의 데이터를 저차원의 지도 형태로 형상화하기 때문에 시각적으로 이해가 쉽다. 입력 변수의 위치 관계를 그대로 보존하기 때문에 실제 데이터가 유사하면 지도상에서 가깝게 표현된다. 이런 특징 때문에 패턴 발견, 이미지 분석 등에서 뛰어난 성능을 보인다. 

    역전파(Back Propagation)알고리즘 등을 이용하는 인공신경망과 달리 단 하나의 전방 패스(feed-forward flow)를 사용함으로써 속도가 매우 빠르다. 따라서, 실시간 학습처리를 할 수 있는 모형이다. 

     

    SOM과 신경망 모형의 차이점

    구분 신경망 모형  SOM
    학습방법  오차역전파법 경쟁학습방법 
    구성  입력층, 은닉층, 출력층 입력층, 2차원격자(grid) 형태의 경쟁층 
    기계 학습 방법의 분류  지도학습(Supervisesd Learning) 비지도 학습(Unsupervised Learning)

     

    07 최신 군집분석 기법들 

    iris 데이터를 활용한 기법 확인 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)

     

    반응형
    Contents

    포스팅 주소를 복사했습니다

    이 글이 도움이 되었다면 공감 부탁드립니다.