✅ 4주차: 분류(Classification) 요약
1. 📘 분류란?
- 데이터를 여러 클래스(Label) 중 하나로 예측하는 작업
- 예시: 사진이 ‘개’, ‘고양이’, ‘토끼’ 중 어떤 것인지 판별
2. 🔍 주요 분류 알고리즘
알고리즘개요
로지스틱 회귀 (Logistic Regression) | 로지스틱 함수(시그모이드)를 통해 확률을 모델링 |
k-최근접 이웃 (K-Nearest Neighbors, KNN) | 가장 가까운 데이터 K개를 기반으로 다수결 분류 |
의사 결정 트리 (Decision Tree) | 조건 분기를 따라가는 트리 구조 |
랜덤 포레스트 (Random Forest) | 여러 트리를 앙상블하여 분류 성능 향상 |
나이브 베이즈 (Naive Bayes) | 조건부 확률을 기반으로 계산 (P(클래스 |
3. 📏 성능 평가 지표
지표설명
Accuracy | 전체 중 맞춘 비율 |
Precision | Positive 예측 중 실제로 Positive인 비율 |
Recall (Sensitivity) | 실제 Positive 중 맞춘 비율 |
ROC / AUC | 다양한 기준에서 분류 성능을 시각화 및 수치화 |
4. ✅ 실습 과제
- [1] KNN 분류 예제를 실습하고 제출
- [2] 랜덤 포레스트 분류 예제 + AUC 포함 성능 평가 실습 및 제출
💻 예제 코드 (KNN & 랜덤 포레스트)
📌 [1] KNN 분류 예제 (Iris 데이터)
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# 데이터 불러오기
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(
iris.data, iris.target, test_size=0.3, random_state=42)
# 모델 정의 및 학습
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
# 예측 및 정확도 평가
y_pred = knn.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
📌 [2] 랜덤 포레스트 + AUC 평가 예제
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score, accuracy_score
from sklearn.preprocessing import label_binarize
# 다중 클래스에 대해 one-hot 인코딩 필요
y_test_bin = label_binarize(y_test, classes=[0, 1, 2])
# 모델 정의 및 학습
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, y_train)
# 예측
y_prob = rf.predict_proba(X_test)
y_pred = rf.predict(X_test)
# 성능 평가
print("Accuracy:", accuracy_score(y_test, y_pred))
print("AUC (macro):", roc_auc_score(y_test_bin, y_prob, multi_class='ovr'))
반응형