'단단한 머신러닝' 책과 스터디 내용을 기반으로 작성하였습니다.
9.1 클러스터링 학습 문제
- 클러스터링
- 서로 유사한 속성을 갖는 데이터를 같은 군집으로 묶어주는 작업
- 서로 교차하지 않는 여러 개의 부분 집합으로 분할한 것
- 클러스터의 결과는 클러스터 레이블 벡터를 포함한 원소로 표현됩니다.
9.2 성능척도
1) 클러스터 내 유사도 vs 클러스터 간 유사도
- 클러스터 내 유사도 : 같은 클러스터 내의 데이터 포인트 간의 거리가 가까운 정도
- 클러스터 간 유사도 : 서로 다른 클러스터 간 데이터 포인트들의 거리가 가까운 정도
- 이상적인 상황 : 클러스터 내 유사도는 높고, 클러스터 간 유사도는 낮은 경우
2) 외부 지표 vs 내부 지표
- 외부 지표 : 클러스터링 결과와 다른 참고 모델 비교
- 내부 지표 : 다른 참고 모델을 사용하지 않고 데이터만 사용하는 것
- 자카드 계수
- 두 데이터 집합 간의 유사도를 측정하는 지표
- 두 클러스터 간 공통 원소의 비율로 계산
- FM 지수
- Rand 지수
- 모든 데이터 쌍에 대해 클러스터링이 올바르게 수행되었는지의 비율
- DB 지수 (DBI)
- 클러스터링의 품질을 평가하는 지표, 클러스터 내 응집도와 클러스터 간 분리도의 비율
- 작을 수록 좋습니다.
- Dunn 지수 (DI)
- 클러스터 내 거리와 클러스터 간 최대 거리의 비율을 기반
- 클수록 좋습니다.
9.3 거리 계산법
1) 계산 척도의 성질(dist함수)
- 비음수성 : 최소 0이상
- 동일성
- 대칭성
- 삼각부등식 성질
2) 명/서/등/비
- 명목 척도: 형식 상의 부여, ex) 남: 0, 여: 1
- 서열 척도: 높고 낮음의 구분 가능 ex) 학년, 순위 등
- 등간 척도: 연속선상에 수치부여 ex) 온도
- 비율 척도: 절대적인 0에 의한 측정 ex) 무게, 키, 소득수준 등
3) 비척도 거리
- 두 점 사이의 거리를 측정하는 방법 중 하나로, 유클리드 거리나 맨해튼 거리와 같은 척도를 따르지 않는 방법
- 척도가 아닌 다른 특성에 의해 거리가 결정
4) 거리 척도 학습
- 데이터의 특성에 따라 최적의 거리 측정 방법을 학습하는 것
- 주어진 데이터의 특성을 최대한 반영하여 두 점 사이의 거리를 측정하는 척도를 학습, 분류나 클러스터링 등의 작업을 더욱 효과적으로 수행할 수 있도록 도움
9.4 프로토타입 클러스터링
1) k 평균 클러스터링 알고리즘
- 클러스터링을 주어진 데이터를 K개의 클러스터로 묶는 알고리즘
- 과정
- 데이터 포인트를 임의로 선택하여 초기 클러스터들의 중심 설정
- 각 중심점에서 가장 가까운 클러스터 중심에 데이터 포인트들의 클러스터 할당
- 클러스터 중심을 해당 클러스터에 속한 데이터 포인트들의 평균 위치로 업데이트
- 클러스터 중심의 위치가 변하지 않을 때까지 2번과 3번의 과정을 반복
2) 가우시안 혼합 클러스터링
-
각 데이터 포인트가 어떤 클러스터에 속하는지 '확률적으로' 할당하는 소프트 클러스터링 방법
-
데이터를 여러 개의 가우시안 본포를 가진 클러스터로 구분하는 방법
-
주어진 데이터 세트가 여러 개의 다른 가우스 분포를 가진 데이터들의 집합으로 혼합된 것으로 보고, 각 가우스 분포를 찾아내는 것이 GMM 클러스터링의 목표
-
과정
- 초기화
- 초기 가우시안 분포의 파라미터와 각 분포의 가중치를 임의로 설정.
- 이때 가중치는 각 데이터 포인트가 해당 가우시안 분포에 속할 확률을 의미
- Expectation 단계(E-step)
- E-step에서 계산한 확률을 사용하여 가우시안 분포의 파라미터와 가중치를 업데이트함
- 각 파라미터는 해당 클러스터에 속할 확률이 높은 데이터 포인트글에 더 큰 영향을 받도록 업데이트
- Maximization 단계(M-step)
- E-step에서 계산한 확률을 사용하여 가우시안 분포의 파라미터와 가중치를 업데이트함
- 각 파라미터는 해당 클러스터에 속할 확률이 높은 데이터 포인트들에 더 큰 영향을 받도록 업데이트
- 수렴
- 로그-우도(log-likelihood)가 특정 임계값 이하로 변하지 않거나, 최대 반복 횟수에 도달할 때까지 E-step과 M-step을 반복
- 결과
- 알고리즘이 수렴하면, 각 데이터 포인트를 가장 높은 확률을 가진 클러스터로 할당
9.5 밀도 클러스터링
1) DBSCAN
2) 과정
- 임의의 데이터 포인트를 선택하고, 그 포인트의 ϵ - 이웃지역에 있는 데이터 포인트의 수를 확인
- 만약 ϵ-이웃지역에 있는 데이터 포인트의 수가 'MinPts'보다 많다면, 새로운 클러스터를 생성하고 해당 데이터 포인트를 핵심 대상으로 표시
- 핵심 대상이 아닌 데이터 포인트를 만날 때까지 핵심 대상의 ϵ-이웃지역 내의 모든 데이터 포인트를 동일한 클러스터에 할당
- 모든 데이터 포인트를 방문할 때까지 이 과정을 반복
* MinPts : 주변 영역 내 최소 데이터 기준치
9.6 계층 클러스터링
1) 계층 클러스터링
- 데이터를 계층적인 구조를 가진 클러스터로 구분하는 방법
- 클러스터간의 거리를 기반으로 작동하며, 결과적으로 덴드로그램이라는 트리형태 구조 생성
2) 과정
- 병합적 -> 상향식
- 각 데이터 포인트들을 하나의 클러스터로 간주한 상태에서 시작합니다.
- 최종적의로는 하나의 클러스터가 되며 이전까지는 가장 가까운 클러스터끼리 병합됩니다.
- 분할적 -> 하향식
- 모든 데이터 포인트들을 하나의 클러스터라고 가정한 상태에서 시작합니다.
- 가장 멀리 떨어진 데이터 포인트들을 찾아 클러스터를 분리해가는 과정을 반복하며 마지막에는 각 데이터 포인트가 서로 다른 클러스터가 됩니다.
클러스터 간의 거리를 계산하는 방식에 따라 적절한 클러싀터의 갯수와 거리감이 달라집니다.