본문 바로가기

DataAnalysis7

[Santander Product Recommendation] 전혀 다른 모델 활용하기(MLP) 이번에는 XGBOOST가 아닌 MLP(Multi Layer Perceptron)을 활용한 학습한 내용에 대해 포스팅하겠습니다. 이번 포스팅은 아래 링크를 참고하였으니 더 자세한 내용이나 코드를 원하시는 분은 아래 참고 바랍니다. https://www.kaggle.com/hachemsfar/keras 많은 대회를 참가하지 않았지만 대회 리뷰들을 읽다보면 의외로 MLP가 좋은 성적을 거두는 경우들이 있습니다. 물론 MLP만 활용하는 것은 아니고 MLP와 다른 모델을 섞어서 다양성을 주는 겁니다. 이때 MLP를 학습시키는 게 매우 어려울때가 많습니다. 적당한 Hyperparameter들을 세팅해주지 않으면 생각처럼 학습이 잘 되지 않습니다. 기존에 세팅해뒀던 Baseline을 기반으로 모델만 변경하여 학습해봤.. 2019. 12. 25.
[Santander Product Recommendation] Feature engineering 어렵게, 정말 어렵게 Baseline을 구축했습니다. 쉽게 갈 수 있는 길을 어렵게 돌아온 이유는 생각해보면 문제에 대한 이해를 후순위에 두고 기술적으로만 접근했기 때문인 것 같습니다. 큰 교훈 하나 얻었으니 다음 대회부턴 문제에 대한 이해를 우선시 해야겠습니다. 아무튼 현재까지 구축된 Baseline을 기반으로 모델 성능을 Improve 하는 시도를 해보겠습니다. 1. Baseline : Public Score 0.01088 - lag-1 값(지난달 개인정보 + 보유 상품)을 신규 Feature로 하고 3 Folds(shuffle =True)로 CV 했을때 결과 입니다. - 생각보다 결과가 나빴지만 어렵게 구축한 Baseline인 만큼 만족하고 다음 단계로 넘어갔습니다. 2. Fold 구성 방식 변경 .. 2019. 12. 25.
[Santander Product Recommendation] Baseline 구축하기② 이번 포스팅에서는 앞서 언급한 치명적인 실수가 무엇인지 파헤쳐본 결과에 대한 것입니다. 열심히 Baseline을 구축하고 결과를 제출한 순간 LB Score 0.00698라는 처참한 결과를 얻었습니다. 무엇이 잘 못되었는지 아무리 뒤져봐도 모르겠어서 "머신러닝 탐구생활" 책에 제공된 Script를 한줄 한줄 필사 했습니다. 모델링까지 필사를 다하고 나니까 문제가 무엇인지를 깨달았네요. 제 사고가 문제였습니다. 머리를 개조해야했죠. 문제를 해결하기 위해 여러 방면으로 많은 시도(ex, fold 나눌때 Shuffle =True로 변경)를 했었는데 Valid log loss 1.5를 뚫지 못했었습니다. 1. 보이는 Target값(Y)이 Target값이 아니다. - 문제를 제대로 이해하지 못해서 발생하는 문제였.. 2019. 12. 25.
[Santander Product Recommendation] Baseline 구축하기① 이번 포스팅에서는 Baseline 구축을 위한 삽질을 공유해보고자 합니다. 먼저 이번 포스팅은 최종적인 Baseline을 만들기 전 실패한 경우를 이야기 하고 있음을 알려드립니다. Santander Product Recommendation 대회의 주된 목적은 고객이 신규로 구매할 것 같은 상품을 예측하는 것입니다. 하지만 주어진 데이터는 월별 고객이 보유한 상품 데이터입니다. 이를 인지하는 것이 Baseline을 구축하는데 중요한 포인트입니다. 저는 이것을 나중에 인지하고 기계적으로 Baseline을 구축하여 제출했다가 처참한 LB Score를 받았네요 아래는 월별 고객 보유 상품 데이터로 Baseline을 구축했던 과정입니다. 신규 구매 상품 예측 모델은 다음 포스팅에서 이야기하도록 하겠습니다. ㅁ B.. 2019. 12. 25.
[Santander Product Recommendation] 데이터 탐색하기 ② : Y Santander Product Recommendation 대회의 Target 값의 분포를 확인해보겠습니다.(타겟변수 총 24개) Training 데이터를 기반으로 각각의 분포를 확인해보면, - ind_cco_fin_ult1 상품의 구매가 가장 많았고 - ind_ahor_fin_ult1, ind_aval_fin_ult1 상품의 구매가 가장 적었습니다. 추후 모델링을 할 때는 구매가 거의 없었던 ind_ahor_fin_ult1, ind_aval_fin_ult1 Target 값은 제외하고 하겠습니다. # Target value 분포 확인하기 cols = ['ind_ahor_fin_ult1', 'ind_aval_fin_ult1', 'ind_cco_fin_ult1', 'ind_cder_fin_ult1', 'in.. 2019. 12. 22.
[Santander Product Recommendation] 데이터 탐색하기 ① : X Santander Product Recommendation 대회의 경우 총 24개의 X 인자와 24개이 Y 인자로 구성되어 있습니다. 이번 포스팅에서는 X/Y 인자를 나누어서 데이터 특징을 퀵하게 파악해보도록 하겠습니다. 일부 데이터는 다소 지저분하게 기록되어 있습니다(1.0 or 1). 이를 Cleaning 하는 작업은 Baseline 구축 편에서 이야기 하도록 하겠습니다. ㅁ 데이터 탐색하기(X) 1. fecha_dato : 월별 날짜 데이터로 2015년 1월~6월까지 데이터가 적고 점차 늘어남. 2. Ind_empleado(고용여부) - A : active / B ex employed(전직) / F filial / N not employee / P pasive - N(Not employee) : 9.. 2019. 12. 19.
[Santander Product Recommendation] 대회 소개 스페인 은행 Santander 가 Kaggle을 통해 개최한 "Santander Product Recommendation" 이라는 대회를 리뷰하며 데이터 분석 방법을 공유 하고 수상자의 노하우를 벤치마킹 하고자 합니다. 포스팅은 분석 단계를 쪼개서 최대한 디테일하게 분석 내용을 공유하는 방향으로 진행될 예정입니다. ㅁ 대회 및 데이터 소개 - 일정 기간(2015.01~2016.05) 동안의 고객 특성, 행동 데이터를 기반으로 다음달(2016.06)에 어떤 상품을 구매할 것인지 예측하는 대회 - 총 24개의 독립 변수(X) 와 24개의 종속 변수(Y)로 이루어져 있는 Multiclass & Multilabel 분류 분제 ㅁ 평가 함수 리뷰 - 데이터 분석하기 앞서 먼저 평가 함수(Evaluation fun.. 2019. 11. 25.