개발자 끄적끄적

Clustering Analysis 본문

데이터 마이닝

Clustering Analysis

햏치 2023. 4. 12. 23:01

<군집(Cluster) : 주요 아이디어>
- 목표
  - 데이터 세트에 대한 통찰력을 생성할 목적으로 비슷한(동질적) 레코드들의 그룹(군집)형성

- 비슷한 고객 그룹으로 '시장을 세분화하는 데' 사용된다
  - characterize the clusters useful for the aims of the analysis
 - marketing strategy is tailored for each segment



<기타 적용>
- 원소 주기율표 : Mendeleev
- 생물 종 분류
- 주식 포트폴리오 그룹화 : balanced portforlios
- 경제 구조분석을 위한 회사 그룹화
- 육군 군복 크기 : 20 sizes with 5 measurements
- 마케팅 : 고객 정보를 이용한 시장 세분화
- 인터넷 검색엔진 : 사용자들이 검색한 검색어를 군집화하여 검색 알고리즘 향상



<2차원 이상으로 확장>
- 군집화는 눈으로 이루어진다
- 다차원의 경우, 다음과 같은 알고리즘이 필요
  - 거리 측정 방법
    - 군집을 형성하는 데에서 거리를 이용하는 방법

- 2개의 알고리즘 : 계층적 그리고 비계층적



<계층적 방법>
- 응집 방법
  - n-군집으로 시작(각각의 레코드를 자신의 군집으로)  
  - 하나의 군집이 남을 때까지 레코드들을 군집 안으로 합한다(완전한 데이터 세트)
  - 가장 많이 쓰인다

- 분할 방법
  - 전체를 포함하는 하나의 군집으로 시작
  - 더 작은 군집들로 계속 분할



<비계층적 방법>
- k-평균 군집화 방법
 - k개의 군집이 미리 정해져 있다
  - 계산 집약적이지 않으므로 대용량 데이터에서 선호



<거리측정>
- distance metric : dissimilarity measure
 - 레코드들 간
  - 군집들 간

- 2개의 레코드 간의 거리
  - 레코드 i와 레코드 j
  - 유클리드 거리가 가장 유명



<정규화>
- 문제점 : 원시적 거리 측정은 측정치의 단위에 크게 영향을 받는다
- 해법 : 먼제 데이터를 정규화(표준화)
  - 평균을 빼고 표준편차로 나눈다
  - z-scores라고도 부른다

- 22개 회사에 대해
  매출평균 = 8,914, 표준편차 = 3,550

- Arizona 매출 9,077의 정규화된 값
  (9,077 - 8,914)/3,550 = 0.046



<수치형 데이터의 여타 거리 측정>
- 두 레코드(i, j)간의 거리 : p개의 예측변수 사용
- 상관관계에 기반한 유사성: 거리 = 1 – 상관계수^2
- 통계적 거리 (마할라노비스)

- 맨해튼 거리 (절대 차이): 𝑑_𝑖𝑗=∑2_(𝑚=1)^𝑝▒|𝑥_𝑖𝑚−𝑥_𝑗𝑚 |
- 최대좌표거리: 𝑑_𝑖𝑗=max┬(𝑚=1,2,⋯𝑝) |𝑥_𝑖𝑚−𝑥_𝑗𝑚 |
- Gower의 유사도 (다양한 형식들을 혼합: 연속적 & 범주적 변수들을 포함하는 레코드인 경우)




<범주형 데이터의 유사성>
- 이진형 변수(0/1)로 구성된 2개 레코드 간의 거리를 측정하기 위해, 2x2 분할표 생성:

                  0     1   레코드j
레코드 i  0  a     b
              1  c     d
- 유사성 측도는 이 표에 근거: p=a+b+c+d (예측변수 개수)
- a: 두 레코드간 속성이 존재하지 않는 예측변수 개수
- d: 두 레코드간 속성이 존재하는 예측변수 개수
- 매칭 계수 = (a+d)/p
- 자카드 계수 = d/(b+c+d)  : 무속성 일치인 a는 무시
  - “1” 매칭이 “0” 매칭보다 유사성이 훨씬 드러나는 경우에 사용(e.g. “Corvette 스포츠카 소유” : 1 이 0보다 두 레코드간의 유사성에 더 큰 의미가 있음)




