Skip to content

๐Ÿ›’ Online Store Customer Purchase Prediction Competition, hosted by Boostcamp AI Tech (2021.04 - 2021.04)

Notifications You must be signed in to change notification settings

CoodingPenguin/online-store-customer-purchase-prediction

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Online Store Customer Purchase Prediction

logo Photo by Mike Petrucci on Unsplash

๐Ÿ“Œ ๋ชจ๋ธ ํ•™์Šต ์ฝ”๋“œ์— ๊ด€ํ•œ ์„ค๋ช…์€ code ํด๋”๋ฅผ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”!


๐Ÿ“ Table of Contents


๐Ÿ“– ๋Œ€ํšŒ ๊ฐœ์š”

๋ฐฐ๊ฒฝ

  • ์ตœ๊ทผ ์˜จ๋ผ์ธ ๊ฑฐ๋ž˜๋ฅผ ์ด์šฉํ•˜๋Š” ๊ณ ๊ฐ๋“ค์ด ๋งŽ์ด ๋Š˜์–ด๋‚˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ์— ๋Œ€ํ•œ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋„ ๋งŽ์ด ๋“ค์–ด๋‚˜๊ณ  ์žˆ๋‹ค.
  • ์ด ๋กœ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ณ ๊ฐ๋ณ„ ๋ฏธ๋ž˜ ์†Œ๋น„๋ฅผ ์˜ˆ์ธกํ•˜์—ฌ 12์›” ๊ณ ๊ฐ ๋Œ€์ƒ์œผ๋กœ ํ”„๋กœ๋ชจ์…˜์„ ํ†ตํ•ด ์„ฑ๊ณต์ ์ธ ๋งˆ์ผ€ํŒ…์„ ์ด๋Œ๊ณ ์ž ํ•œ๋‹ค.
  • ์ฆ‰, ์–ด๋Š ์ •๋„ ์†Œ๋น„๋ฅผ ํ• ์ง€ ์˜ˆ์ธกํ•˜๊ณ  ํ”„๋กœ๋ชจ์…˜ ๋ฌผ๋Ÿ‰, ์„ธ๋ถ€ ๊ณ„ํš์„ ์ •ํ•˜๊ณ ์ž ํ•œ๋‹ค.

๋ฌธ์ œ ์ •์˜

2009๋…„ 12์›”๋ถ€ํ„ฐ 2011๋…„ 11์›”๊นŒ์ง€์˜ ์˜จ๋ผ์ธ ์ƒ์ ์˜ ๊ฑฐ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  2011๋…„ 12์›” ๊ณ ๊ฐ ๊ตฌ๋งค์•ก์ด 300์„ ์ดˆ๊ณผํ•˜๋Š”์ง€ ์˜ˆ์ธกํ•˜๋Š” ๋ถ„๋ฅ˜ ๋ชจ๋ธ

  • input : 2009๋…„ 12์›”๋ถ€ํ„ฐ 2011๋…„ 11์›”๊นŒ์ง€์˜ ๊ฑฐ๋ž˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ
    • ๊ณ ๊ฐ์— ๋Œ€ํ•œ ์ •๋ณด : ๊ณ ๊ฐ id, ๊ณ ๊ฐ ๊ฑฐ์ฃผ ๊ตญ๊ฐ€
    • ์ƒํ’ˆ ์ •๋ณด : ์ƒํ’ˆ id, ์ƒํ’ˆ ์„ค๋ช…, ์ƒํ’ˆ ๊ฐ€๊ฒฉ
    • ๊ฑฐ๋ž˜ ์ •๋ณด : ์ฃผ๋ฌธ id(๋™์ผํ•œ ์ฃผ๋ฌธ id๊ฐ€ ์กด์žฌ๊ฐ€๋Šฅ), ์ฃผ๋ฌธ ์ผ์ž, ์ƒํ’ˆ ์ˆ˜๋Ÿ‰
    • ์ด ๊ตฌ๋งค์•ก : ์ƒํ’ˆ ๊ฐ€๊ฒฉ๊ณผ ์ƒํ’ˆ ์ˆ˜๋Ÿ‰์„ ๊ณฑํ•œ ๊ฐ’
  • output : ๊ฐ ๊ณ ๊ฐ๋ณ„ 2011๋…„ 12์›” ์ด ๊ตฌ๋งค์•ก์ด 300์„ ๋„˜๋Š”์ง€ ์—ฌ๋ถ€
    • 5914๋ช…์˜ ๊ณ ๊ฐ id
    • ๋„˜๋Š” ๊ฒฝ์šฐ (1), ๋„˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ (0)์œผ๋กœ ํ‘œ๊ธฐ

