๋ง์ ๋ฐ์ดํฐ๊ฐ ์ ํ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , ์ ํ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ ๋ถ์์ ๊ธฐ์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ ํ ๋ฐ์ดํฐ ๋ถ์์ ํตํด EDA, ์ ์ฒ๋ฆฌ ์ค์ต์ ์งํํ๊ณ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ๋ง์ ํตํด์ ๋ฐ์ดํฐ ๋ถ์์ ๋ํ ์ ๋ฐ์ ์ธ ์ญ๋์ ์ตํ ์ ์์ต๋๋ค.
์ต๊ทผ ์จ๋ผ์ธ ๊ฑฐ๋๋ฅผ ์ด์ฉํ๋ ๊ณ ๊ฐ๋ค์ด ๋ง์ด ๋์ด๋๊ณ ์์ด ๊ณ ๊ฐ๋ค์ log ๋ฐ์ดํฐ๊ฐ ๋ง์ด ๋์ด๋๊ณ ์์ต๋๋ค. ์จ๋ผ์ธ ๊ฑฐ๋ ๊ณ ๊ฐ log ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ณ ๊ฐ๋ค์ ๋ฏธ๋ ์๋น๋ฅผ ์์ธก ๋ถ์ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ค ํฉ๋๋ค.
๊ณ ๊ฐ๋ค์ ์๋ณ ์ด ๊ตฌ๋งค ๊ธ์ก์ ํ์ธํ์ ๋ ์ฐ๋ง์ ์๋น๊ฐ ๋ง์ด ์ด๋ฃจ์ด์ง๊ณ ์๋ ๊ฒ์ผ๋ก ํ์ธ์ด ๋์์ต๋๋ค. ๊ทธ๋ฆฌํ์ฌ 12์์ ๋์์ผ๋ก ๊ณ ๊ฐ๋ค์๊ฒ ํ๋ก๋ชจ์ ์ ํตํด ์ฑ๊ณต์ ์ธ ๋ง์ผํ ์ ํ๊ธฐ ์ํด ๋ชจ๋ธ์ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
์จ๋ผ์ธ ๊ฑฐ๋ log ๋ฐ์ดํฐ๋ 2009๋ 12์๋ถํฐ 2011๋ 11์๊น์ง์ ์จ๋ผ์ธ ์์ ์ ๊ฑฐ๋ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง๋๋ค. 2011๋ 11์ ๊น์ง ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ 2011๋ 12์์ ๊ณ ๊ฐ ๊ตฌ๋งค์ก 300์ด๊ณผ ์ฌ๋ถ๋ฅผ ์์ธกํด์ผ ํฉ๋๋ค.
Main.ipynb
- feature engineering, random seed๊ณ ์ , ๊ฒฐ๊ณผ ๋์ถ๋ฑ ์์ธก์ ํ์ํ ๋ชจ๋ ํจ์๋ค์ ๊ตฌํํ ํ์ผ์ ๋๋ค.
ensemble.ipynb
- ์ฌ๋ฌ๊ฐ์ ๋ชจ๋ธ์ ์์๋ธํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ ํ์ผ์ ๋๋ค. ์์๋ธ์๋ ๋จ์ ํ๊ท ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ต๋๋ค.
test.txt
- ๋ํ ์งํ๋์ ์ ์ถํ ๋ชจ๋ธ์ test AUC, train AUC, ์ต์ข AUC, ์ฌ์ฉํ ํผ์ณ, ๋ชจ๋ธ, ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฑ์ ์ ๋ฆฌํ ํ์ผ์ ๋๋ค.
- order_id : ์ฃผ๋ฌธ ๋ฒํธ, ๋ฐ์ดํฐ์์ ๊ฐ์ ์ฃผ๋ฌธ๋ฒํธ๋ ๋์ผ ์ฃผ๋ฌธ์ ๋ํ๋
- product_id : ์ํ ๋ฒํธ
- description : ์ํ ์ค๋ช
- quantity : ์ํ ์ฃผ๋ฌธ ์๋
- order_date : ์ฃผ๋ฌธ ์ผ์
- price : ์ํ ๊ฐ๊ฒฉ
- costomer_id : ๊ณ ๊ฐ ๋ฒํธ
- country : ๊ณ ๊ฐ ๊ฑฐ์ฃผ ๊ตญ๊ฐ
- total : ์ด ๊ตฌ๋งค์ก
- ์ด 780502์ row , 9๊ฐ์ feature
metric : AUC(Area Under Curve)
์ต์ข LB AUC : 0.8572 , 36๋ฑ/ 99
stratified K fold(fold = 10)์ ์ฌ์ฉ ํ์ฌ ๊ฒ์ฆ ํ์ต๋๋ค.
๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข์๋ ๋ ๋ชจ๋ธ์ ์์๋ธ ํด์ ์ต์ข ์ ์๋ฅผ ์ป์์ต๋๋ค.
์ฒซ๋ฒ์งธ ๋ชจ๋ธ์ ํผ์ณ๋ก group cumsum Agg์ Time-Series diff๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. nunique ํผ์ณ๋ฅผ ์ถ๊ฐํด ๋ณด์์ง๋ง ์คํ๋ ค ์ฑ๋ฅ์ด ๋จ์ด์ ธ์ ์ฌ์ฉ์ ํ์ง ์์์ต๋๋ค. ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ optuna๋ฅผ ์ฌ์ฉํด์ ์ต์ ํ๋ฅผ ํ์ต๋๋ค. n_trial๊ฐ์ 10์ ์ฌ์ฉํ์ต๋๋ค. n_trial๊ฐ์ 30์ ์ฃผ๋ train, test AUC ์ ์๋ 10์ผ๋ ๋ณด๋ค ๋ ๋๊ฒ ๋์์ง๋ง public LB ์ ์๋ ์คํ๋ ค ๋ฎ์์ต๋๋ค. ์ค๋ฒํผํ ์ด ๋ฐ์ํ๊ฒ์ผ๋ก ๋ณด์ ๋๋ค. ์ด๋ฒ ๋ํ์์๋ catboost์ xgboost๋ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ๋ ๋ชจ๋ธ ๋ค ์ ๋ถ lightGBM๋ณด๋ค ์ฑ๋ฅ์ด ๋ฎ๊ฒ ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ด ๋ชจ๋ธ์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- tuned_lgb_params = { 'objective': 'binary', 'boosting_type': 'gbdt', 'metric': 'auc', 'feature_fraction': 0.4037902763824288, 'bagging_fraction': 0.44651205628348084, 'bagging_freq': 4, 'n_estimators': 10000, 'early_stopping_rounds': 100, 'seed': SEED, 'verbose': -1, 'n_jobs': -1, 'num_leaves': 43, 'max_bin': 140, 'min_data_in_leaf': 36, 'lambda_l1': 1.6722093110936513, 'lambda_l2': 2.1262853662727266, }
์ฒซ๋ฒ์งธ ๋ชจ๋ธ์ Public AUC ์ ์๋ 0.8567์ ๋๋ค.
๋๋ฒ์งธ ๋ชจ๋ธ์ ์ฒซ ๋ฒ์งธ ๋ชจ๋ธ์ nunique ๋ณ์๋ฅผ ์ถ๊ฐ ํ ๋ค, ์์นํ ๋ณ์์ quantile_transform์ ์ ์ฉํ ๋ชจ๋ธ์ ๋๋ค. nunique๋ณ์๋ฅผ ์ถ๊ฐํด์ q_t๋ฅผ ์ ์ฉํ๋ ์ ์๊ฐ ๋ ์๋์์ต๋๋ค. ํ์ดํผ ํ๋ผ๋ฏธํฐ ํ๋์ ์งํ ํ๊ณ ํ๋ผ๋ฏธํฐ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- {'num_leaves': 159, 'max_bin': 135, 'min_data_in_leaf': 28, 'feature_fraction': 0.9068781382922049, 'bagging_fraction': 0.5427572227580095, 'bagging_freq': 4, 'lambda_l1': 2.531979160239369, 'lambda_l2': 1.645404534997536e-05}
๋๋ฒ์งธ ๋ชจ๋ธ์ Public AUC์ ์๋ 0.8558 ์ ๋๋ค.
๋ง์ง๋ง์ผ๋ก ์ ์ถํ ๋ชจ๋ธ์ ์ ๋ ๋ชจ๋ธ์ ๋จ์ํ๊ท ํ์ฌ ์์๋ธ์ ํ ๋ชจ๋ธ์ ๋๋ค.
-
ํผ์ณ ์์ง๋์ด๋ง ๋ถ๋ถ์์ ์ฐฝ์์ ์ธ ๋ณ์๋ฅผ ๋ง๋ค์ด ๋ด์ง ๋ชปํ๊ฒ์ด ์์ฝ์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ ์๊ฐ์ด ๋ถ์กฑํด ๋ณด์ ๋๋ค. ํ ๋ก ๊ฒ์ํ์ ๋ณด๋ฉด ๊ณ์ ์ฑ์ด๋ ์ฃผ๊ธฐ์ฑ์ ์ถ๊ฐํ์ฌ ์ฑ๋ฅํฅ์์ ๋ณด์ธ ๋ถ๋ค์ด ๋ณด์์ต๋๋ค.
-
pandas์ ๋ํ ์๋ จ๋๊ฐ ๋ถ์กฑํด์ ๋ค์ํ ์๋๋ฅผ ํ์ง ๋ชปํ์ต๋๋ค. ๋ฒ ์ด์ค๋ผ์ธ ์ฝ๋๋ฅผ ์ฝ๊ณ ์์ฉํ๋ ๋ถ๋ถ์์ pandas์๋ จ๋์ ๋ถ์กฑ์ผ๋ก ์ธํด ์๋ฌ๊ฐ ๋ง์ด ๋ฐ์ํ๊ณ ์๊ฐ์ ๋ง์ด ์ก์๋จน์์ต๋๋ค.
-
TabNet์ ์จ๋ณด๊ณ ์ถ์์ง๋ง ์๊ฐ์ด ๋ถ์กฑํด์ ์๋ํด๋ณด์ง ๋ชปํ๊ฒ์ด ์์ฝ์ต๋๋ค.
-
์ฌ๋ฌ๊ฐ์ง ์์๋ธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด๋ณด์ง ๋ชปํ๊ฒ์ด ์์ฝ์ต๋๋ค.

