해당 포스트는 패스트 캠퍼스에 초격차 패키지 : 50개 프로젝트로 완벽하게 끝내는 머신러닝 SIGNATURE를 공부한 뒤 각색하여 복습을 위해 작성하였습니다.
이번 5번째 미니 프로젝트에서는 배운내용을 크게 2가지로 정리하면 아래와 같습니다.
이번 미니 프로젝트에서 유방암 환자를 예측할 때 binary classification 방법으로 접근을 했습니다. 이때, 클래스가 negative인 경우와 positive인 경우 두가지가 있을텐데 각 Feature마다 해당 클래스가 어떻게 분포하고 있는지 확인하며 발견한 사실을 소개하고자 합니다.
다음으로는, 데이터에 대하여 여러 모델을 적용하여 모델링을 한 방법을 소개하고자 합니다. 이전 프로젝트에서 여러 Regression 모델들을 활용하여 모델링을 한 것처럼, 이번엔 Classification 모델들을 활용하여 모델링을 진행한 방법을 소개하고자 합니다.
배운 내용을 자세하게 소개하기 전, 이번 미니 프로젝트 전체 진행과정을 간단하게 소개해드리겠습니다.
먼저 문제정의, 기대효과의 정의로 시작했고 다음으로는 제가 크게 배운 내용으로 언급했던 데이터 시각화와 모델링 부분을 해결방안으로서 활용했습니다.
그렇다면 제가 이번 미니 프로젝트를 진행하면서 첫번째로 데이터가 시각화가 왜 중요하다는 것을 배웠는지 소개하고자 합니다.
해당 미니 프로젝트에서 사용했던 데이터의 feature는 30개였습니다. 그중 3개의 feature의 레이블 별로 구분된 히스토그램을 예시로 보여드리겠습니다.
첫번째 히스토그램을 보면 두 히스토그램이 (파란색은 0 (negative) 빨간색이 1 (positive)) 겹치는 부분이 다소 있는 것을 알 수 있습니다. 하지만 전체적으로 봤을 때 두 히스토그램의 구분이 잘 되어있는것으로 보아, 우리는 해당 feature가 유방암 환자를 잘 구분하는 feature가 될 것임을 예상할 수 있습니다.
다음으로 두번째 히스토그램을 보면, 첫번째 히스토그램보다도 겹치는 부분이 더 작은 것을 확인할 수 있습니다. 이를 통해 해당 feature가 두 레이블을 더 잘 구분할 수 있는 feature가 될 수 있음을 예상할 수 있습니다.
이와 반대로, 마지막 두개의 히스토그램 분포는 거의 겹쳐있는 것을 볼 수 있습니다. 이를 통해 우리는 마지막 feature는 두 레이블을 구분하는 것이 어려울 것임을 예상할 수 있습니다.
하지만, 해당 히스토그램들은 feature들간의 상관관계를 고려하지 않고 독립적으로 본 결과입니다. 때문에, 서로 간의 상관관계를 확인하기 위해 heatmap도 같이 보는 것이 좋을 것입니다!
그래서, 히스토그램을 보며 '아 이 feature는 중요할 거야!'라고 확정지는 것이 아니라 나중에 모델링할 때 '히스토그램을 그렸을 때 몇 개의 feature가 레이블을 잘 구분짓는 feature들이 있었는데 실제 모델링을 할 때는 어떨가?'하는 참고자료로 충분히 활용할 수 있는 것을 배울 수 있었습니다.
5개의 모델링 결과를 알려드리기 전에, 간단하게 전체 모델에 똑같이 적용시킨 모델링 과정에 대해 소개해드리겠습니다.
이 과정을 거친 모델들의 결과는 아래와 같습니다.
그 결과, Logistic Regression의 결과가 가장 좋은 것을 확인할 수 있었습니다. fp, fn의 숫자도 가장적고 precision, f1 점수도 가장 높은 것을 확인할 수 있었습니다.
하지만 무슨 이유에서인지, Random Forest의 점수는 생각보다 좋지는 않았습니다. 이를 통해 알 수 있던 사실은 해당 데이터가 트리계열의 ensemble-bagging 모델에는 적합하지 않다는 것 또한 짐작할 수 있었습니다.
제가 배운 내용을 다시 정리하자면 아래와 같습니다.
1. 데이터 시각화를 왜 할까? → 시각화를 통해 feature들의 레이블에 따른 데이터 분포를 확인하여 feature들과 레이블 간의 관계를 모델링 전에 어느 정도 파악할 수 있다
2. 데이터에 맞는 모델을 선택하는 과정을 간단하게 정리하면,
마지막으로 미니 프로젝트 진행과정에서 배운 내용이 아닌, 그 외에 배운 내용을 정리하며 마무리 짓도록 하겠습니다!
Summary