ํ‰๊ฐ€ ์ง€ํ‘œ: AUC

  • ROC๋Š” TPR(๊ธ์ •์ด๋ผ ์˜ˆ์ธกํ–ˆ์„ ๋•Œ ์‹ค์ œ ๊ธ์ •์ธ ๋น„์œจ)๊ณผ FPR(์‹ค์ œ๋กœ ๋ถ€์ •์ธ๋ฐ ๊ธ์ •์ด๋ผ ์ž˜๋ชป ์˜ˆ์ธกํ•œ ๋น„์œจ)์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ์ž„๊ณ„๊ฐ’์„ ๋งํ•œ๋‹ค.
  • ROC์˜ ์ž„๊ณ„๊ฐ’์˜ ์•„๋ž˜ ์˜์—ญ์„ AUC๋ผ๊ณ  ํ•œ๋‹ค.

๐Ÿ† ๋Œ€ํšŒ ๊ฒฐ๊ณผ

  • ๋“ฑ์ˆ˜ 28๋“ฑ, AUC 0.8587
  • ์ œ์ถœ ํšŸ์ˆ˜ 20ํšŒ

๐Ÿ”Ž EDA

์‹œ๊ฐํ™” ๋ณด๋‹ค๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐ’(value)์— ์ง‘์ค‘ํ•˜์—ฌ ๊ฐ’์˜ ๋ถ„ํฌ ํ˜น์€ ์ข…๋ฅ˜๋ฅผ ์‚ดํŽด๋ณด์•˜๋‹ค. ์‹œ๊ฐํ™”์˜ ๊ฒฝ์šฐ ๋Œ€ํšŒ ๋‘˜์งธ ๋‚  ์ œ๊ณต๋œ ๋ฒ ์ด์Šค์ฝ”๋“œ์„ ๋งŽ์ด ์ฐธ๊ณ ํ–ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋ฉด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ๋“ค์ด ์ƒ๊ฒผ๊ณ  ๊ทธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Q. product_id๋Š” ์–ด๋–ค ๊ทœ์น™์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์„๊นŒ?

  • ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์—ˆ๋‹ค. 5์ž๋ฆฌ ์ˆซ์ž๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, 5์ž๋ฆฌ ์ˆซ์ž์™€ 1์ž๋ฆฌ ํ˜น์€ 2์ž๋ฆฌ์˜ ์•ŒํŒŒ๋ฒณ์ด ๊ฒฐํ•ฉ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๋ฌธ์ž์—ด๋กœ ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค.
  • ๋ฌธ์ž์—ด๋กœ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ๋กœ๋Š” 'POST', 'D', 'M', 'C2', 'PADS', 'DOT', 'CRUK', 'BANK CHARGES', 'TEST001', 'TEST002', 'ADJUST', 'ADJUST2', 'SP1002'๊ฐ€ ์žˆ์—ˆ๋‹ค.

