기술과 산업/AI
AI 모델 만들기 시리즈 8화 – 숫자를 예측하라: Scikit-learn으로 회귀 모델 만들기
B컷개발자
2025. 5. 12. 19:33
728x90
AI 모델링의 대표 문제 유형은 크게 두 가지입니다.
- 분류(Classification): 결과가 정해진 범주(예: 고양이 vs 강아지)를 예측
- 회귀(Regression): 결과가 연속적인 수치(예: 집값, 온도)를 예측
이번 글에서는 Scikit-learn으로 회귀 모델을 만드는 과정을
보스턴 주택 가격 데이터셋을 활용해 실습합니다.
개념 설명: 회귀 문제란?
회귀 문제의 핵심은 입력값(특징)과 출력값(숫자 값) 사이의 관계를 찾아내는 것입니다.
예측 대상이 수치형일 때는 반드시 회귀 모델로 접근해야 합니다.
예시:
- 부동산: 주택 가격 예측
- 제조업: 불량률 예측
- 금융: 주식 가격 예측
- 헬스케어: 환자의 혈당 수치 예측
실습 데이터: 보스턴 주택 가격 데이터셋
변수명 설명
CRIM | 범죄율 |
RM | 방 개수 |
LSTAT | 저소득층 비율 |
PTRATIO | 학생/교사 비율 |
MEDV | 목표값: 주택 가격(단위 $1000) |
※ 최근 Scikit-learn 최신 버전에서는 Boston Dataset이 deprecated 되었습니다.
예제에서는 California Housing Dataset을 권장합니다.
실습은 최신 흐름에 맞춰 California Housing Dataset으로 대체합니다.
코드 실습 – Scikit-learn 회귀 모델 만들기
1. 데이터 불러오기
from sklearn.datasets import fetch_california_housing
import pandas as pd
# 데이터셋 로드
data = fetch_california_housing()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = data.target
2. 데이터 분할
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
3. 모델 학습 (선형 회귀)
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X_train, y_train)
4. 예측 및 평가
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
y_pred = model.predict(X_test)
print("MAE:", mean_absolute_error(y_test, y_pred))
print("MSE:", mean_squared_error(y_test, y_pred))
print("R² (결정계수):", r2_score(y_test, y_pred))
분석: 회귀 모델의 평가 지표
지표 의미
MAE (Mean Absolute Error) | 평균 절대 오차 |
MSE (Mean Squared Error) | 평균 제곱 오차 |
R² (R-Squared) | 모델이 데이터를 얼마나 잘 설명하는지 비율 (1에 가까울수록 좋음) |
회귀 문제에서는 Accuracy(정확도)를 사용할 수 없고, 에러 기반 지표로 평가합니다.
정리: 분류 vs 회귀 핵심 비교
구분 분류 회귀
목표값 | 클래스 라벨 | 연속형 수치 |
예시 | 고양이/강아지 구분 | 집값, 온도 예측 |
모델 | Logistic Regression, Decision Tree 등 | Linear Regression, Random Forest Regressor 등 |
평가 지표 | Accuracy, Precision 등 | MAE, MSE, R² 등 |
분류 문제와 회귀 문제의 구분은 모델 개발 초기 단계에서 반드시 정확하게 판단해야 합니다.
728x90