제주 신용카드 빅데이터 경진대회 4

[4] GAN으로 데이터 늘리기 (feat.행복)

GAN 모델을 활용해 결측치 데이터를 불려 보기로 했다. 수업 시간에 배운 GAN 모델의 네트워크 구조를 그대로 사용한다. 이후 이전의 시계열 모형 Baseline을 수정하고, 늘린 데이터를 활용해 시계열 모델을 학습한다. 이전에도 계속 나타났던 primary key와 결측치 문제로 인해, 강사님의 조언을 얻어 데이터 feature의 개수를 3개로 제한했다. # GAN 모델링 데이터를 전처리한 후, GAN 네트워크를 사용해 데이터를 불린다. 1. 전처리 연령대(AGE), 성별(SEX_CTGO_CD), 생애주기(FLC) 피쳐만 사용한다. 사용한 피쳐에 맞게 데이터를 groupby를 통해 집계한다. 집계 후 생긴 결측치는 각 피쳐의 평균값(mean)으로 채워 주었다. 2. GAN 모델 빌드 수업 때 사용했던..

[3] LSTM으로 시계열 모형 만들기 (feat.시행착오)

2019년 1월부터 2020년 3월까지의 데이터를 가지고 2020년 4월, 7월의 데이터를 예측하는 문제이기 때문에, 시계열 모델을 만들어 보았다. 이 모델을 활용해 결측치 채우는 방법, feature engineering 방식 등을 변경해 가며 다양한 경우를 시도해 본다. # 데이터 준비 1. 곱연산 템플릿 만들기 대회 주최 측에서 제공한 데이터는 이미 각 feature(년월, 카드 이용지역, 업종, 고객 거주지역, 연령대, 성별, 가구생애주기)별로 집계된 AMT(이용금액), CSTMR_CNT(이용고객), CNT(이용건수)이다. 데이터를 이해할 때부터 힘들었던 부분이기도 한데, 각 feature별로 합계를 집계했을 때 합이 0이면, 즉, 해당하는 데이터가 없으면 제공된 데이터에 들어있지 않다. 전부 결..

[2] Gradient Boosting 알고리즘 적용해 보기

# 지난 궁금증 1. 피쳐를 추가하여 예측하면 안 되는 것인지? 2. CANCEL 변수를 만들어 확인해 보니, 취소한 경우가 압도적으로 많았다. 단순히 3범주로 나누면 안 되는 것이었나? ☞ 피쳐 추가 및 범주 개수가 문제가 아니라, 전처리 및 범주 나누는 방향을 잘못 설정한 게 아닐까 싶다. 조금 더 고민해볼 것! 3. 예측 시 단순히 average를 취하는 것 말고 지역, 업종별로 CANCEL의 가중평균을 취해준다든지, 아니면 애초에 예측 템플릿을 pd.merge 등을 활용해 CANCEL 변수만 join해주는 방법을 사용해야 할 듯하다. ☞ 애초에 예측 데이터 시계열이 달라서 CANCEL 변수 join하기는 어려울 듯하다. 생각해 보니까 데이터베이스에 대한 이해만 조금만 더 했더라면, 어차피 uniq..

[1] Baseline 이해 및 CANCEL 변수 반영

# 전처리 EDA 단계에서 판단하기로 모든 범주가 변수형이고 피쳐 수가 많지 않다. 피쳐 엔지니어링을 할 것은 없어 보인다. 또한, 애초에 컬럼이 적은데, 시군구 단위에서 세종시에 결측치가 많다. 결측치를 채울 방법이 딱히 생각나지 않기 때문에, 결측치가 있는 피쳐는 drop한다. 범주형 변수인 것만 categorical로 잘 바꿔주면 될 듯하다. # Baseline 코드 분석 대부분의 Dacon Baseline 코드가 그러하듯 RandomForest 알고리즘을 사용했다. 훈련에는 범주형 변수 7개만 사용했다. 범주형 변수를 사용했기 때문에 Scikit-learn의 LabelEncoder를 사용해 인코딩하고, 제출 파일에 디코딩하는 과정이 중요했다. 그 외에 특이한 점은 학습 및 예측을 log scale..