Q. ๋ฌธ์ž์—ด๋กœ ๋˜์–ด์žˆ๋Š” ๊ฒฝ์šฐ์˜ ๋ฌธ์ž์—ด๋“ค์€ ์–ด๋–ค ์˜๋ฏธ๋ฅผ ๊ฐ€์งˆ๊นŒ?

  • POST์˜ ์„ค๋ช…์ด POSTAGE์ธ ๊ฒƒ์„ ๋ณด์•„ ํƒ๋ฐฐ ๊ธˆ์•ก์œผ๋กœ ์ถ”์ธกํ–ˆ๋‹ค. ๋‚˜๋ผ๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ๋‹ค๋ฅผ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋˜ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ ์œ ๋Ÿฝ ๊ตญ๊ฐ€ ์™ธ ๊ตญ๊ฐ€์˜ ๊ฐ€๊ฒฉ์ด ๋‹ค์†Œ ๋†’์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. C2๋Š” CARRIAGE๋กœ POST์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ์˜๊ตญ๊ณผ ๊ฐ€๊นŒ์šด ๋‚˜๋ผ ์œ„์ฃผ๋กœ ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•„ ์ผ์ผํŠน๊ธ‰๊ณผ ๊ฐ™์€ ๋น„์‹ผ ์šด์†ก ์„œ๋น„์Šค๋กœ ์ƒ๊ฐ๋œ๋‹ค. DOT๋Š” DOTCOM POSTAGE๋กœ DOTCOM DISTRIBUTION์ด๋ผ๋Š” e-commerce ์‚ฌ์ดํŠธ์— ์ถ”๊ฐ€๋กœ ์ง€๊ธ‰ํ•˜๋Š” ๊ธˆ์•ก์œผ๋กœ ๋ณด์ธ๋‹ค.
  • D์˜ ์„ค๋ช…์ด Discount์ธ ๊ฒƒ์„ ๋ณด์•„ ํ• ์ธ๊ณผ ๊ด€๋ จ๋œ ๊ธˆ์•ก์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. quantity๊ฐ€ ๋Œ€๋ถ€๋ถ„ ์Œ์ˆ˜์ธ ๊ฒƒ์„ ๋ณด์•„ total๋„ ๋Œ€๋ถ€๋ถ„ ์Œ์ˆ˜๋ผ๊ณ  ์ถ”์ธกํ–ˆ๋‹ค. ๋‹ค๋งŒ quantity๊ฐ€ 1์ธ ์†Œ์ˆ˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ–ˆ๋‹ค. M์€ Manual์˜ ์•ฝ์ž๋กœ ์ง์›์ด ์ง์ ‘ ์ž…๋ ฅํ•œ ๊ธˆ์•ก์œผ๋กœ ์ƒ๊ฐํ–ˆ๋‹ค. ๋ณดํ†ต ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋Š” ๋Œ€๋Ÿ‰์ฃผ๋ฌธ์„ ํ•˜๋Š” ์ผ€์ด์Šค๋ผ ์ƒ๊ฐ๋˜์–ด quantity๋ฅผ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ, quantity๊ฐ€ ๋†’์€ ๊ฒฝ์šฐ๊ฐ€ ์ผ๋ถ€ ์กด์žฌํ•˜์˜€๋‹ค.
  • CRUK์€ Cancer Research UK๋กœ ์ž์„ ๋‹จ์ฒด์ด๋‹ค. ๋ชจ๋“  ์ฃผ๋ฌธ ๊ฑด์ด ํ™˜๋ถˆ๋กœ ์ฒ˜๋ฆฌ๋œ ๊ฒƒ์„ ๋ณด์•„ ๊ธฐ๋ถ€ ๋‚ด์—ญ์œผ๋กœ ์ถ”์ธกํ–ˆ๋‹ค. ๊ทธ ์™ธ BANK CHARGES๋Š” ์€ํ–‰ ์ˆ˜์ˆ˜๋ฃŒ๋กœ, TEST001, TEST002๋Š” ๊ด€๋ฆฌ์ž์— ์˜ํ•œ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ, ADJUST, ADJUST2๋Š” ๊ธˆ์•ก ์กฐ์ • ๋ฐ์ดํ„ฐ๋กœ ์ถ”์ธกํ•˜์˜€๋‹ค. SP1002๋Š” ํŠน์ • ์ƒํ’ˆ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ์˜€๋‹ค. PADS๋Š” ์ถ”๊ฐ€ ์˜ต์…˜ ๊ฐ™์€ ์ƒํ’ˆ์œผ๋กœ ์ถ”์ธกํ•˜์˜€๋‹ค.

