tak's data blog

[kaggle] 필사하기 (Santander Product Recommendation) 본문

Kaggle

[kaggle] 필사하기 (Santander Product Recommendation)

hyuntaek 2021. 1. 21. 11:41
반응형
SMALL

예전에 kaggle 필사를 하면서 그 순간만 이해하고 기억이 오래가지 못해서 방학을 계기로  

이번에 '머신러닝 탐구생활'이라는 책을 공부하기로 하였습니다.

처음 주제로 kaggle 'Santander Product Recommendation' 대회 필사내용과 느낀점을 공유해보고자 합니다!

 

처음으로 데이터를 살펴보자면 훈련 데이터에는 총 1,300만 개의 고객 데이터가 존재하며, 고객마다 48개의 변수가 존재합니다. 

 

info 결과로 fecha_dato변수는 날짜 전용 data type이 아닌 object 형태였고, 고객의 나이를 기록하는 age변수는 int형태가 아닌 object형태인것을 확인 할 수 있었다.  이 데이터 뿐만 아니라 다른 대회의 데이터들도 데이터타입에 맞지 않는 변수들은 추후에 타입변환이 중요할 것입니다.

24개의 고객 변수 중, 7개의 변수가 수치형 변수인 것을 확인 하였다. 그리고 기본적인 통계량을 요약해서 추출해보았고

 

17개의 나머지 범주형 변수에 대해 고유값을 출력해 특징을 찾아보겠습니다!

변수들 중에 결측치를 포함하고 있거나, 데이터에 맞지 않은 타입을 가지고 있는 변수들을 확인할 수 있었습니다.

 

 

변수들 중 age를 시각화 했을때는 분포가 이어지지 않고 중간에 끊기는 것으로 보아 object형태이기 때문에 문제가 있을 것 같다는 예상을 할 수 있었습니다.

제품 변수의 결측값은 0으로 대체, 범주형 데이터는 .factorize()를 통해 Label Encoding을 수행하고데이터 전처리 과정을 거치고 수치형에서는 특이값을 대체,제거 후 정수형 데이터로 변환합니다.

피처 엔지니어링 과정을 거치고

 

 

머신러닝 모델 학습 과정을 거칩니다.

 

느낀점 

 1. kaggle이나 dacon을 혼자 도전해보고자 무작정 시도해보았을 때는 간단한 EDA과정도 쉽지 않았고, 변수들이 의미하는 바가 무엇인지 감을 잘 잡지 못하였습니다.

age변수에 왜 160이라는 숫자가 있는지 어떤 것의 데이터값을 대체 해야하는지 , 필요없는 변수는 무엇인지 등 어려움이 많았습니다. 저자의 말대로 변수들의 특성을 '변수 표'로 정리하니 한눈에 보기 좋고 도움이 전체적인 흐름을 볼 수 있어 좋았습니다.

 

2. describe만으로 min~max 사이의 값을 확인하는 것의 중요성과 간단한 시각화를 통해서 예를 들어 age변수는 예상과 다른 분포로 데이터 형태의 변환이 필요하다는 것을 알고, 고객 들의 가입형태의 빈도등을 확인 할 수 있어 시각화의 중요성을 다시 깨닫게 되었습니다.

 

3. 시계열 데이터의 경우 위의 피처엔지니어링 과정에서 lag-1등과 같이 저번달에 금융 제품을 보유하고 있었는지 여부를 파생 변수로 사용하여 기존의 데이터와 합치는 과정을 진행 할 수 있고 추후에 2달전인 lag-2 등의 파생 변수를 생성해서 성능을 향상시키는 방향도 있다는 것을 알게되었다.

 

반응형
LIST