728x90
반응형
반응형
🎯 1. 비지도 학습(Unsupervised Learning)이란?
- *비지도 학습(Unsupervised Learning)**은 라벨(정답) 없이 데이터의 패턴을 학습하는 머신러닝 방식입니다.
- 목적: 데이터의 숨겨진 패턴과 구조를 발견하는 것
- 특징: 사전에 정해진 정답(라벨)이 없으며, 데이터를 스스로 그룹화하거나 차원을 줄이는 방식으로 학습
- 응용 분야: 고객 세분화, 이상 탐지, 이미지 압축, 데이터 시각화 등
📌 비지도 학습은 주어진 데이터에서 패턴을 찾아 새로운 인사이트를 제공하는 강력한 도구입니다!
🎯 2. 비지도 학습의 주요 알고리즘 종류
🔹 1) 군집화(Clustering) 알고리즘
군집화 알고리즘은 유사한 특성을 가진 데이터를 자동으로 그룹화하는 기법입니다.
✅ (1) K-Means Clustering
- 데이터를 K개의 클러스터(그룹)로 자동 분류하는 알고리즘
- 각 데이터 포인트를 가장 가까운 중심점(centroid)에 할당하며, 중심점을 계속 업데이트하는 방식
📌 실습 예제 (K-Means 적용)
from sklearn.cluster import KMeans
import numpy as np
# 임의의 데이터 생성
data = np.array([[1, 2], [2, 3], [3, 4], [10, 10], [11, 12], [12, 14]])
# K-Means 알고리즘 적용 (2개의 클러스터로 분류)
kmeans = KMeans(n_clusters=2)
kmeans.fit(data)
print("클러스터 할당 결과:", kmeans.labels_)
✅ (2) 계층적 군집 분석(Hierarchical Clustering)
- 데이터를 트리 형태(덴드로그램, Dendrogram)로 계층적으로 그룹화
- K-Means처럼 클러스터 개수를 미리 지정하지 않아도 됨
- *병합(Agglomerative)**과 분할(Divisive) 방식이 있음
📌 실습 예제 (계층적 군집화 시각화)
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# 계층적 군집화 수행
linked = linkage(data, method='ward')
# 덴드로그램 시각화
plt.figure(figsize=(8,5))
dendrogram(linked)
plt.title("Dendrogram of Hierarchical Clustering")
plt.show()
✅ (3) DBSCAN (밀도 기반 클러스터링)
- 밀집된 데이터 그룹을 찾는 방식 (K-Means와 다르게 클러스터 개수를 미리 설정할 필요 없음)
- 이상치(Outlier)를 효과적으로 처리할 수 있음
📌 실습 예제 (DBSCAN 적용)
from sklearn.cluster import DBSCAN
# DBSCAN 적용
dbscan = DBSCAN(eps=3, min_samples=2)
dbscan.fit(data)
print("DBSCAN 클러스터 할당 결과:", dbscan.labels_)
🔹 2) 차원 축소(Dimensionality Reduction) 알고리즘
차원 축소 알고리즘은 데이터의 중요한 특성을 유지하면서 차원을 줄이는 방식입니다.
고차원 데이터를 2D 또는 3D로 축소하여 시각화할 때도 많이 사용됩니다.
✅ (1) 주성분 분석(PCA, Principal Component Analysis)
- 데이터의 가장 중요한 축(Principal Component)을 찾아 차원을 줄이는 기법
- 데이터의 분산을 최대한 유지하면서 차원을 축소
📌 실습 예제 (PCA 적용)
from sklearn.decomposition import PCA
# PCA를 사용하여 차원 축소 (2차원으로 변환)
pca = PCA(n_components=2)
data_pca = pca.fit_transform(data)
print("PCA 변환 결과:", data_pca)
✅ (2) 커널 PCA(Kernel PCA)
- PCA를 비선형 데이터에 적용할 수 있도록 확장한 기법
- 커널 트릭을 활용하여 비선형 데이터를 저차원에서 표현 가능
📌 실습 예제
from sklearn.decomposition import KernelPCA
# 커널 PCA 적용
kpca = KernelPCA(n_components=2, kernel='rbf')
data_kpca = kpca.fit_transform(data)
print("Kernel PCA 변환 결과:", data_kpca)
✅ (3) t-SNE (t-distributed Stochastic Neighbor Embedding)
- 고차원 데이터를 2D, 3D로 시각화할 때 많이 사용
- 특히 이미지 데이터, 텍스트 데이터 등에서 많이 활용됨
📌 실습 예제 (t-SNE 적용)
from sklearn.manifold import TSNE
# t-SNE 변환
tsne = TSNE(n_components=2, perplexity=5, random_state=42)
data_tsne = tsne.fit_transform(data)
print("t-SNE 변환 결과:", data_tsne)
🔹 3) 연관 규칙 학습(Association Rule Learning) 알고리즘
연관 규칙 학습은 데이터에서 항목 간의 관계를 찾는 기법으로, 주로 **장바구니 분석(Market Basket Analysis)**에 사용됩니다.
✅ (1) 어프라이어리(Apriori)
- 데이터에서 자주 발생하는 항목 집합을 찾아 연관 규칙을 도출
- 예: "빵을 구매한 사람은 버터도 살 확률이 높다"
📌 실습 예제 (Apriori 적용)
from mlxtend.frequent_patterns import apriori, association_rules
import pandas as pd
# 예제 데이터 생성
data = pd.DataFrame({'빵': [1, 0, 1, 1, 0], '버터': [1, 1, 1, 0, 1], '우유': [0, 1, 1, 1, 1]})
# Apriori 적용
frequent_itemsets = apriori(data, min_support=0.5, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.0)
print("연관 규칙:", rules)
✅ (2) 이클렛(Eclat)
- Apriori와 비슷하지만, 트랜잭션을 기반으로 연관 규칙을 찾는 방식
- 데이터셋이 크지 않을 때 빠르게 적용 가능
📌 실습 예제
# Eclat은 Apriori와 유사한 방식으로 동작
print("Eclat은 Apriori와 비슷한 원리로 동작합니다.")
🎯 3. 비지도 학습 알고리즘 비교
알고리즘 종류 설명 활용 분야
K-Means | 데이터를 K개의 그룹으로 나눔 | 고객 세분화, 이미지 분류 |
HCA | 계층적으로 데이터를 군집화 | 생물학적 분류, 유전자 분석 |
DBSCAN | 밀도 기반 군집화 | 이상 탐지, 데이터 분류 |
PCA | 데이터의 중요한 특성을 유지하며 차원 축소 | 데이터 시각화, 노이즈 제거 |
t-SNE | 데이터 시각화에 특화 | 고차원 데이터 시각화 |
Apriori | 항목 간 연관 관계 분석 | 장바구니 분석, 추천 시스템 |
728x90
반응형
'AI > 이론' 카테고리의 다른 글
153. [AI] [Fine-Tuning] Pipeline을 활용한 이미지 생성 (0) | 2025.02.18 |
---|---|
137. [Python] [Machine Learning] : 계층적 군집 분석( Hierarchical Clustering) (0) | 2025.01.31 |
135. [Python] [Machine Learning] : K-평균 군집화(K-Means Clustering) (0) | 2025.01.31 |
134. [Python] [Machine Learning] : 의사결정나무(Decision Tree) (2) | 2025.01.31 |
133. [Python] [Machine Learning] : Support Vector Machine (0) | 2025.01.31 |