Q. customer_id๊ฐ€ 12346์ธ ๊ณ ๊ฐ์€ ์‡ผํ•‘๋ชฐ ๊ด€๋ฆฌ์ž๋กœ ๋ณด์ธ๋‹ค. ๊ทธ ์™ธ์— ๋‹ค๋ฅธ ๊ด€๋ฆฌ์ž ๊ณ„์ •์ด ์กด์žฌํ• ๊นŒ?

  • 12346 ๊ณ ๊ฐ์˜ ๊ฒฝ์šฐ TEST001, TEST002, M๊ณผ ๊ฐ™์€ ์ฃผ๋ฌธ ๊ฑด์ด ๋งŽ์•˜์œผ๋ฉฐ, ์ผ๋ฐ˜ ์ƒํ’ˆ์— ๋Œ€ํ•œ ์ฃผ๋ฌธ๊ฑด์˜ ๊ฒฝ์šฐ์—๋„ ๋‹ค๋ฅธ ์ƒํ’ˆ์ž„์—๋„ ๊ฐ€๊ฒฉ์ด ๋™์ผํ•œ ๊ฒƒ์œผ๋กœ ๋ณด์•„ ๊ด€๋ฆฌ์ž ๊ณ„์ •์ž„์„ ํ™•์‹ ํ•˜์˜€๋‹ค.
  • ๊ทธ ์™ธ์— ๊ด€๋ฆฌ์ž ๊ณ„์ •์œผ๋กœ ์ถ”์ธก๋œ 14103, 14827, 16454, 16446์˜ ์ฃผ๋ฌธ ๊ฑด์„ ์‚ดํŽด๋ณด์•˜๋Š”๋ฐ 14103, 14807์€ TEST๋กœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์•„ ํ…Œ์ŠคํŠธ ๊ณ„์ •์œผ๋กœ ์˜์‹ฌํ•˜์˜€์œผ๋ฉฐ 16454, 16446์€ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์ผํšŒ์šฉ ๊ณ„์ •์œผ๋กœ ์ƒ๊ฐํ•˜์˜€๋‹ค.

๐Ÿš€ ์ ‘๊ทผ ๋ฐฉ๋ฒ•

Feature Engineering

์ œ๊ณต๋œ ๋ฒ ์ด์Šค๋ผ์ธ ์ฝ”๋“œ์˜ feature_engineering ํ•จ์ˆ˜๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๋‚˜๋งŒ์˜ ํ”ผ์ฒ˜๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ํ† ์˜ ๊ฒŒ์‹œํŒ์— ์บ ํผ๋“ค์ด ์˜ฌ๋ ค์ฃผ์‹  ์—ฌ๋Ÿฌ ํ”ผ์ฒ˜๋“ค์„ ์ฐธ๊ณ ํ•˜์˜€๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ์‚ฌ์šฉํ•œ ํ”ผ์ฒ˜๋Š” โœ…์œผ๋กœ ํ‘œ์‹œํ•˜์˜€๋‹ค.

์‹œ๊ณ„์—ด โœ…

  • 7๊ฐ•์— ์ œ๊ณต๋œ time-series๊ด€๋ จ ํ”ผ์ฒ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค. order_date๋ฅผ intํ˜•์œผ๋กœ ๋ฐ”๊พธ์–ด ๊ตฌ๋งค ์ฒซ๋‚ ๊ณผ ์ตœ๊ทผ ๊ตฌ๋งค์ผ์„ ํ”ผ์ฒ˜๋กœ ์ƒ์„ฑํ–ˆ๋‹ค. ๊ทธ ์™ธ ์ฃผ๋ฌธ ์‹œ๊ฐ„ ์ฐจ์ด, ์ˆ˜๋Ÿ‰ ์ฐจ์ด, ์ด ๊ตฌ๋งค์•ก ์ฐจ์ด์— ๊ด€ํ•œ ํ”ผ์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ aggregation function์„ ์ ์šฉํ•˜์˜€๋‹ค.
  • LightGBM ๋ชจ๋ธ์˜ feature importance๋ฅผ ๋ณด๋ฉด order_ts๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ์ค‘์š”๋„๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ ์™ธ์˜ ํ”ผ์ฒ˜๋„ ๊ฝค ๋†’์€ ์ค‘์š”๋„๋ฅผ ๋ณด์—ฌ ์ตœ์ข… ํ”ผ์ฒ˜๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ™˜๋ถˆ

  • ํ™˜๋ถˆ๊ณผ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ order_id์— C๊ฐ€ ์žˆ๋‹ค๋Š” ์ ์„ ํ™œ์šฉํ•˜์—ฌ ํ™˜๋ถˆ ๊ด€๋ จ ํ”ผ์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค. is_refund๋Š” ํ™˜๋ถˆ ์—ฌ๋ถ€๋ฅผ, refund_total์€ ์ด ํ™˜๋ถˆ์•ก์ด๋‹ค. is_refund์—๋Š” sum์„ ์ ์šฉํ•˜์—ฌ ๊ณ ๊ฐ๋ณ„ ํ™˜๋ถˆ ๊ฑด์ˆ˜๋ฅผ ๊ณ„์‚ฐํ–ˆ์œผ๋ฉฐ, refund_total์—๋Š” sum๊ณผ skew๋ฅผ ์ ์šฉํ•˜์—ฌ ๊ณ ๊ฐ๋ณ„ ์ด ํ™˜๋ถˆ์•ก๊ณผ ๊ทธ์— ๋Œ€ํ•œ ์™œ๋„๋ฅผ ํ”ผ์ฒ˜๋กœ ์ƒ์„ฑํ•˜์˜€๋‹ค.
  • ๋ชจ๋ธ ํ•™์Šต ์‹œ ๋งค์šฐ ์ž‘์€ ์ค‘์š”๋„๋ฅผ ๊ฐ€์กŒ์œผ๋ฉฐ, total๊ฐ’์— ์ด๋ฏธ ํ™˜๋ถˆ๊ด€๋ จ ๋‚ด์šฉ์ด ๋ฐ˜์˜๋˜์–ด์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์ตœ์ข… ํ”ผ์ฒ˜์—์„œ ์ œ์™ธํ•˜์˜€๋‹ค.

