머신러닝(Machine Learning) 후반전 - 성능 평가 실습

728x90
반응형

기준에 따라 평가하는 것이 필요합니다.

머신러닝 후반전
데이터 스플릿(Data Split) → 모델 선택 및 학습 → 모델 검증 및 하이퍼파라미터 튜닝 → 성능 평가

 

서론

 

이전 글에서는 데이터 스플릿, 모델 선택 및 학습, 그리고 모델 검증 및 하이퍼파라미터 튜닝에 대해 살펴보았습니다. 이제 마지막 단계인 '성능 평가'에 대해 이야기해보려 합니다. 머신러닝의 과정 속에서 우리는 모델이 학습한 결과가 실제로 유의미한지, 그리고 실제 상황에서 어떤 성능을 발휘할지 평가하는 단계가 필요합니다. 이를 통해 모델이 데이터를 얼마나 잘 이해하고, 새로운 데이터에 대해 얼마나 잘 예측할 수 있는지를 알아보게 됩니다.

 

머신러닝(Machine Learning) 후반전 - 성능 평가 실습 글에서는 이러한 '성능 평가' 과정을 살펴보고, 실제로 어떻게 수행되는지에 대한 실습을 진행해볼 예정입니다. 이 과정은 머신러닝 모델의 완성도를 높이는 데 있어 중요한 단계입니다. 모델의 성능을 정확하게 평가함으로써, 우리는 모델이 가진 한계를 인식하고 이를 개선하는 방향으로 더 나아갈 수 있습니다. 그럼, 이제 성능 평가에 대해 알아보겠습니다.

 

평가 지표(Evaluation metric)에 대한 설명은 아래 글에서 다루고 있으니, 참고 바라겠습니다.

머신러닝(Machine Learning) Evaluation metric 기초 (tistory.com)

 

머신러닝(Machine Learning) Evaluation metric 기초

서론 머신러닝(Machine Learning) Evaluation metric 기초에 대해 알아봅시다. 머신러닝의 평가 지표(Evaluation metric)는 머신러닝 모델의 성능을 측정하고, 이를 바탕으로 모델을 최적화하는 데 중요한 역할

10yp.tistory.com

 

성능 평가 실습

 

머신러닝 모델의 성능을 평가하는 데에는 여러 가지 척도가 있으며, Scikit-learn 라이브러리는 이러한 척도를 측정하는 다양한 함수를 제공합니다. 싸이킷런에 대한 내용은 아래 글을 참고해주시길 바라겠습니다.

머신러닝(Machine Learning) 알고리즘 라이브러리, 싸이킷런(scikit-learn) (tistory.com)

 

머신러닝(Machine Learning) 알고리즘 라이브러리, 싸이킷런(scikit-learn)

사이킷런 홈페이지: https://scikit-learn.org/stable/ scikit-learn: machine learning in Python — scikit-learn 1.3.2 documentation Model selection Comparing, validating and choosing parameters and models. Applications: Improved accuracy via paramete

10yp.tistory.com

 

다음은 몇 가지 주요 성능 평가 지표에 대한 코드 예시입니다. 여기서 X_test, Y_test는 이전 단계인 데이터 스플릿 글에서 확인할 수 있고, predict 활용과 print문 사용에 대해서는 모델 선택 및 학습 글에서 확인할 수 있습니다. 아래 링크를 참조해주시길 바라겠습니다.

https://10yp.tistory.com/72

 

머신러닝(Machine Learning) 후반전 - 데이터 스플릿(Data Split) 실습

머신러닝 후반전 데이터 스플릿(Data Split) → 모델 선택 및 학습 → 모델 검증 및 하이퍼파라미터 튜닝 → 성능 평가 서론 머신러닝은 우리가 일상에서 마주하는 다양한 문제를 해결하는 강력한

10yp.tistory.com

https://10yp.tistory.com/75

 

머신러닝(Machine Learning) 후반전 - 모델 선택 및 학습 실습

머신러닝 후반전 데이터 스플릿(Data Split) → 모델 선택 및 학습 → 모델 검증 및 하이퍼파라미터 튜닝 → 성능 평가 서론 머신러닝의 세계는 깊이 있고 복잡합니다. 이를 이해하는 데 필요한 핵

10yp.tistory.com

 

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' 등이 있습니다. 각 값은 클래스 간 불균형을 다루는 방법을 결정합니다.

 

결론

 

머신러닝 모델의 성능 평가는 모델의 완성도를 높이는 중요한 과정입니다. 이를 통해 모델이 데이터를 얼마나 잘 이해하고, 새로운 데이터에 대해 얼마나 잘 예측할 수 있는지를 확인할 수 있습니다. 여러 가지 평가 지표를 활용하여 모델의 성능을 측정하고, 이를 바탕으로 모델을 최적화하는 과정은 머신러닝 모델 개발의 마지막 단계를 구성합니다. 이러한 과정을 통해 우리는 모델이 가진 한계를 인식하고, 이를 개선하는 방향으로 더 나아갈 수 있습니다.

 

따라서, 성능 평가는 머신러닝 모델 개발에서 반드시 필요한 단계로, 이를 통해 모델의 실제 성능을 정확하게 파악해야 합니다. 이를 잘 수행하려면 각 평가 지표의 특성을 잘 이해하고, 적절한 평가 지표를 선택하는 능력이 필요합니다. 이는 머신러닝 모델의 성능을 실제로 측정하고, 모델의 성능을 향상시키는 데 큰 도움이 됩니다.

반응형