AI Supervised vs Unsupervised

🎯 지도학습 vs 비지도학습 (Supervised vs Unsupervised Learning)

머신러닝은 학습 방식에 따라 크게 지도학습(Supervised Learning)비지도학습(Unsupervised Learning) 으로 나뉩니다.


1️⃣ 지도학습 (Supervised Learning)

📌 개념:

  • 정답(라벨, Label)이 있는 데이터를 학습하는 방식
  • 입력 데이터(Features)와 정답(Output)이 주어짐
  • 새로운 입력 데이터가 주어졌을 때 정답을 예측

예제:
📍 이메일 스팸 필터링 (Email Spam Filtering)

  • 데이터: 이메일 제목, 본문 내용
  • 정답(라벨): “스팸(Spam)” 또는 “정상(Ham)”
  • 학습 후 새로운 이메일이 들어오면 스팸 여부 예측

📍 손글씨 숫자 인식 (Handwritten Digit Recognition)

  • 데이터: 숫자 이미지 (0~9)
  • 정답(라벨): 해당 숫자 (예: 3, 5, 7 등)
  • 학습 후 새로운 숫자 이미지 입력 시 예측

🎯 지도학습의 주요 알고리즘

알고리즘설명예제
선형 회귀 (Linear Regression)입력 값과 출력 값의 관계를 직선으로 표현집값 예측, 날씨 예측
로지스틱 회귀 (Logistic Regression)데이터를 두 가지(또는 여러 개) 범주로 분류스팸 메일 분류, 질병 진단
결정 트리 (Decision Tree)질문을 따라가며 데이터를 분류고객 이탈 예측, 대출 승인 예측
랜덤 포레스트 (Random Forest)여러 개의 결정 트리를 조합신용 카드 사기 탐지
서포트 벡터 머신 (SVM)데이터를 최적의 경계로 분류얼굴 인식
신경망 (Neural Networks)인간 두뇌를 모방한 모델음성 인식, 이미지 분류

📝 지도학습 코드 예제 (스팸 메일 분류)

👉 이메일 데이터를 이용해 “스팸”인지 “정상”인지 분류

from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score

# 샘플 데이터 (이메일 본문)
emails = ["Cheap loans available now", "Win a lottery today", "Meeting at 3 PM", "Important project update", "Get free gift cards"]
labels = [1, 1, 0, 0, 1]  # 1: 스팸, 0: 정상

# 텍스트 데이터를 숫자로 변환
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(emails)

# 학습 데이터와 테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, labels, test_size=0.2, random_state=42)

# 나이브 베이즈 분류기 학습
model = MultinomialNB()
model.fit(X_train, y_train)

# 테스트 데이터 예측
predictions = model.predict(X_test)

# 정확도 평가
print(f"정확도: {accuracy_score(y_test, predictions) * 100:.2f}%")

결과:

  • 스팸 메일을 자동으로 분류하는 모델
  • 이메일 본문을 벡터화하여 머신러닝 모델에 입력
  • 테스트 데이터에서 정확도 평가

2️⃣ 비지도학습 (Unsupervised Learning)

📌 개념:

  • 정답(라벨)이 없는 데이터를 학습하는 방식
  • 데이터에서 패턴이나 구조를 찾음
  • 데이터를 자동으로 그룹화하거나 관계를 분석

예제:
📍 고객 그룹화 (Customer Segmentation)

  • 데이터: 고객 구매 내역, 방문 패턴
  • 정답 없음 → AI가 비슷한 고객끼리 자동으로 그룹화
  • 마케팅 전략 수립에 활용

📍 이상 탐지 (Anomaly Detection)

  • 데이터: 신용카드 거래 내역
  • 정답 없음 → AI가 정상 거래와 비정상 거래를 구분
  • 금융 사기 탐지에 활용

🎯 비지도학습의 주요 알고리즘

알고리즘설명예제
K-평균 군집화 (K-Means Clustering)데이터를 K개의 그룹으로 나눔고객 세분화, 이미지 압축
계층적 군집화 (Hierarchical Clustering)데이터의 유사도에 따라 계층적 트리 생성유전자 데이터 분석
주성분 분석 (PCA, Principal Component Analysis)데이터 차원을 줄여서 시각화이미지 압축, 노이즈 제거
연관 규칙 학습 (Association Rule Learning)데이터 간의 연관성을 찾음장바구니 분석 (예: 빵을 사면 우유도 산다)

📝 비지도학습 코드 예제 (고객 그룹화)

👉 고객 데이터를 3개의 그룹으로 나누는 K-평균 군집화

import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans

# 샘플 데이터 (연령, 월평균 구매 금액)
X = np.array([[25, 300], [30, 450], [35, 500], [40, 700], [23, 200], [50, 900], [60, 1000]])

# K-평균 군집화 (3개 그룹)
kmeans = KMeans(n_clusters=3, random_state=42)
kmeans.fit(X)
labels = kmeans.labels_

# 결과 시각화
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis')
plt.xlabel("연령 (Age)")
plt.ylabel("월 평균 구매 금액 (Monthly Purchase Amount)")
plt.title("고객 그룹화 (Customer Segmentation)")
plt.show()

결과:

  • 고객을 3개 그룹으로 자동 분류
  • 연령과 구매 금액을 기반으로 비슷한 특성의 고객끼리 군집화

3️⃣ 지도학습 vs 비지도학습 비교

비교 항목지도학습 (Supervised)비지도학습 (Unsupervised)
데이터정답(라벨) 있음정답 없음
목표입력 데이터를 정답과 매칭데이터의 패턴, 그룹 발견
예제이메일 스팸 필터, 얼굴 인식고객 그룹화, 이상 탐지
대표 알고리즘선형 회귀, 랜덤 포레스트, 신경망K-평균 군집화, PCA

4️⃣ 결론 (Conclusion)

지도학습은 정답(라벨)이 있는 데이터를 학습하여 정확한 예측을 목표
비지도학습은 정답 없이 데이터를 분석하여 패턴이나 그룹을 찾음

💡 머신러닝을 배우려면?

  • 처음 시작할 때는 지도학습이 쉬움
  • 데이터가 많지만 정답이 없을 경우 비지도학습 사용

Leave a Reply

Your email address will not be published. Required fields are marked *