비지도 학습
: 정답 레이블이 지정되지 않음 데이터로부터 패턴을 찾아내는 학습 방법론
- 목표 : 주어진 데이터 내부에서 데이터의 구조, 패턴을 자동으로 탐색하는 것
- 활용 분야 : 고객 세분화, 이상탐지, 대규모 데이터셋의 구조 파악 등
- 장점 :
- 수동으로 데이터의 정답(=레이블)을 생성할 필요가 없어 비용과 시간이 절약
- 데이터 내부의 구조를 탐색 → (사람이 알고있는 것 이외의) 다양한 통찰
- 다양한 데이터 유형과 복잡한 구조에도 적용 가능
- 단점 :
- 결과 해석이 어려움
- 명확한 정답이 X → 모델 성능 객관화 및 평가가 어려움
- 노이즈에 매우 민감
비지도 학습에서 다루는 대표 문제
1. 군집화(Clustering)
: 데이터를 비슷한 특성을 가진 하위 그룹(=클러스터)로 분할하는 과정
- 목적 : 레이블이 없는 데이터에서 내재된 구조를 발견
- 유사한 데이터 포인트를 그룹화하여 패턴을 이해하는 데 사용
- 군집화한 데이터의 의미는 사람이 부여해야 함 ► 도메인 지식이 있는 전문가가 필요
- 활용 예시 :
- 고객들의 구매 데이터를 활용해 유사 고객 그룹 생성
- 글을 유형별로 나눠 주제별로 분류
- 유사한 특성을 갖는 이미지 그룹핑
2. 차원 축소(Dimensionality Reduction)
: 데이터의 핵심적인 특성은 유지하되, 고차원 데이터의 특성을 줄여서 더 낮은 차원의 표현으로 만드는 과정
- 목적 : 데이터 시각화, 노이즈 감소, 계산 효율성 증가, 더 나은 데이터 해석 등
- 복잡한 데이터 구조를 간소화하고, 중요 정보를 강조하는데 사용
- 활용 예시 :
- 분석할 데이터의 차원을 낮춰 2차원 혹은 3차원의 그래프로 확인
- 데이터의 주된 특성을 유지하면서 세밀하게 표현된 노이즈를 제거
3. 이상 탐지 (Anomaly Detection)
: 데이터에서 비정상적인 패턴, 이상치, 또는 예외적 사례 탐지하는 과정
- 목적 : 데이터에서 일반적으로 볼 수 있는 특성에서 많이 벗어난 데이터를 식별
- 활용 예시 :
- 외국 어딘가에서 사용자 계좌에 로그인 하려는 시도를 포착
- 충격파 그래프를 이용해 물체 혹은 건물 내부의 균열을 탐지
문제 해결에 활용되는 알고리즘
1. 군집화 문제 - K-means / 계층적 군집화 / DBSCAN
K-평균 (K-means)
- 데이터를 K개의 클러스터로 그룹화
- 각 클러스터의 중심을 계산하고, 각 데이터 포인트를 가장 가까운 클러스터 중심에 할당하는 방식으로 작동
- 반복적인 과정을 통해 클러스터 중심을 업데이트하며 최적화
계층적 군집화 (Hierarchical Clustering)
- 데이터 포인트를 개별 클러스터로 가정하여 시작
- 점차 유사한 클러스터를 병합하거나 큰 클러스터를 세분화하는 방식으로 진행
DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
- 데이터가 모여있는 밀도를 기반으로 클러스터를 형성
- 고밀도 지역과 저밀도 지역을 이용해 군집화를 진행 → 저밀도 부분은 이상치 탐지로 활용될 수도 있음
2. 차원 축소 문제 - PCA / t-SNE / Autoencoder
주성분 분석(PCA)
- 목표 : 정보력을 최대한 잃지 않고 차원을 축소해나가는 것
- 데이터의 분산을 최대한 보존하는 방향의 축을 찾고, 해당 축을 기준으로 고차원 데이터를 저차원으로 변환
- 주로 데이터의 주요 특성을 추출하고 시각화 하는 과정에서 사용
t-SNE
- 고차원 데이터의 구조를 보존하면서 저차원으로 매핑하는 기법
- 시각화 과정에서 매우 유용하게 사용
Autoencoder
- 신경망(딥러닝)을 이용한 차원 축소 기법
- 입력 데이터를 저차원으로 압축한 후, 다시 원래 차원으로 복원하는 방식으로 핵심 특징을 만들어냄
3. 이상 탐지 문제 - Isolation Forest / One-Class SVM / LOF
Isolation Forest (고립숲)
- Tree를 기반으로하며 특정 데이터 포인트를 격리시키는 데 필요한 분할 수를 기준으로 이상치를 탐지
- 이상치 데이터의 경우 더 적은 분할로 격리되는 경향이 있음을 활용
One-Class SVM
- 하나의 클래스만 분류해서 그 클래스가 아니면 이상치로 판단
- 정상 데이터만을 활용해 “정상” 이라는 class로 SVM을 학습하고, SVM이 정상 패턴에서 벗어나는 데이터를 보고 출력하는 결과를 보고 이상치를 판단
LOF (Local Outlier Factor)
- 주어진 데이터 주변의 데이터 밀도를 계산
- 정상 데이터는 주변에 높은 데이터 밀도를 갖고 있고, 이상치는 주변에 데이터가 적어 낮은 밀도를 갖고 있음을 활용