군집
K-means의 한계점: 몇 가지 가정들이 실제 데이터에 성립되지 않는 경우가 있음
- 모든 클러스터가 구형이라고 가정함 -> 비선형적 형태의 군집을 제대로 구분하지 못함
- 모든 클러스터의 크기가 비슷하다고 가정함 -> 넓게 분산되어 있는 경우 처리하지 못함
- 모든 데이터가 어떤 클러스터에 반드시 속한다고 가정함 -> 이상치나 노이즈 있을 때 잘 처리하지 못함
DBSCAN(밀도 기반 클러스터링)
- 한계점 극복위한 방법
- 데이터의 분포 밀도를 기반으로 군집을 형성
- 데이터의 자연스러운 패턴을 찾는데 효과적
- 사람의 뇌가 무의식적으로 밀도를 기반으로 군집화하는 것과 동일
주요 특징
- 클러스터의 형태에 대한 제약이 없음 (구불구불, 반달 등 가능)
- 클러스터의 크기나 밀도가 다양해도 잘 작동함 (조밀한 군집과 상대적으로 느슨한 군집 동시에 찾음)
- 노이즈를 자연스럽게 처리 가능함 (이상치는 따로 두고 이상치가 아닌 것들로만 군집화)
작동 원리
주요 매개변수
- epsilon: 이웃을 정의하는 반경
- minPoints: 핵심 포인트를 결정하는 최소 데이터 포인트 수
데이터 포인트의 분류
- 핵심(Core) 포인트: epsilon 반경 내에 minPoints개 이상의 이웃을 가진 포인트
- 경계(Border) 포인트: 핵심 포인트는 아니지만 핵심 포인트의 epsilon 반경 내에 있는 포인트
- 잡음(Noise) 포인트: 위 두 경우에 해당하지 않는 포인트
알고리즘 단계
- 임의의 시작점을 선택해 epsilon 반경 내의 이웃 탐색
- 해당 포인트가 핵심 포인트인지 확인
- 핵심 포인트라면 새로운 군집 시작하고 연결된 모든 포인트를 같은 군집으로 할당
- 경계 포인트라면 자신의 반경 내의 핵심 포인트들 중 하나의 핵심 포인트가 속한 군집에 할당
- 방문하지 않은 모든 포인트에 대해 1~4단계 반복
알고리즘 | k-means | DBSCAN |
기본 원리 | 중심점 기반 | 밀도 기반 |
필요 파라미터 | k(군집 수) | 반경, 최소 이웃 수 |
군집 모양 | 구형/원형 제한 | 어떤 모양이든 가능 |
군집 크기 | 비교적 균일한 크기 | 다양한 크기 허용 |
이상치 처리 | 처리 불가 | 제외 가능 |
확장성 | 대규모 데이터셋에 효율적 | 대규모 데이터셋에서 계산 비용 높음 |
결과 일관성 | 초기값에 따라 결과 변동 | 파라미터가 같다면 항상 동일한 결과 |
DBSCAN 효과적인 상황: 군집의 모양이 불규칙하거나 크기가 다양할 때, 그리고 이상치 처리가 필요할 때
PCA
필요성
- 두 문제를 해결
- 차원의 저주(차원이 증가할수록 데이터의 분포가 희박해지고, 분석이 어려워지는 문제)
- 다중공선성(독립 변수들 간 상관관계가 높을 경우 회귀분석에서 모델 결과에 있어 해석이 부정확하다는 개념)
- 데이터의 변동성(정보)을 최대한 보존하면서 더 적은 수의 변수(주성분)로 표현하는 방법
- 여러 독립변수들이 보유하기 있는 핵심 특성만 선별하는 과정을 거침(변수 선택이 아닌 압축)
- 핵심
- 주어진 데이터의 중요한 정보만 남겨 차원을 줄이는 것
과정
- 주성분 찾기: 가장 많은 정보를 포함하는 방향을 찾음
- 방향(= 분산 = 정보량 = 가장 중요한 특징)
- 데이터 변환 과정: 기존 방식보다 더 효율적으로 데이터를 정리하는 방향을 찾아 변환화는 과정
- 데이터를 압축한다 ➡️ 정사영 시킨다(Projection)
- 2차원일 경우 2개의 고유 벡터가 나오는데 그 중 큰 벡터를 고름(한 벡터는 손실=희생)
- 차원 선택: 일반적으로 전체 데이터의 80% 이상의 정보를 유지하는 최소한의 주성분을 선택
- 데이터의 핵심 정보는 유지하면서, 불필요한 차원은 줄여 가볍고 효율적인 데이터로 변환하는 것
핵심 용어
공분산(Covariance): 두 변수가 어떻게 함께 변화하는지를 의미
- 양이라면 한 변수 증가할 때 다른 변수도 증가
- 음이라면 한 변수 증가할 때 다른 변수는 감소
- 0 이라면 두 변수가 서로 독립적
고유 값과 고유 벡터 (Eigen value & Eigen vector)
- 공분산 행렬: 공분산을 모든 변수 쌍에 대해 계산해 행렬해 나타낸 것
- 공분산 행렬의 대각선 원소는 각 변수의 분산, 나머지는 변수 간의 공분산
- 고유 벡터: 공분산 행렬이 나타내는 주요 방향
- 타원형 데이터에서 긴 축과 짧은 축의 방향 찾는 것과 동일
- 고유 값: 그 방향으로의 분산의 크기
- 데이터가 그 방향으로 얼마나 퍼져있는 지를 의미
※ 중심화(평균을 뺴는 작업)가 필요한 근본적 이유: 변화량을 정확하게 측정하기 위함
- 변수의 절대적인 크기의 영향 제거하고 순수한 변화량만을 측정할 수 있도록
※ PCA에선 왜 상관계수가 아닌 공분산을 사용할까?
- 공분산은 원본 변수의 단위에 따라 값이 변하지만, 상관계수는 단위와 무관하게 -1~1사이의 값을 가짐
- PCA는 데이터의 실제 변동성을 최대한 보존하려 하는 기법인데, 만약 상관계수를 사용하게 되면 모든 변수가 동일한 중요도를 가지게 되어, 중요한 변동 정보가 손실될 수 있다
'AI > 머신러닝' 카테고리의 다른 글
머신러닝의 이해와 라이브러리 활용 심화 2주차(의사결정나무, 랜덤포레스트, 최근접이웃, 부스팅알고리즘) (0) | 2025.02.13 |
---|---|
머신러닝의 이해와 라이브러리 활용 심화 1주차(EDA, 전처리, 인코딩, 스케일링, 데이터분리, 교차검증, GridSearch) (0) | 2025.02.13 |
수업[2.3](데이터프레임, 데이터분포, 하이퍼파라미터, 교차검증, 군집화) (0) | 2025.02.03 |
머신러닝의 이해와 라이브러리 활용 기초 - 2(로지스틱회귀, 다중로지스틱회귀, 평가) (0) | 2025.01.22 |
머신러닝의 이해와 라이브러리 활용 기초 - 1(선형회귀, 다중선형회귀, 평가) (0) | 2025.01.21 |