๋ฌธ์ž์—ด ์ƒํ’ˆ

  • product_id์—์„œ ๋ณด์—ฌ์ค€ ๋ฌธ์ž์—ด๋กœ ๋œ ์ƒํ’ˆ์„ ์–ผ๋งˆ๋‚˜ ๊ตฌ๋งคํ–ˆ๋Š”์ง€๋ฅผ ํ”ผ์ฒ˜๋กœ ๋งŒ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๊ฐ€ ๋งค์šฐ ์ ์–ด ๋ชจ๋ธ ์„ฑ๋Šฅ์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ๋˜์–ด ์ตœ์ข… ํ”ผ์ฒ˜์—์„œ ์ œ์™ธํ•˜์˜€๋‹ค.

๊ฐ€์žฅ ๋งŽ์ด ๊ตฌ๋งคํ•œ ๋‹ฌ โœ…

  • order_date์—์„œ ์›”, ์—ฐ์›”์„ ์ถ”์ถœํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋‹ค. aggregation function์œผ๋กœ mode(์ตœ๋นˆ๊ฐ’)์„ ์ ์šฉํ•˜์˜€๊ณ  ๊ฝค ์ค€์ˆ˜ํ•œ ์ค‘์š”๋„๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๊ณ  ์ตœ์ข… ํ”ผ์ฒ˜๋กœ ์ฑ„ํƒํ•˜์˜€๋‹ค.

ํŠธ๋ Œ๋“œ์™€ ๊ณ„์ ˆ์„ฑ โœ…

  • ๊ฐ•๋ฏผ์šฉ ์บ ํผ๋‹˜์ด ํ† ์˜ ๊ฒŒ์‹œํŒ์— ์ œ๊ณตํ•ด์ฃผ์‹  ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›”๋ณ„, quarter ๋‹จ์œ„์˜ ๊ตฌ๋งค์•ก, ์ˆ˜๋Ÿ‰, ๊ฐ€๊ฒฉ๊ด€๋ จ ํ”ผ์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜์˜€๋‹ค. ๊ธฐ์ค€ ์›”์€ ๊ฐ•๋ฏผ์šฉ ์บ ํผ๋‹˜์˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค.
  • ์ ์šฉ ๊ฒฐ๊ณผ AUC๊ฐ€ 0.8560์—์„œ 0.8579๋กœ ์ƒ์Šนํ•˜๋Š” ๋งค์šฐ ์ข‹์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค. ๋˜ํ•œ ์ค‘์š”๋„๋„ ๋†’๊ฒŒ ๋‚˜์™€ ์ตœ์ข… ํ”ผ์ฒ˜๋กœ ์ฑ„ํƒํ•˜์˜€๋‹ค.

Modeling

LightGBM

