반응형
1. 지도학습이란?
지도학습(Supervised Learning)은 입력 데이터(Input) 와 정답(Label) 이 함께 주어져,
모델이 이를 학습한 뒤 새로운 입력에 대한 정답을 예측하는 학습 방식입니다.
1.1 분류 vs 회귀
구분 설명 출력값 예시 활용 사례
분류 | 데이터가 속할 범주(Category)를 예측 | 스팸/정상, 품종명, 등급 | 스팸메일 탐지, 질병 진단 |
---|---|---|---|
회귀 | 연속적인 숫자 값을 예측 | 가격, 온도, 확률 | 주가 예측, 판매량 예측 |
2. 분류(Classification)
2.1 개념
- 데이터를 여러 범주(Class) 중 하나로 분류
- 예: ‘이 메일은 스팸인가, 아닌가?’
2.2 주요 알고리즘
- 로지스틱 회귀(Logistic Regression)
- 의사결정나무(Decision Tree)
- 서포트 벡터 머신(SVM)
- 랜덤 포레스트(Random Forest)
3. 회귀(Regression)
3.1 개념
- 입력 변수와 연속적인 출력 값 간의 관계를 찾아 예측
- 예: ‘아파트의 평형, 위치, 연식으로 가격 예측’
3.2 주요 알고리즘
- 선형 회귀(Linear Regression)
- 릿지 회귀(Ridge Regression)
- 라쏘 회귀(Lasso Regression)
- 의사결정나무 회귀(Decision Tree Regression)
4. 지도학습 개발 과정
- 데이터 준비: 입력(X), 정답(y) 구분
- 학습/검증 데이터 분리
- 모델 선택 및 학습
- 예측 및 평가
- 성능 향상: 하이퍼파라미터 튜닝
5. 실습 – 분류(Classification) 예제
이번 실습에서는 Iris 꽃 품종 분류를 구현합니다.
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
# 데이터 로드
iris = load_iris()
X, y = iris.data, iris.target
# 학습/테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42, stratify=y
)
# 모델 학습
model = LogisticRegression(max_iter=200)
model.fit(X_train, y_train)
# 예측
y_pred = model.predict(X_test)
# 평가
print("정확도:", f"{accuracy_score(y_test, y_pred)*100:.2f}%")
print(classification_report(y_test, y_pred, target_names=iris.target_names))
6. 실습 – 회귀(Regression) 예제
이번에는 보스턴 주택 가격 예측(scikit-learn의 California housing 데이터셋 활용) 예제입니다.
from sklearn.datasets import fetch_california_housing
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
import numpy as np
# 데이터 로드
housing = fetch_california_housing()
X, y = housing.data, housing.target
# 학습/테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
# 모델 학습
reg = LinearRegression()
reg.fit(X_train, y_train)
# 예측
y_pred = reg.predict(X_test)
# 평가
mse = mean_squared_error(y_test, y_pred)
rmse = np.sqrt(mse)
r2 = r2_score(y_test, y_pred)
print(f"RMSE: {rmse:.3f}")
print(f"R² Score: {r2:.3f}")
7. 평가 지표
분류
- 정확도(Accuracy): 전체 예측 중 맞힌 비율
- 정밀도(Precision), 재현율(Recall), F1 점수
회귀
- MSE(Mean Squared Error), RMSE
- R²(결정계수): 1에 가까울수록 좋음
8. 오늘의 핵심 요약
- 지도학습은 정답이 있는 데이터로 학습
- 분류는 범주 예측, 회귀는 연속값 예측
- 모델 선택과 평가 지표 선택이 중요
- 실습을 통해 분류와 회귀 모델 구현 방법 이해
반응형
'개발 창고 > AI' 카테고리의 다른 글
신경망 기본 실습: 간단한 이미지 분류 모델 만들기 (2) | 2025.08.17 |
---|---|
비지도학습 실습: 군집과 차원 축소 (2) | 2025.08.16 |
데이터 전처리와 시각화: AI 모델 학습을 위한 필수 단계 (2) | 2025.08.14 |
딥러닝(Deep Learning) 기본 개념: CNN과 RNN 이해하기 (2) | 2025.08.12 |
AI 입문 가이드: 개념부터 이미지 분류 실습까지 (7) | 2025.08.10 |