Skip to content

bcaitech1/p2-tab-kyungminkim-dev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

13 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

p2-tab-๊น€๊ฒฝ๋ฏผ

์˜จ๋ผ์ธ ์ƒ์  ๊ณ ๊ฐ ๊ตฌ๋งค ์˜ˆ์ธก

๊ฐœ์š”

๋งŽ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์ •ํ˜•์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ์ •ํ˜•๋ฐ์ดํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„์˜ ๊ธฐ์ดˆ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ •ํ˜• ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ†ตํ•ด EDA, ์ „์ฒ˜๋ฆฌ ์‹ค์Šต์„ ์ง„ํ–‰ํ•˜๊ณ  ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ๋ง์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์—ญ๋Ÿ‰์„ ์ตํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ตœ๊ทผ ์˜จ๋ผ์ธ ๊ฑฐ๋ž˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ณ ๊ฐ๋“ค์ด ๋งŽ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์–ด ๊ณ ๊ฐ๋“ค์˜ log ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ ๊ฑฐ๋ž˜ ๊ณ ๊ฐ log ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ ๊ฐ๋“ค์˜ ๋ฏธ๋ž˜ ์†Œ๋น„๋ฅผ ์˜ˆ์ธก ๋ถ„์„ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ฐ๋“ค์˜ ์›”๋ณ„ ์ด ๊ตฌ๋งค ๊ธˆ์•ก์„ ํ™•์ธํ–ˆ์„ ๋•Œ ์—ฐ๋ง์— ์†Œ๋น„๊ฐ€ ๋งŽ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ™•์ธ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌํ•˜์—ฌ 12์›”์„ ๋Œ€์ƒ์œผ๋กœ ๊ณ ๊ฐ๋“ค์—๊ฒŒ ํ”„๋กœ๋ชจ์…˜์„ ํ†ตํ•ด ์„ฑ๊ณต์ ์ธ ๋งˆ์ผ€ํŒ…์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋ธ์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

์˜จ๋ผ์ธ ๊ฑฐ๋ž˜ log ๋ฐ์ดํ„ฐ๋Š” 2009๋…„ 12์›”๋ถ€ํ„ฐ 2011๋…„ 11์›”๊นŒ์ง€์˜ ์˜จ๋ผ์ธ ์ƒ์ ์˜ ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. 2011๋…„ 11์›” ๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ 2011๋…„ 12์›”์˜ ๊ณ ๊ฐ ๊ตฌ๋งค์•ก 300์ดˆ๊ณผ ์—ฌ๋ถ€๋ฅผ ์˜ˆ์ธกํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Components

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

tab_csv

ํ‰๊ฐ€ ๋ฐฉ๋ฒ•

metric : AUC(Area Under Curve)

AUC

๋“ฑ์ˆ˜

์ตœ์ข… 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์„ ์จ๋ณด๊ณ  ์‹ถ์—ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•ด์„œ ์‹œ๋„ํ•ด๋ณด์ง€ ๋ชปํ•œ๊ฒƒ์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์•™์ƒ๋ธ” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด๋ณด์ง€ ๋ชปํ•œ๊ฒƒ์ด ์•„์‰ฝ์Šต๋‹ˆ๋‹ค.

About

p2-tab-kyungminkim-dev created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published