์ฒซ ๋ฒˆ์งธ ๋ชจ๋ธ๋กœ ๋ฒ ์ด์Šค์ฝ”๋“œ์—์„œ ์ œ๊ณต๋œ LightGBM ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ, ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์˜€๊ณ  ๊ฒ€์ฆ ๋ฐฉ๋ฒ•์€ Stratified K-Fold๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๊ณ  ์˜ˆ์ธก์‹œ Out of Fold Validation์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์œ„์˜ ํ”ผ์ฒ˜๋กœ ํ•™์Šต์„ ์ง„ํ–‰ํ•˜๋ฉด Fold ๋ณ„ validation score๋Š” 0.81๊ณผ 0.82 ์‚ฌ์ด๋ฅผ ์™”๋‹ค๊ฐ”๋‹ค ํ–ˆ์œผ๋ฉฐ, ouf of fold validation์˜ AUC๋Š” 0.81 ์ •๋„์˜ ๊ฐ’์ด ๋‚˜์™”๋‹ค. ๋ฆฌ๋”๋ณด๋“œ์— ์ œ์ถœํ•œ ๊ฒฐ๊ณผ AUC 0.8587๋กœ ๊ฐ€์žฅ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค.

TabNet

๋‘ ๋ฒˆ์งธ ๋ชจ๋ธ๋กœ TabNet์„ ์‚ฌ์šฉํ•˜์˜€๊ณ  ์˜คํ”ผ์Šค ์•„์›Œ์— ์ œ๊ณต๋œ ๋ชจ๋ธ ์ŠคํŒฉ์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ learning rate๋งŒ 0.002๋กœ ๋ณ€๊ฒฝํ•˜์˜€๋‹ค. TabNet์˜ ๊ฒฝ์šฐ LightGBM์— ๋น„ํ•ด AUC๊ฐ’์ด 0.7 ์ดˆ๋ฐ˜ ๋Œ€๋กœ ์ข‹์ง€ ์•Š์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ์ธก ๊ฐ’์ด LightGBM์˜ ์˜ˆ์ธก๊ฐ’์— ๋น„ํ•ด ๋†’๊ฒŒ ํ˜•์„ฑ๋˜์—ˆ๋‹ค. ์˜ˆ์ธก ๋ฐฉ๋ฒ•์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค ์ƒ๊ฐํ•ด TabNet์€ ๋ชจ๋“  ํ•™์Šต ํ›„์— ์˜ˆ์ธก์„ ํ•˜๋„๋ก ๊ตฌํ˜„ํ–ˆ๊ณ  ์˜ˆ์ธก๊ฐ’์ด LightGBM๊ณผ ๋น„์Šทํ•œ ๋ถ„ํฌ๋ฅผ ๋ณด์—ฌ์ฃผ์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๊ฐ’์ด ๋†’๊ฒŒ ๋ถ„ํฌ๊ฐ€ ๋˜์–ด์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฆฌ๋”๋ณด๋“œ์— ์ œ์ถœ์€ ํ•˜์ง€ ์•Š์•˜๋‹ค.

Soft Voting

๋งˆ์ง€๋ง‰์œผ๋กœ LightGBM๊ณผ TabNet์„ Soft Voting์„ ํ•˜์˜€๋‹ค. ์ด ๋•Œ TabNet์˜ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์•„ TabNet์„ ํ•œ ๋ฒˆ ํ•™์Šต์‹œํ‚ค์ง€ ์•Š๊ณ  3๋ฒˆ ๋ฐ˜๋ณตํ•˜์—ฌ ํ•™์Šต์‹œ์ผฐ๋‹ค. ๊ทธ ๊ฒฐ๊ณผ๋ฅผ LightGBM ๊ฒฐ๊ณผ๊ฐ’๊ณผ ์•™์ƒ๋ธ” ์‹œ์ผฐ์œผ๋‚˜ ๋ฆฌ๋”๋ณด๋“œ์—์„œ 0.8498๊ฐ’์„ ์–ป์—ˆ๋‹ค.

๊ทธ ์™ธ

