머신러닝 스터디/머신러닝

군집 분석

hozy연 2022. 10. 3. 02:00

# 1. 군집화란?

- 복잡한 데이터의 구조에 대하여 알 수 있는 방법 제공

- 군집화 알고리즘은 특정 유사도(similarity) 척도에 의존함

- 무방향성 지식 발견 도구(특정 목표변수 없음, 사전에 분류된 데이터도 없고, 독립변수 종속변수의 구분 역시 없음)

- 비슷한 레코드의 군집을 찾음 (marketing-segment라고 부름)

- 자동 군집 탐지는 혼자서는 거의 쓰이지 않는 데이터마이닝 기법임 (군집을 찾는 것이 궁극적인 목표가 아님)

 

* 자동 군집 탐지 알고리즘

1. K- 평균 알고리즘

2. 가우스 혼합 모형

3. 응집 군집화

4. 분할 군집화

5. 자기 조직화 지도 (SOM)- 신경망

 

# 2. 차원이란?

- 어떤 것을 설명하기 위해 독립적으로 측정되어야 할 것들

- dimension/feature/변수/필드 라고 부름

- 차원의 수가 증가하면 군집을 가시화하기가 더 어려워짐

 

 

# 3. 유사성의 형식적인 정의

1. 모든 필드들이 수치형일 경우

    - 유클리드식 거리

    - 코사인 거리 (두 벡터 사이의 각) : 1-cos각 

      (1을 빼주는 이유: cos 0=1, cos90=0 즉, 코사인 사이각이 가장 작을 때=거리가 가까울때 가장 큰 숫자를 반환. vice versa.

        따라서 1을 빼줘서 거리적으로 클 때 큰 숫자를 반환)

    - 맨하튼 거리

 

2. 범주형일 경우

     - 같은 값을 갖는 특징을 카운팅

     - 전체 필드의 수 중 동일한 것의 비율   

 

 

#4. 군집 적합성 검사/ 군집화 품질의 평가(Cluster goodness)

1) 군집간의 평균 거리 계산

2) 군집 멤버들과 최근접 이웃 군집 멤버들간의 거리 계산

3) 한 멤버의 실루엣 점수: (이웃 군집의 멤버와의 평균거리 - 군집 내 타 멤버들과의 평균거리)/(이웃 군집의 멤버와의 평균 거리)

즉, 한 군집의 실루엣 점수는 군집 내 멤버들의 실루엣 점수의 평균

     전체 데이터 집합의 실루엣 점수는 전체 레코드의 실루엣 점수의 평균 --> 군집의 적정성 평가

실루엣 점수 구하기

- K를 바꿔가면서 군집화하고 실루엣 스코어 계산해서 어떤 때에 값이 가장 좋은 지 평가하게 됨

- 단점: 군집 수가 많을 경우 많은 계산이 필요함

 

 

#5. 군집화를 위한 데이터 준비

   

    1) 단위(Scaling)

        - 0과 1사이의 값으로 mapping

        - 각 변수의 평균으로 나눔 (indexing a variable)

        - 각 변수로부터 평균값을 빼고 표준편차로 나눔 (표준화, Z-점수로의 변환)

        - 벡터 정규화 (vector normalization): 하나의 레코드에 해당하는 벡터의 크기가 1이 되도록 길이를 조정(방향성만 보겠다는 의미)

           Ex. 첫번째 레코드: 부채 200,000원, 자산 100,000원 / 두번째 레코드: 부채 10,000원, 자산 5,000원

                 정규화 후 두 레코드는 부채와 자산의 비율이 같으므로 동일하게 보임

 

   2) 가중치(Weight)

        - 어떤 변수가 다른 변수보다 더 중요하다는 정보를 입력

        - 가중치를 이용하여 비즈니스 상황의 지식을 기반으로 한 편향을 도입

 

#6. 군집 해석

   1) 군집의 중심값들을 이용하여 군집의 특징 인식

   2) 군집들 간의 차이점을 통해서 각 군집의 특징 인식 

 

# 7. 자동 군집 탐지 알고리즘 설명

 

1. K-means 알고리즘

    -K는 상수: 특정 정해진 수이며 분석가가 정해줘야함

 

    *K평균 알고리즘 3단계

      step 1. 임의로 K개의 데이터 포인트를 시드로 선택

      step 2. 각 레코드를 가장 가까운 시드에 배정

      step 3. 군집의 중심성 찾기- 중심성들은 알고리즘 다음 반복에서의 시드가 됨

      step 2, 3가 반복됨

     군집의 경계가 더이상 변하지 않을 때까지 계속 됨

 

