김영석님은 Section 2에서 다양한 데이터셋을 활용한 머신러닝 방법론을 공부했습니다. 익숙한 데이터부터 전혀 도메인 지식이 없는 데이터까지 모두 다뤄봤습니다.
이번 프로젝트에선 김영석님이 직접 선택한 데이터셋을 사용해서 만든 머신러닝 예측 모델을 통한 성능 및 인사이트를 도출/공유하는 것이 목표입니다.
Section 2 프로젝트의 목표는 개요에서 알려드린대로
데이터셋을 사용하여 머신러닝 모델을 만든 후 성능 및 인사이트를 도출 / 공유하는 것
으로 데이터셋 선정부터 모델 해석까지의 결과를 보여주는 것입니다.
데이터 전처리/EDA 부터 모델을 해석하는 과정을 코드로 작성하고, 해당 내용을 설명하는 영상을 제작하는 것이 이번 프로젝트 기간 동안 김영석님이 수행하셔야 하는 태스크입니다. 당연히 어떠한 코드, 분석, 라이브러리 혹은 목표를 가지는지는 온전히 김영석님의 자유입니다. 그러나, Section 2 Project인 만큼 해당 기간 동안 배운 내용을 위주로 설정하는 것이 권장됩니다.
Section2 프로젝트에서는 머신러닝 모델을 사용해야 합니다! 배운 머신러닝 모델만 사용해야한다는 의미가 아니라 다양한 머신러닝 모델을 사용해보셔도 되는데 꼭 머신러닝 모델을 사용해주세요.(딥러닝 모델, 강화학습 모델 등등 아님)
추가로, 김영석님의 발표를 듣는 사람은 비데이터 직군이라 가정합니다.
즉 김영석님의 생각이나 가정들을 설명하는 과정에서 최대한 배경지식이 없는 사람들도 이해할 수 있도록 노력하시기 바랍니다!
프로젝트에 포함되어야 할 하위 태스크와 권장 기한을 안내드립니다. 프로젝트 발표 흐름은 자유이지만 아래 내용이 반드시 포함되어야 합니다!
관심 도메인의 하위 주제에서 해결하고자 하는 문제를 정의하고 프로젝트에 사용할 데이터셋을 선정합니다.
데이터 기반의 사고방식, data-driven의 마음가짐을 section1과 2에서 배웠습니다. 이번에는 그것들을 심화시켜서 문제 해결을 시도해 봅니다.
이 과정을 통해 김영석님,
해결하고자 하는 문제를 구체적인 상황으로 제시합니다.
문제 해결의 필요성에 대해 명확히 제시합니다.
데이터셋 선정이 끝났다면 어떤 유형의 문제로 (분류 / 회귀) 접근할지 결정합니다.
데이터셋에서 해결하고자 하는 문제 정의에 적절한 타겟을 선정합니다.
타겟을 잘 설명할 수 있을 만한 특성에 대한 가설을 설정합니다.
‘여행지에 따라 티켓가격이 달라질 것이다.’ 와 같은 당연한 가설이 아닌 비즈니스적으로 인사이트를 도출할 수 있을만한 가설을 설정합니다.
❗현실의 문제를 머신러닝의 언어로 정의하는 능력은 머신러닝 개발자의 필수 역량입니다. 부트캠프 내 기존에 사용된 데이터셋이나 캐글 등에서 이미 정의된 문제를 그대로 사용하는 것은 지양해 주세요.
태스크를 수행한 후, 다음 질문에 대답할 수 있어야 합니다.
내가 세운 가설이 문제 해결에 의미가 있나요?
해당 특성을 target으로 지정한 이유를 설명하세요.
데이터셋을 머신러닝 모델링에 적합하게 전처리하고, 피쳐의 분포 / 피쳐와 타겟 간의 상관관계 등에 대한 EDA를 진행합니다.
진행 후 얻은 데이터에 대한 인사이트를 시각화를 통해 제시합니다.
이 과정을 통해 김영석님,
머신러닝에 적합한 형태로 데이터 타입을 변경합니다.
여러 테크닉을 사용해 결측치를 적절히 처리합니다.
본인의 전처리 과정에 대해 근거를 들어 설명합니다.
피쳐의 분포를 확인하고 이상치를 적절히 제거합니다.
1에서 세운 가설과 관련된 시각화 결과를 제시합니다.
❗ 데이터의 전처리 및 cleaning 과정은 모델링 성능에 큰 영향을 줍니다. 김영석님이 선정한 Task에 맞게 다양한 처리 방법을 조사 후 적용해 보세요.
태스크를 수행한 후, 다음 질문에 대답할 수 있어야 합니다.
Data Leakage가 있었나요? 없었다면 어떻게 방지했나요?
특성과 타겟의 관계 및 가설을 충분히 설명할 수 있는 시각화 결과를 제시했나요?
전처리 과정에 대한 근거와 설명이 있나요?
문제의 유형(분류 / 회귀)에 맞게 후보 모델군을 선정하고, 해당 모델군에서 최적 모델을 학습 후 성능을 확인합니다.
모델 해석을 위한 여러 수치적 지표(Feature Importances) 및 시각화 기법을 사용하여 모델의 작동을 해석합니다.
이 과정을 통해 김영석님,
baseline 모델을 선정하고 이에 기반해 모델링 성능을 평가합니다.
다양한 Feature Engineering 과정을 통해 모델 성능을 최적화합니다.
문제 정의에 맞는 평가 지표를 선택하여 모델의 성능을 설명합니다.
교차검증이나 hold-out 기법을 사용해 학습 성능과 일반화 성능을 구분하여 제시합니다.
여러 수치적 지표 및 permutation importance, pdp등을 활용하여 최종모델을 설명합니다. 시각화는 설명이 가장 중요합니다.
1에서 제시한 가설을 해결하고 인사이트를 도출합니다.
태스크를 수행한 후, 다음 질문에 대답할 수 있어야 합니다.
모델을 학습한 후에 베이스라인보다 잘 나왔나요? 그렇지 않다면 그 이유는 무엇일까요?
모델 성능 개선을 위해 어떤 방법을 적용했나요? 그 방법을 선택한 이유는 무엇인가요?
최종 모델과 일반화 성능에 관해 설명하세요.
모델이 예측을 수행하기 위해서 어떤 특성을 활용했나요?
프로젝트의 결과를 정리하여 발표자료를 제작합니다.
청자가 비데이터직군이라 가정하고, 본인의 프로젝트 논리 전개 과정을 꼼꼼히 담아 보세요.
이 과정을 통해 김영석님은
설정한 가설의 해소 과정을 논리적으로 제시합니다.
본인의 프로젝트를 회고하고 보완할 점을 제시합니다.
태스크를 수행한 후, 다음 질문에 대답할 수 있어야 합니다.
프로젝트의 기본적인 체크리스트를 모두 만족했나요?
영상과 발표 자료의 파일명이 가이드에서 제시한 파일명과 일치한가요?