머신러닝에서 로지스틱회귀분석 강의까지 마치면서 마무리로 전처리부터 모델링까지 한큐에 가는 과정을 강의와 함께 손코딩을 해보았다.
머리로 모든 것을 다 이해하기는 어려울 것 같아서 손코딩으로 따라서 치면서 흐름을 파악하는 것을 목표로 설정했다.
Kaggle에 타이타닉 데이터셋을 사용했다.
타이타닉 데이터에는 train(학습), test(검증) 데이터 셋이 같이 있었다.
제일 처음에는 데이터셋의 구성을 확인한다. 데이터 전처리를 위해 데이터 탐색(EDA)를 진행하는데 여기서 기술통계와 시각화를 통해서 모델링에 사용할 데이터를 골라내는 작업을 한다.
왜 이것을 진행하냐면, 데이터에는 수치형 데이터와 범주형데이터로 나뉘어져 있어서 가공하여 사용할 데이터를 물색하기 위해서다.
데이터 전처리과정에서는 학습 데이터를 위주로 작업을 진행하며 똑같은 과정으로 검증데이터도 적용해야하기 때문에 반복되는 작업의 경우는 함수로 작성해둔다.
결측치 처리나 이상치 제거를 한다.
이후 이상치의 영향을 덜 받고 일반적인 패턴으로 학습할 수 있도록 정규화, 표준화 작업을 위해 seaborn의 standardscaler, MinMaxscaler를 활용한다.
위와 같은 작업들은 수치형 자료들을 전처리한 것이고 범주형 자료는 레이블인코딩이나 원핫인코딩을 통해서 컴퓨터가 이해할 수 있는 언어로 바꿔주는 작업을 진행한다.
모델링을 위한 전처리 작업을 마친 컬럼들을 대상으로 회귀모델을 지정하여 학습을 진행해준다.
y는 종속변수, X는 독립변수로 여러개의 독립변수들로 하여금 y 종속변수의 값을 학습하는 것이다.
이렇게 모델링이 된 변수를 예측값을 측정하고 이것으로 종속변수에 대한 예측값의 정확도(accuracy)와 설명력을 위한 F1-score를 측정한다.
정확도와 F1-score 수치가 약 80%에 가까운 수치라면 이 다음에 검증 데이터에 대해서도 같은 작업을 반복해준다.
kaggle 의 타이타닉 데이터는 이렇게 학습데이터로 학습한 모델링을 테스트 데이터에 적용하여 나온 예측값을 타이타닉호 승선객의 생존 여부에 예측값을 붙혀서 kaggle에 파일을 제출하면 예측력에 대한 수치를 확인할 수 있었다.
고생했다! 꾸준히 노력하는 당신에게 존경의 박수를 표합니다 🫸🏻🫷🏻