초기 k개 시드를 random하게 할당
step 2, 3

 

Ex.학생키로 군집화 ({150, 162, 164, 178, 180}, K=2, 초기 seed=162, 164)

      1차 배정 K1={150, 162}, K2={164, 178, 180}

                   평균 계산 S1=156, S2=174

      2차 배정 K1={150, 162, 164}, K2={178, 180} 

                    평균 계산 S1=158.7, S2=179

      3차 배정 K1={150, 162, 164}, K2={178, 180} 

                    변경이 없으므로 종료

 

* 단점

   - K-평균 군집화는 항상 좋은 군집 결과를 보장하지 않음 (실루엣 평가도 완전히 믿을 것은 못됨)

   - 특히 중첩되는 군집들에는 K-평균 군집화가 적절하지 않음

   - 평균값을 이용하므로 이상치의 영향을 많이 받음 (hard 버전이기 때문에 제약이 존재)

   - median 을 쓰는 방법이 있음 (이상치에 강건함)

      Ex. K-Medians, K-Medoids, K-Modes (hard 버전: 한 레코드는 반드시 한 군집에 배정되어야한다는 제약)

            K-평균 군집화의 soft버전(확률 적용, 가우시안 혼합)

 

 

* K의 선택 (실루엣 지수로 평가하는 방법 존재)

   - 군집 내에서의 레코드간 평균거리 (가까울수록 good)

   - 군집들 사이의 거리 (멀면 good)

   - 유용성 평가를 위해서는 좀더 주관적인 평가가 필요함

 

 

2. 가우스 혼합 모형(EM: Expectation-Maximization clustering)

 

     - K-평균 군집화 방법의 확률적인 변형

     - 가우스 분포 (정규화분포를 일반화시킨 것)

     - 시드들을 가우스 분포의 중심으로 취급

 

    * 가우스 혼합 모형 알고리즘 단계

    step 1. 추정 단계

                각 가우스 분포가 각 데이터 점에서 가지는 책임(resposibility)을 산출

                중심에 가까울수록 확률이 높고, 멀수록 확률이 낮다(가우스 분포니까 당연!)

   

    step 2. 최대화 단계

                 새로운 책임(resposibility)을 반영하여 각 군집에 대한 새로운 중심점을 계산

                 주어진 가우스 분포에 대한 중심점은 가우스 분포에 대한 가중치가 반영된 모든 점들의 평균

 

- K-평균과는 다른 모양

   1) 정규분포는 2개의 파라미터(평균과 표준편차를 가짐)

   2) 표준편차가 모든 차원에서 동일할 필요는 없음 (곡선이 꼭 원이 될 필요가 없음 타원 가능)

가우스 분포

 

 

3. 응집 군집화 Bottom-up

- 나중에 정리...

 

4. 분할 군집화 Top-down

- 의사결정나무의 유사한 접근법

나중에..정리...

 

 

 

5. 자기 조직화 지도 (SOM: Self-Organizing Maps)

 

- 무방향성 데이터 마이닝 기법

- 코호넨 신경망이라고도 부름

- 인공 신경망을 이용한 군집화 기법


* 피드 포워드 신경망과의 차이

   - 다른 위상: 하나의 입력층과 하나의 출력층 (은닉층 X)

                      즉, 입력층이 직접 출력층에 있는 노드와 연결됨

                     

                      1. 입력층: 각 단위는 하나의 변수에 연결, 각 간선에는 독립적인 가중치를 가짐

                      2. 출력층: 다수의 단위로 구성, 각각의 단위는 모든 입력층의 단위들과 연결, 격자 형태로 배치(단위들끼리 연결X)

 

   - 학습하는 방법 : 얇은 철판에 공을 던지는 것을 상상하기. 같은 자리에 여러번 공을 던지면 깊게 파이고 다른 자리에 던지면 조금만 파임


 

- SOM은 승리한 가중치 뿐만 아니라 승리한 단위 바로 근처에 있는 단위들의 가중치도 강화함

   근접도 매개변수: 근접한 단위들의 범위와 조정의 정도 조절 (범위에 따라 근접한 노드들까지 weight 조정에 포함시킬지 결정할 수 있음)

   따라서, 서로 비슷한 군집들이 더 가까이 뭉치도록 해줌

'머신러닝 스터디 > 머신러닝' 카테고리의 다른 글

장바구니 분석과 연관규칙  (0) 2022.10.02
의사결정나무(Decision Tree)  (0) 2022.09.28