본문으로 건너뛰기
실습하기

분류 모델 평가하기

모델 평가는 훈련된 모델이 얼마나 잘 예측하는지를 측정하는 과정입니다.

선택할 지표는 문제 유형에 따라 달라집니다.

  • 분류: 정확도(accuracy), 정밀도(precision), 재현율(recall), F1-점수
  • 회귀: R²(결정계수), MSE, MAE

True Positive, True Negative, False Positive, False Negative

머신러닝에서 분류 모델을 평가할 때 자주 사용하는 용어는 다음과 같습니다.

  • True Positive (TP): 실제 양성인 데이터를 양성으로 예측한 경우 (예: 실제로 산모가 임신했는데 임신했다고 예측한 경우)
  • True Negative (TN): 실제 음성인 데이터를 음성으로 예측한 경우 (예: 실제로 산모가 임신하지 않았는데 임신하지 않았다고 예측한 경우)
  • False Positive (FP): 실제 음성인 데이터를 양성으로 예측한 경우 (예: 실제로 산모가 임신하지 않았는데 임신했다고 예측한 경우)
  • False Negative (FN): 실제 양성인 데이터를 음성으로 예측한 경우 (예: 실제로 산모가 임신했는데 임신하지 않았다고 예측한 경우)

분류 지표

분류 모델을 평가할 때 자주 사용하는 지표는 다음과 같습니다.

  • 정확도(accuracy): 전체 예측 중 정답을 맞춘 비율 (TP + TN) / (TP + TN + FP + FN)
  • 정밀도(precision): 양성으로 예측한 것 중 실제로 맞은 비율 (TP) / (TP + FP)
  • 재현율(recall): 실제 양성 중에서 올바르게 찾아낸 비율 (TP) / (TP + FN)
  • F1-점수(F1-score): 정밀도와 재현율의 조화를 하나의 값으로 나타냄 (2 * precision * recall) / (precision + recall)

Scikit-learn은 이러한 지표를 계산하는 내장 함수를 제공합니다.


분류 예시: 정확도(Accuracy) 점수

다음 예시는 분류 모델을 정확도 지표로 평가하는 방법을 보여줍니다.

정확도(Accuracy) 예시
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

# 데이터 로드(붓꽃 데이터셋)
X, y = load_iris(return_X_y=True)

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

# 분류기 학습
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# 예측
y_pred = knn.predict(X_test)

# 평가
acc = accuracy_score(y_test, y_pred)
print(f"정확도: {acc:.2f}")

위 코드에서 정확도를 계산할 때 accuracy_score() 함수를 사용했습니다.

이와 같아 Scikit-learn은 분류 모델을 평가할 때 자주 사용하는 지표를 API로 제공합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!