기술과 산업/AI

AI 모델 만들기 시리즈 8화 – 숫자를 예측하라: Scikit-learn으로 회귀 모델 만들기

B컷개발자 2025. 5. 12. 19:33
728x90

AI 모델링의 대표 문제 유형은 크게 두 가지입니다.

  1. 분류(Classification): 결과가 정해진 범주(예: 고양이 vs 강아지)를 예측
  2. 회귀(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