본문 바로가기
데이터분석데브코스 8/이론

8 - 15. 비지도학습 개념 및 대표 알고리즘 요약

by DataJ 2025. 5. 28.

Chapter 15. 비지도학습 개념 및 대표 알고리즘 요약

1. 🧠 비지도학습(Unsupervised Learning) 개념

  • 정의: 정답 레이블(Label)이 없는 데이터를 기반으로 데이터 내 숨겨진 구조, 패턴, 관계를 자동으로 학습하는 방법론
  • 목적: 데이터 속 숨겨진 특성을 찾아내는 것 (예: 고객 세분화, 이상 탐지, 시각화, 패턴 분석 등)

✅ 장점

  • 정답 데이터 불필요 → 레이블링 비용 및 시간 절약
  • 통찰력 확보: 데이터 구조나 패턴을 탐색하여 인사이트 도출
  • 범용성: 다양한 유형 및 고차원 복잡 데이터에 적용 가능

❌ 단점

  • 결과 해석의 어려움: 의미 부여는 사람이 해야 하는 경우 많음
  • 평가 지표 부족: 성능의 객관적 평가가 어려움
  • 노이즈 민감성: 데이터의 잡음에 민감하게 반응할 수 있음

2. 📊 비지도학습의 대표 과제 (문제 유형)

① 📌 군집화 (Clustering)

  • 정의: 데이터를 유사한 특성에 따라 하위 그룹(Cluster)으로 나누는 작업
  • 목적: 데이터 간 유사성을 바탕으로 자연스러운 그룹 발견
  • 활용 예시:
    • 고객을 충성/일반/잠재 고객 등으로 나누기
    • 유사한 텍스트/이미지를 묶기

② 📉 차원 축소 (Dimensionality Reduction)

  • 정의: 고차원 데이터를 저차원으로 축소하여 핵심 정보는 유지하고 노이즈는 제거
  • 목적:
    • 시각화 용이
    • 계산 효율성 증가
    • 데이터 구조 간소화
  • 활용 예시:
    • 100개 특성 중 주요한 2~3개로 줄여 그래프로 표현
    • 데이터 압축 및 정보 요약

③ 🚨 이상 탐지 (Anomaly Detection)

  • 정의: 일반적인 데이터 패턴과 크게 벗어나는 이상치 탐색
  • 목적:
    • 보안, 금융, 의료 등에서 비정상 데이터 탐지
  • 활용 예시:
    • 계좌 해킹 시도 탐지
    • 의료 영상에서 이상 조직 탐색

1. 🧩 군집화 (Clustering) 알고리즘

✅ K-평균 (K-Means)

  • 데이터를 사용자가 지정한 K개의 군집으로 분할
  • 각 군집의 중심(centroid)을 기준으로 반복적으로 업데이트
  • 데이터 포인트를 가장 가까운 중심에 할당하여 군집화
  • 💡 장점: 단순하고 빠름
  • 단점: K값 사전 지정 필요, 이상치에 민감
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans
import matplotlib.pyplot as plt

# 데이터 생성
X, _ = make_blobs(n_samples=300, centers=3, random_state=42)

# 모델 학습
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)

# 예측 및 시각화
plt.scatter(X[:, 0], X[:, 1], c=kmeans.labels_, cmap='viridis')
plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], 
            s=200, c='red', marker='X')
plt.title('K-Means Clustering')
plt.show()

✅ 계층적 군집화 (Hierarchical Clustering)

  • 각 데이터를 하나의 클러스터로 시작 → 유사한 클러스터끼리 병합
  • 트리 형태의 덴드로그램(Dendrogram)으로 표현
  • 💡 장점: 군집 수를 몰라도 시작 가능
  • 단점: 대용량 데이터엔 비효율적

✅ DBSCAN (Density-Based Spatial Clustering of Applications with Noise)

  • 밀도 기반으로 클러스터 형성
  • 고밀도 영역은 클러스터로, 저밀도 영역은 이상치로 간주
  • 💡 장점: 이상치 자동 감지, 비선형 구조에 강함
  • 단점: 파라미터 선택 민감 (eps, minPts)

