들어가며
지난 글에서는 모델의 정확도를 올리기 위해서 최종적으로 하이퍼파라미터 조합을 탐색하는 그리드 탐색에 대해서 진행하고 최상의 하이퍼파라미터 조합을 통해 최적화된 모델을 구현해봤습니다. 이번 글에서는 최상의 모델을 분석하여 모델의 문제를 분석하고 이를 해결하기 위한 통찰을 얻고 처음에 분할 한 테스트 세트로 모델을 평가해보도록 하겠습니다.
최상의 모델과 오차 분석
각 특성의 중요도 파악
최상의 모델을 분석하면 문제에 대한 통찰을 얻을 수 있습니다. 예를들어서 주택가격을 구하기 위한 특성을 중요도를 파악할 수 있습니다.
분석을 통한 통찰
중요도를 통해서 우리는 다시 특성을 정제할 수 있습니다. 위 결과를 보니 ocena_proximity의 경우 하나의 범주를 제외하고는 별로 중요하지 않으므로 이를 제외 할 수 있습니다.
시스템이 오차를 만들었다면 이를 해결하기 위한 방법을 찾아야합니다.(특성 추가, 제거, 이상치 제거 등)
테스트 세트로 시스템 평가하기
이제 어느정도 모델 세부 튜닝이 끝났으니 초반에 나누었던 테스트 세트로 평가를 진행해봅시다. 테스트 세트를 full_pipeline을 통해서 데이터를 정제하고 만들어둔 최상의 모델에서 predict 메소드를 실행하여 예측값을 알아낼 수 있습니다. 그리고 MSE를 통해서 평가해보도록 합시다.
평가 값을 보니 훈련 데이터로 평가했을 때보다 오차가 크다는 것을 알고 있습니다. 아직 모델이 일반화가 덜 진행되었다는 것을 알 수 있습니다. 사실 이러한 결과는 이번 실습에서 사용한 데이터가 충분하지 못하다는 이유가 가장 큽니다. 그러나 데이터를 수집하는 것도 중요하지만 기존의 데이터를 정제하여 최상의 결과를 도출하는 방법을 탐구하는 개발자의 역량도 중요합니다.
마치며
지금까지 머신러닝 모델을 구축하는 과정에 대해서 알아보았습니다. 앞으로 해야 할 것은 최종 모델을 분석하여 오차를 파악하고 다시 데이터를 정제하는 단계를 반복하면서 데이터 파악과 모델의 정확성을 향상시키는 일입니다.
이제 시스템 론칭 직전 단계까지 왔습니다. 학습한 것, 학습하지 않은것, 수립한 가정, 제한사항등을 강조하면서 솔루션과 문서를 출시하고 깔끔한 도표와 기억하기 쉬운 제목으로 멋진 발표자료를 만들어야합니다.
'Machine Learning' 카테고리의 다른 글
머신러닝 모델 - 2. 다항회귀(Polynomial Regression) (0) | 2020.04.16 |
---|---|
머신러닝 모델 - 1. 선형회귀(Linear Regression) (0) | 2020.04.15 |
머신러닝 프로젝트 - 9. 모델 세부 튜닝(그리드 탐색, 랜덤 탐색) (0) | 2020.03.10 |
머신러닝 프로젝트 - 8. 교차검증( K-fold cross-validation) (0) | 2020.03.09 |
머신러닝 프로젝트 - 7. 모델 선택, 훈련 그리고 평가 (0) | 2020.03.08 |