"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
머신러닝 후반전
데이터 스플릿(Data Split) → 모델 선택 및 학습 → 모델 검증 및 하이퍼파라미터 튜닝 → 성능 평가
서론
이전 글에서는 데이터 스플릿, 모델 선택 및 학습, 그리고 모델 검증 및 하이퍼파라미터 튜닝에 대해 살펴보았습니다. 이제 마지막 단계인 '성능 평가'에 대해 이야기해보려 합니다. 머신러닝의 과정 속에서 우리는 모델이 학습한 결과가 실제로 유의미한지, 그리고 실제 상황에서 어떤 성능을 발휘할지 평가하는 단계가 필요합니다. 이를 통해 모델이 데이터를 얼마나 잘 이해하고, 새로운 데이터에 대해 얼마나 잘 예측할 수 있는지를 알아보게 됩니다.
머신러닝(Machine Learning) 후반전 - 성능 평가 실습 글에서는 이러한 '성능 평가' 과정을 살펴보고, 실제로 어떻게 수행되는지에 대한 실습을 진행해볼 예정입니다. 이 과정은 머신러닝 모델의 완성도를 높이는 데 있어 중요한 단계입니다. 모델의 성능을 정확하게 평가함으로써, 우리는 모델이 가진 한계를 인식하고 이를 개선하는 방향으로 더 나아갈 수 있습니다. 그럼, 이제 성능 평가에 대해 알아보겠습니다.
평가 지표(Evaluation metric)에 대한 설명은 아래 글에서 다루고 있으니, 참고 바라겠습니다.
머신러닝(Machine Learning) Evaluation metric 기초 (tistory.com)
성능 평가 실습
머신러닝 모델의 성능을 평가하는 데에는 여러 가지 척도가 있으며, Scikit-learn 라이브러리는 이러한 척도를 측정하는 다양한 함수를 제공합니다. 싸이킷런에 대한 내용은 아래 글을 참고해주시길 바라겠습니다.
머신러닝(Machine Learning) 알고리즘 라이브러리, 싸이킷런(scikit-learn) (tistory.com)
다음은 몇 가지 주요 성능 평가 지표에 대한 코드 예시입니다. 여기서 X_test, Y_test는 이전 단계인 데이터 스플릿 글에서 확인할 수 있고, predict 활용과 print문 사용에 대해서는 모델 선택 및 학습 글에서 확인할 수 있습니다. 아래 링크를 참조해주시길 바라겠습니다.
1. Mean Squared Error(MSE)
from sklearn.metrics import mean_squared_error
result = model.predict(X_test)
print('MSE: %.4f' % mean_squared_error(y_test, result))
2. Accuracy:
from sklearn.metrics import accuracy_score
result = model.predict(X_test)
print('Accuracy: %.4f' % accuracy_score(y_test, result))
3. Precision:
from sklearn.metrics import precision_score
result = model.predict(X_test)
print('Precision: %.4f' % precision_score(y_test, result))
4. Recall:
from sklearn.metrics import recall_score
result = model.predict(X_test)
print('Recall: %.4f' % recall_score(y_test, result))
5. F1-Score:
from sklearn.metrics import f1_score
result = model.predict(X_test)
print('F1 Score: %.4f' % f1_score(y_test, result))
이러한 코드를 작성할 때 주의해야 할 점은, `accuracy_score`, `precision_score`, `recall_score`, `f1_score` 함수는 이진 분류 또는 다중 클래스 분류 문제에만 적용할 수 있다는 것입니다. 이는 `y_test`와 `result`가 범주형 라벨이어야 한다는 것을 의미합니다. 반면, `mean_squared_error`는 연속적인 값을 가지는 회귀 문제에 사용됩니다. 또한, `precision_score`, `recall_score`, `f1_score` 함수는 기본적으로 이진 분류 문제를 가정합니다. 다중 클래스 분류 문제에 이를 적용하려면 `average` 매개변수를 적절하게 설정해야 합니다. 이 매개변수의 값으로는 'micro', 'macro', 'weighted' 등이 있습니다. 각 값은 클래스 간 불균형을 다루는 방법을 결정합니다.
결론
머신러닝 모델의 성능 평가는 모델의 완성도를 높이는 중요한 과정입니다. 이를 통해 모델이 데이터를 얼마나 잘 이해하고, 새로운 데이터에 대해 얼마나 잘 예측할 수 있는지를 확인할 수 있습니다. 여러 가지 평가 지표를 활용하여 모델의 성능을 측정하고, 이를 바탕으로 모델을 최적화하는 과정은 머신러닝 모델 개발의 마지막 단계를 구성합니다. 이러한 과정을 통해 우리는 모델이 가진 한계를 인식하고, 이를 개선하는 방향으로 더 나아갈 수 있습니다.
따라서, 성능 평가는 머신러닝 모델 개발에서 반드시 필요한 단계로, 이를 통해 모델의 실제 성능을 정확하게 파악해야 합니다. 이를 잘 수행하려면 각 평가 지표의 특성을 잘 이해하고, 적절한 평가 지표를 선택하는 능력이 필요합니다. 이는 머신러닝 모델의 성능을 실제로 측정하고, 모델의 성능을 향상시키는 데 큰 도움이 됩니다.
'데이터 사이언스 > 머신러닝 실습 후반전' 카테고리의 다른 글
머신러닝(Machine Learning) 실전 모델 선택 및 학습 (6) | 2024.01.03 |
---|---|
머신러닝(Machine Learning) 실전 데이터 스플릿 (58) | 2024.01.02 |
머신러닝(Machine Learning) 후반전 - 모델 검증 및 하이퍼파라미터 튜닝 (4) | 2023.12.18 |
머신러닝(Machine Learning) 후반전 - 모델 선택 및 학습 실습 (67) | 2023.12.14 |
머신러닝(Machine Learning) 후반전 - 데이터 스플릿(Data Split) 실습 (66) | 2023.12.12 |