반응형
1. 머신러닝 모델 테스트 (이론)
[이론: 시험을 보고 정답을 맞춰보자!] 이전 시간(11강)에 인공지능 모델(선형회귀)에게 70%의 문제지(X_train)와 정답지(y_train)를 주고 학습을 시켰습니다. 이제 이 모델이 진짜 실력이 있는지 평가해야 합니다.
- 시험 보기 (Predict): 숨겨두었던 모의고사 문제지(X_test)를 모델에게 주어 답을 풀어보게 합니다. 모델이 제출한 답안지를 보통 y_pred (Prediction, 예측값)라고 부릅니다.
- 채점 하기 (Compare): 모델이 푼 답안지(y_pred)와 우리가 원래 가지고 있던 실제 정답지(y_test)를 나란히 놓고 비교합니다. 두 숫자의 차이가 적을수록 똑똑한 모델입니다!
2. 코드 및 상세 주석
이전 시간에 모델을 학습(fit)시킨 직후부터 이어지는 코드입니다.
Python
import pandas as pd
from sklearn.linear_model import LinearRegression
# (이전 강좌 생략) 데이터 분할 및 모델 학습이 완료되었다고 가정합니다.
# regressor.fit(X_train, y_train)
# --- [오늘의 핵심: 모델 테스트 및 예측] ---
# 1. 모델에게 모의고사 문제지(X_test)를 주고 답을 예측하게 합니다.
# .predict() 함수를 사용합니다. (정답지 y_test는 절대 주면 안 됩니다!)
y_pred = regressor.predict(X_test)
# 2. 모델이 제출한 예측값(y_pred) 살짝 들여다보기
# y_pred는 넘파이 배열(Numpy Array) 형태로 결과가 나옵니다.
print("--- 모델이 예측한 지연 시간 (y_pred) 상위 5개 ---")
print(y_pred[:5])
# 3. 우리가 가지고 있던 실제 정답지(y_test)와 비교해보기
print("\n--- 실제 실제 지연 시간 (y_test) 상위 5개 ---")
print(y_test.head())
# --- 🔥 (튜터의 보충 학습: 숫자로 정확하게 채점하기) ---
# 눈으로 수만 개의 답을 일일이 비교할 수 없으니, 사이킷런의 채점 기능을 사용합니다.
from sklearn.metrics import mean_absolute_error, r2_score
# MAE (Mean Absolute Error): 실제 정답과 예측값이 평균적으로 몇 '분' 차이 나는지 계산
mae = mean_absolute_error(y_test, y_pred)
# R2 Score (결정계수): 1에 가까울수록 모델이 예측을 완벽하게 한다는 뜻 (0~1 사이)
r2 = r2_score(y_test, y_pred)
print("\n--- 📊 최종 모델 성적표 ---")
print(f"평균 오차(MAE): 약 {mae:.2f}분")
print(f"모델 설명력(R2 Score): {r2:.2f}")
3. 실행 후 결과 값 (예시)
위 코드를 실행하면 아래와 같은 결과를 볼 수 있습니다. (데이터에 따라 숫자는 다를 수 있습니다.)
Plaintext
--- 모델이 예측한 지연 시간 (y_pred) 상위 5개 ---
[[ 13.5 ] <-- 1번 비행기는 13.5분 지연될 거야!
[ -2.1 ] <-- 2번 비행기는 2.1분 일찍 도착할 거야!
[ 20.8 ]
[ 5.2 ]
[ 45.1 ]]
--- 실제 실제 지연 시간 (y_test) 상위 5개 ---
ARR_DELAY
1023 15.0 <-- (실제 정답: 15분) 오, 1.5분 차이로 꽤 비슷하게 맞췄네요!
441 -5.0 <-- (실제 정답: -5분) 일찍 도착하는 방향성은 맞췄으나 시간 차이가 조금 납니다.
2031 25.0
15 10.0
8990 45.0 <-- 꽤 큰 지연인데 정확하게 맞췄네요!
--- 📊 최종 모델 성적표 ---
평균 오차(MAE): 약 12.35분
모델 설명력(R2 Score): 0.15
💡 튜터의 마무리 핵심 요약!
- regressor.fit(X_train, y_train) : 모델아, 공부 좀 해! (학습)
- y_pred = regressor.predict(X_test) : 모델아, 모의고사 문제 풀어봐! (예측)
- mean_absolute_error(y_test, y_pred) : 정답지랑 모델 답안지랑 비교해서 점수 좀 내줘! (평가)
머신러닝은 기본적으로 [학습 -> 예측 -> 평가] 라는 3박자 리듬으로 돌아갑니다. 영상에서는 두 값을 "비교한다"라고 뭉뚱그려 넘어갔지만, 실무에서는 제가 추가해 드린 MAE, R2 Score 같은 평가 지표(Metrics)를 사용해 수치화하여 모델의 성능을 판단한다는 점! 꼭 기억해 주세요. 🚀
반응형
'두두 IT > 머신런닝(ML)' 카테고리의 다른 글
| [ML-12] 선형모델_선형회귀 (0) | 2026.05.20 |
|---|---|
| 모델의 정확도 평가(accuracy evaluating) (0) | 2026.05.17 |
| scikit-learn으로 선형회귀(linear regression) 모델 머신러닝 트레이닝 수행 (1) | 2026.05.17 |
| scikit-learn으로 트레이닝 데이터와 테스트 데이터 분할 (0) | 2026.05.17 |
| 중복데이터와 결측값(missing value) 처리 (0) | 2026.05.17 |