<군집 간의 거리 측정(군집A에서 군집B로)>
- 최단 거리(minimum distance)
 - 단일연결법('single' linkage)이라고도 한다
  - 두 군집 간의 거리는 가장 가까운 레코드 Ai와 Bj쌍 사이의 거리이디

- 최대 거리(maximum distance)
 - 완전연결법('complete' linkage)이라고도 한다
  - 두 군집 사이의 거리는 서로 가장 먼 레코드 Ai와 Bj 쌍 사이의 거리이다



<평균거리(average distance)>
- 평균연결법(‘average’ linkage)이라고도 함
- 두 군집 간의 거리는 모든 가능한 거리 쌍의 평균이다



<중심거리(centroid distance)>
- 두 군집 간의 거리는 두 개의 군집 중심점('centroid' linkage)사이의 거리이다
- 중심점은 군집 내 모든 레코드들을 변수 별로 평균한 벡터이다



<계층적 군집화 단계(응집 방법 사용)>
1. n 군집으로 시작 (각각의 레코드는 자신의 군집)
2. 가장 가까운 레코드 2개를 하나의 군집으로 병합
3. 각각의 연속적 단계에서, 서로 가장 가까운 2개의 군집이 병합된다

덴드로그램은 밑에서 위로 이 과정을 보여준다




<덴그로그램 읽기>
- 군집화 과정 보기: 아래쪽에 연결된 선들이 먼저 병합된다
  - New England and United will be merged first, then Madison and Northern

- 군집의 개수 결정: 주어진 “군집 간의 거리”에서, 수평선은 군집을 생성하기 위해 멀리 떨어진 군집들을 교차한다




<군집 타당성>
- 목표 : 의미 있고 유용한 군집을 얻는 것

- 군집의 바람직한 특성들
  1. Cluster Interpretability(군집의 설명 가능성)
  - 군집에 사용된 각 변수들의 요약통계량을 구한다
  - 또한 군집화에 사용되지 않은 변수 측면에서 군집을 검토한다
  - 군집에 적절한 라벨을 붙인다.
  - 개별 변수 값의 히트맵을 시각적으로 확인해 각 군집을 더 특성화 가능

  2. Cluster Stability(군집의 안정성) – 군집들과 군집 평가는 입력에서 작은 변화에 민감한가?
    -데이터를 A, B로 나누어서  A를 이용해서 군집 평균을 구한 후 이를 이용해서 B의 군집분석 결과와  A+B에서 군집분석결과와 유사한가를 비교

  3. Separation(군집의 분리) – 군집 내 변동에 대한 군집 간 변동의 비율을 검토(높을수록 좋다)

  4. Number of Clusters(군집의 개수) - 분석 목적에 맞는 유용한 군집 개수




<비계층적 군집 : k-평균 군집화 알고리즘(K-Means Clustering Algorithm)>
1. 원하는 군집의 개수, k를 선택  
2. k개의 군집으로 분할하면서 시작
 - k 중심점을 임의로 선택하는 것에 기반
3. 매 단계마다, 각각의 레코드를 가장 가까운 중심점의 군집으로 이동
4. 중심점 재계산, 3단계 반복
5. 레코드 이동이 군집 내 분산을 증가시킬 때 중단
   (주의) k=3으로 가정하고 동영상에서 설명



<k-평균 알고리즘 : k를 선택하고 초기 분할>
- 외적 고려 사항(사전지식, 실질적 제약 조건)이 있을 때 이를 고려해서 k를 선택
    또한 약간 다른 k로 실험해서 군집 결과를 비교
  e.g., “얼마나 많은 시장 세분화를 원하는가?”

- 군집으로의 초기 분할은 임의적이거나 domain 지식에 근거할 수 있다.
   만약 임의 분할이라면, 여러 개의 k로 임의 분할로 과정을 반복해서 비교.

'데이터 마이닝' 카테고리의 다른 글

사회연결망 분석  (0) 2023.04.27
Collaborative Filtering(콘텐츠 기반 추천)  (0) 2023.04.07
분류기 ROC  (0) 2023.03.21