2. 🔻 차원 축소 (Dimensionality Reduction) 알고리즘

✅ 주성분 분석 (PCA, Principal Component Analysis)

  • 데이터의 분산이 큰 방향을 찾아 그 축을 기준으로 투영
  • 고차원 데이터를 낮은 차원으로 변환하면서 정보 손실 최소화
  • 💡 활용: 시각화, 전처리, 특징 추출
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA
import seaborn as sns
import pandas as pd

# 데이터 로드
iris = load_iris()
X = iris.data
y = iris.target

# PCA 적용
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 결과 시각화
df = pd.DataFrame(X_pca, columns=["PC1", "PC2"])
df['target'] = y
sns.scatterplot(data=df, x="PC1", y="PC2", hue="target", palette="Set2")
plt.title("PCA on Iris Dataset")
plt.show()

✅ t-SNE (t-distributed Stochastic Neighbor Embedding)

  • 데이터의 국소적 구조 보존에 초점
  • 비선형 구조를 저차원 공간에 잘 표현
  • 💡 활용: 시각화에 탁월
  • 단점: 해석 어려움, 파라미터 민감
from sklearn.manifold import TSNE
from sklearn.datasets import load_digits

# 숫자 데이터셋 로드
digits = load_digits()
X = digits.data
y = digits.target

# t-SNE 적용
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_embedded = tsne.fit_transform(X)

# 시각화
df_tsne = pd.DataFrame(X_embedded, columns=["x", "y"])
df_tsne['target'] = y
sns.scatterplot(data=df_tsne, x="x", y="y", hue="target", palette="tab10")
plt.title("t-SNE Visualization of Digits")
plt.savefig("t-SNE Visualization of Digits.png")
plt.show()

✅ 오토인코더 (Autoencoder)

  • 신경망 기반 차원 축소
  • 입력 → 저차원 인코딩 → 복원 과정을 통해 핵심 정보 압축
  • 💡 활용: 특징 학습, 노이즈 제거, 이미지 압축 등

3. 🚨 이상 탐지 (Anomaly Detection) 알고리즘

✅ Isolation Forest

  • 트리 기반 이상 탐지
  • 이상치는 적은 조건으로 쉽게 분리됨 → 이 특성을 활용
  • 💡 특징: 대용량 데이터에 빠르고 효율적
from sklearn.ensemble import IsolationForest
import numpy as np

# 이상치 포함 데이터 생성
X = np.random.randn(300, 2)
X[:20] += 6  # 이상치

# 모델 학습
iso = IsolationForest(contamination=0.07, random_state=42)
iso.fit(X)
y_pred = iso.predict(X)

# 시각화
plt.scatter(X[:, 0], X[:, 1], c=y_pred, cmap='coolwarm')
plt.title("Isolation Forest - Anomaly Detection")
plt.savefig("Isolation Forest - Anomaly Detection.png")
plt.show()

✅ One-Class SVM

  • 정상 데이터만 학습하여 “이상치 경계”를 생성
  • 이 경계를 벗어나는 데이터를 이상치로 간주
  • 💡 활용: 이미지 이상 탐지, 보안 등

✅ LOF (Local Outlier Factor)

  • 데이터 주변의 밀도를 비교해 로컬 기준 이상치 판단
  • 이상치는 주변 밀도보다 낮은 경우
  • 💡 특징: 국소적 이상 탐지에 강함

📝 비지도학습 요약 포인트

항목 내용
정의 라벨 없이 구조나 패턴을 탐색하는 학습 방식
주요 과제 군집화, 차원 축소, 이상 탐지
대표 알고리즘 K-means, DBSCAN, PCA, t-SNE, Autoencoder, Isolation Forest 등
활용 분야 고객 세분화, 시각화, 보안, 의료, 이상 거래 탐지 등
주의사항 해석이 어렵고 평가 기준이 모호, 노이즈에 민감할 수 있음