실전 연습! AIC 합격 템플릿으로 머신러닝 프로젝트 5단계 완벽 정복
머신러닝 프로젝트, 이렇게 하면 끝! (중학생 눈높이 설명)
이번 시간엔 드디어 우리가 배운 머신러닝 내용을 진짜 프로젝트처럼 한번 쭉 따라가 볼 거야. 목표는 그냥 모델 하나 뚝딱 만드는 게 아니라, AIC 시험 같은 데서도 써먹을 수 있게 머신러닝 프로젝트가 어떻게 돌아가는지, 각 단계에서 뭘 봐야 하는지 딱 정해진 틀(템플릿)로 익히는 거지! 이 틀만 잘 기억해두면, 나중에 데이터만 쏙 바꿔 끼우면 돼.
1. 필요한 도구들 챙기기 (라이브러리 불러오기)
먼저 프로젝트에 필요한 도구들을 잔뜩 불러와야 해.
- 데이터 다루기: 판다스, 넘파이 (데이터를 표처럼 다루고 계산하는 데 써)
- 그림 그리기: 맷플롯립, 시본 (데이터를 그래프로 보여주는 데 써)
- 모델 만들기: 사이킷런 (머신러닝 모델 만드는 기본 도구)
- 더 똑똑한 모델: XGBoost, LightGBM (더 복잡하고 성능 좋은 모델들도 같이 불러올 거야)
이 단계에서 프로젝트의 기본 세팅은 끝난다고 보면 돼. 그리고 그래프에 한글이 깨지지 않게 하는 코드도 같이 실행할 거야. 이번 예제에서는 우리가 계속 써왔던 와인 데이터셋을 사용할게. 실제 프로젝트에서는 CSV 파일, 엑셀, 데이터베이스 등 다양한 곳에서 데이터를 가져오게 돼.
데이터를 불러와서 표(데이터프레임)로 만들고, 우리가 예측할 정답(레이블)이랑 예측에 쓸 정보(입력 변수)를 하나로 합쳐줄 거야.
2. 데이터 탐색하기 (EDA - 탐색적 데이터 분석)
이제 데이터를 자세히 살펴보는 시간이야. 왜냐고?
- 데이터가 얼마나 있는지?
- 빠진 데이터(결측치)는 없는지?
- 정답(클래스)들이 골고루 있는지?
이런 걸 확인해야 해. 아래 그래프를 보면 각 정답이 얼마나 있는지 비율을 알 수 있어. 만약 어떤 정답이 너무 적으면, 나중에 모델 성능을 볼 때 '정확도'만 믿으면 안 된다는 신호야.
describe()라는 걸 쓰면 각 정보(변수)의 평균, 제일 작은 값, 제일 큰 값 같은 걸 볼 수 있어. 이걸 보면 데이터에 이상한 값은 없는지, 값들의 크기 차이가 너무 큰지 감을 잡을 수 있지.
3. 데이터 다듬기 (전처리)
이 단계가 실제 프로젝트에서 제일 오래 걸리는 부분이야. 데이터를 모델이 잘 이해할 수 있게 다듬는 거지.
- 빠진 데이터(결측치) 없애기
- 정답이랑 예측할 정보 분리하기
- 데이터를 공부할 데이터(학습용)와 시험 볼 데이터(테스트용)로 나누기
- 값들의 크기를 비슷하게 맞춰주기 (스케일링)
여기서 진짜 중요한 원칙이 있어! 스케일링할 때, 학습 데이터로만 '기준'을 잡고(fit), 테스트 데이터에는 그 기준대로 '변환'만 해야 해(transform). 이걸 안 지키면 데이터가 새어나가는 거라 모델이 속게 돼. 꼭 기억해!
4. 모델 공부시키기 (모델 학습)
이제 드디어 모델을 공부시킬 시간이야! 이번엔 랜덤 포레스트, 그레디언트 부스팅, XGBoost, LightGBM 이렇게 네 가지 모델을 똑같은 조건에서 비교해 볼 거야.
각 모델한테 공부할 데이터를 주고 학습시킨 다음에, 시험 볼 데이터로 예측을 해보고 정확도를 계산하는 거지. 이렇게 하면 어떤 모델이 이 데이터에 제일 잘 맞는지 빠르게 알 수 있어.
5. 결과 그래프로 보기 (시각화)
학습시킨 모델들의 결과를 그래프로 정리해 보자. 막대 그래프를 보면 모델별로 정확도가 얼마나 차이 나는지 한눈에 보이지? 이 단계에서는 숫자 하나하나보다는 전체적인 경향을 보는 게 중요해.
6. 모델 성능 더 좋게 만들기 (하이퍼파라미터 튜닝)
지금까지는 모델을 기본 설정으로 썼는데, 이제 성능을 더 끌어올려 볼 거야. 이때 '그리드 서치 CV'라는 걸 사용해. 이건 여러 가지 설정값 조합을 자동으로 시험해보고 가장 좋은 걸 찾아주는 거야.
여기서는 그레디언트 부스팅 모델을 가지고, 나무(트리) 개수, 나무 깊이, 학습 속도 같은 설정값들을 조합해서 찾아볼 거야. 결과가 나오려면 조금 기다려야 할 수도 있어.
결과를 보면 어떤 설정값이 제일 좋았는지, 그리고 그 설정값으로 얻은 최고의 정확도를 알 수 있어. 튜닝이 왜 중요한지 직접 느낄 수 있을 거야!
7. 최종 모델로 다시 평가하기
튜닝으로 얻은 가장 좋은 모델로 다시 한번 테스트 데이터를 평가해 보자. 정확도만 보는 게 아니라 '분류 리포트'도 같이 봐야 해. 여기에는 정확도 말고도 재현율, F1 스코어 같은 더 자세한 정보들이 담겨 있어.
그리고 '혼동 행렬'이라는 걸 보면, 모델이 어떤 정답을 어디서 틀리는지 자세히 알 수 있어. 이건 모델을 더 깊이 이해하는 단계라고 생각하면 돼.
마지막으로 '특성 중요도' 그래프를 보자. 이 그래프는 모델이 예측할 때 어떤 정보(변수)를 가장 중요하게 썼는지 보여줘. 이걸 보면 모델이 왜 그렇게 예측했는지 이해하거나, 어떤 정보가 중요한지 알아내는 데 도움이 돼.
8. 프로젝트 흐름 정리
이번 시간에 배운 프로젝트 흐름을 다시 한번 정리해 볼게.
- 데이터 불러오기
- 데이터 탐색 (EDA)
- 데이터 전처리
- 모델 학습
- 평가 및 시각화
- 하이퍼파라미터 튜닝
이 구조가 바로 모든 머신러닝 프로젝트의 기본 틀이야. 이 틀을 기준으로 데이터만 바꿔 끼우면, 너도 언제든지 머신러닝 프로젝트를 시작할 수 있어!
여기까지 챕터 5를 마무리할게. 수고 많았어!