์–ด๋–ค ํ”ผ์ฒ˜๋Š” ๊ฐ’์˜ ๋ฒ”์œ„๊ฐ€ ํฌ๊ณ  ์–ด๋–ค ํ”ผ์ฒ˜๋Š” ์ž‘์•„์„œ Quantile Transform์„ ์ ์šฉ์‹œ์ผœ๋ณด์•˜๋‹ค. ์ ์šฉ ๊ฒฐ๊ณผ ๊ฐ’์ด ์ „์ฒด์ ์œผ๋กœ ์ž‘์•„์ง€๋ฉด์„œ ํ•™์Šต ์‹œ๊ฐ„์ด ๋งค์šฐ ๋นจ๋ผ์กŒ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ๋†’์€ ์„ฑ๋Šฅ์„ ๋ณด์—ฌ์ค€ ๊ฒฝ์šฐ์—์„œ Quantile Transform์„ ์ ์šฉํ•˜์—ฌ ๋ฆฌ๋”๋ณด๋“œ์— ์ œ์ถœํ•œ ๊ฒฐ๊ณผ AUC 0.8581๋กœ ์„ฑ๋Šฅ์ด ์กฐ๊ธˆ ๋–จ์–ด์กŒ๋‹ค.


๐Ÿ‘€ ํšŒ๊ณ 

  • EDA๋Š” ๋”ฑ ๋‘˜์งธ ๋‚ ๊นŒ์ง€! ์ €๋ฒˆ ๋Œ€ํšŒ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ด๋ฒˆ ๋ฐํšŒ์—์„œ๋„ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ง€์‹์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด ํ•œ ์ฃผ๋ฅผ EDA๋กœ ๋ณด๋ƒˆ์ง€๋งŒ ๊ณต๊ฐœ๋œ ๋ฐ์ดํ„ฐ์˜ ํŠน์ง• ์™ธ์— ๋” ํŠน๋ณ„ํ•œ ๊ฒƒ์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ๋‹ค. ๋˜ํ•œ EDA๋ฅผ ํ•˜๋Š๋ผ ์ฒซ ์ฃผ์˜ ์ œ์ถœํšŸ์ˆ˜๋ฅผ ๋Œ€๋ถ€๋ถ„ ๋‚ ๋ ค๋ฒ„๋ ธ๋‹ค. ๊ทธ ์‹œ๊ฐ„์— ๊ฒ€์ฆ ์ „๋žต์„ ์ƒˆ์šฐ๊ณ  ์–ด๋–ค ํ”ผ์ฒ˜๋ฅผ ๋งŒ๋“ค์ง€๋ถ€ํ„ฐ ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.
  • ๊ฒ€์ฆ ์ „๋žต์„ ์ž˜ ์„ธ์šฐ์ž! ์„ธ ๋ฒˆ์งธ ํ”ผ์–ด์„ธ์…˜ ๋•Œ ๊น€๊ธฐ๋ฏผ ์บ ํผ๋‹˜์ด ์ž์‹ ์ด ์–ด๋–ป๊ฒŒ ๋ฆฌ๋”๋ณด๋“œ ์Šค์ฝ”์–ด๋ฅผ ์˜ฌ๋ ธ๋Š”์ง€์— ๋Œ€ํ•œ ๋งŽ์€ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค๋ ค์ฃผ์…จ๋‹ค. ๊ทธ ์ค‘ ๊ฐ€์žฅ ๊ธฐ์–ต์— ๋‚จ๋Š” ๊ฒƒ์ด ๊ฒ€์ฆ ์ „๋žต์ด์—ˆ๋Š”๋ฐ, ์—ฌ๋Ÿฌ ํ”ผ์ฒ˜๋ฅผ ์ƒ๊ฐํ•ด์„œ ์ ์šฉํ•ด๋ณด๊ณ  ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ€์ง€๊ณ  ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๋ถ„์„์„ ํ•œ๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ํŠนํžˆ ์ด๋ฒˆ ๋Œ€ํšŒ์˜ ์ œ์ถœํšŸ์ˆ˜๊ฐ€ ๋งŽ์ด ๋ถ€์กฑํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ด ๊ฒ€์ฆ์„ ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์„ ๊ฝค ๋“ค์ด์…จ๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ด๋ฒˆ ๋Œ€ํšŒ๋ฅผ ๊ธ‰ํ•˜๊ฒŒ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š๋ผ Mean AUC๋‚˜ OOF AUC๊ฐ€ ์ž˜ ๋‚˜์˜ค๋ฉด ์ œ์ถœ์„ ํ–ˆ๋Š”๋ฐ, ๋‹ค์Œ์—๋Š” ์™œ ์ด๋Ÿฐ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋Š”์ง€ ๋ถ„์„ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์‹คํ—˜ ํ™˜๊ฒฝ์€ ๋ฏธ๋ฆฌ๋ฏธ๋ฆฌ! ์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ๋Š” ๋‹จ์ˆœ ์ˆ˜๊ธฐ๋กœ ํ‰๊ฐ€ ์ง€ํ‘œ๋ฅผ ๊ธฐ๋กํ•˜์˜€๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋‹ˆ ์ •ํ™•ํžˆ ์–ด๋–ค ๋ชจ๋ธ์ธ์ง€ ํ—ท๊ฐˆ๋ ธ๊ณ  ๋งˆ์ง€๋ง‰์—๋Š” ๊ธฐ์–ต์— ์˜์กดํ•ด์•ผ๋งŒ ํ–ˆ๋‹ค. ํ† ์˜ ๊ฒŒ์‹œํŒ์— ์ œ์ถœ์™•๋‹˜์ด mlflow ์‚ฌ์šฉ๋ฒ•์„ ์˜ฌ๋ ค์ฃผ์…จ๋Š”๋ฐ "๋‚˜์ค‘์— ์จ์•ผ์ง€"ํ•˜๊ณ  ๋ฐ”๋กœ ์ ์šฉ์„ ์•ˆํ•ด์„œ ๊ฒฐ๊ตญ ๋งˆ์ง€๋ง‰๊นŒ์ง€๋„ ์‚ฌ์šฉ์„ ํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๋‹ค์Œ์—๋Š” ์‹คํ—˜ ํ™˜๊ฒฝ๋ถ€ํ„ฐ ์ ์šฉ์„ ํ•ด์•ผ๊ฒ ๋‹ค.
  • ๊ณ ๋ฏผ๋ณด๋‹ค GO! ํŠนํžˆ ์ด๋ฒˆ ๋Œ€ํšŒ์—์„œ ํ”ผ์ฒ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์ฃผ์ €ํ•จ์ด ์žˆ์—ˆ๋‹ค. "์ด ํ”ผ์ฒ˜๋Š” ์ด๋Ÿฐ ์  ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๋ชจ๋ธ ์„ฑ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆฌ์ง€ ์•Š์„๊นŒ" ์ƒ๊ฐ์„ ๋งŽ์ด ํ•˜์˜€๊ณ  ์ด๋กœ ์ธํ•ด ๋งŽ์€ ํ”ผ์ฒ˜๋ฅผ ์ƒ์„ฑํ•ด๋‚ด์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ๊น€๊ธฐ๋ฏผ ์บ ํผ๋‹˜์ด "๊ทธ๋ ‡๊ฒŒ ๋ฐ˜๋ก€๋ฅผ ์ฐพ๋Š” ๊ฒƒ๋ณด๋‹ค ๋ชจ๋ธ์— ๋„ฃ์–ด ๋Œ๋ ค๋ณด๊ณ  ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•ด๋ณด๋Š” ๊ฒƒ์ด ๋” ๋‚ซ๋‹ค"๊ณ  ์กฐ์–ธ์„ ํ•ด์ฃผ์…จ๋‹ค. ์ด ํ”ผ์ฒ˜๊ฐ€ ์„ฑ๋Šฅ์„ ๋–จ์–ด๋œจ๋ฆด์ง€ ์˜ฌ๋ฆด์ง€ ๋ชจ๋ฅด๋Š”๋ฐ ์ง€๋ ˆ์ง์ž‘ ๊ฒ๋ถ€ํ„ฐ ๋จน์—ˆ๋‹ค. ๋‹ค์Œ ๋Œ€ํšŒ๋ถ€ํ„ฐ๋Š” ์ผ๋‹จ ๋งŒ๋“ค์–ด๋ณด๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒฐ์ •์„ ํ•ด์•ผ๊ฒ ๋‹ค.

About

๐Ÿ›’ Online Store Customer Purchase Prediction Competition, hosted by Boostcamp AI Tech (2021.04 - 2021.04)

Topics

Resources

Stars

Watchers

Forks

Languages

  • Jupyter Notebook 100.0%