[python] SciPy를 사용하여 머신러닝 모델 평가하기

머신러닝 모델의 성능을 평가하고 비교하는 것은 중요한 작업입니다. 이를 위해 SciPy 패키지를 사용하여 다양한 평가 지표를 계산할 수 있습니다. 이번 포스트에서는 SciPy를 사용하여 머신러닝 모델을 평가하는 방법에 대해 알아보겠습니다.

Confusion Matrix 생성하기

먼저, 모델의 예측값과 실제값을 비교하는 Confusion Matrix를 생성하는 방법부터 알아봅시다. Confusion Matrix는 클래스마다 모델이 예측한 결과를 행렬로 표현한 것입니다. SciPy에서 제공하는 confusion_matrix 함수를 사용하여 간단하게 생성할 수 있습니다.

from scipy import confusion_matrix

# 모델의 예측값
predicted = [1, 0, 1, 0, 1, 0]
# 실제값
actual = [1, 1, 0, 0, 1, 1]

# Confusion Matrix 생성
cm = confusion_matrix(actual, predicted)
print(cm)

출력 결과:

array([[1, 1],
       [2, 2]])

Confusion Matrix의 결과는 다음과 같이 해석할 수 있습니다:

정확도 계산하기

정확도(Accuracy)는 모델이 정확하게 예측한 경우의 비율을 나타내는 지표입니다. SciPy에서는 accuracy_score 함수를 사용하여 정확도를 계산할 수 있습니다.

from scipy import accuracy_score

# 모델의 예측값
predicted = [1, 0, 1, 0, 1, 0]
# 실제값
actual = [1, 1, 0, 0, 1, 1]

# 정확도 계산
accuracy = accuracy_score(actual, predicted)
print("정확도:", accuracy)

출력 결과:

정확도: 0.5

다른 평가 지표 계산하기

SciPy는 정확도 외에도 다양한 평가 지표를 계산할 수 있는 함수들을 제공합니다. 몇 가지 예시를 살펴보겠습니다:

from scipy import precision_score, recall_score, f1_score

# 모델의 예측값
predicted = [1, 0, 1, 0, 1, 0]
# 실제값
actual = [1, 1, 0, 0, 1, 1]

# Precision 계산
precision = precision_score(actual, predicted)
print("Precision:", precision)

# Recall 계산
recall = recall_score(actual, predicted)
print("Recall:", recall)

# F1 score 계산
f1 = f1_score(actual, predicted)
print("F1 score:", f1)

이처럼 SciPy를 사용하면 다양한 평가 지표를 손쉽게 계산할 수 있습니다. 이를 통해 머신러닝 모델의 성능을 명확히 평가하고 비교할 수 있습니다.

결론

머신러닝 모델의 평가는 성능 개선과 모델 선택에 중요한 역할을 합니다. SciPy를 사용하면 다양한 평가 지표를 계산하여 모델의 성능을 측정할 수 있습니다. 정확도 외에도 정밀도, 재현율, F1 score 등 다양한 평가 지표를 활용하여 모델의 성능을 평가하고 비교하는 것이 좋습니다.