๐Ÿ“Š Data Analysis/๐ŸŽฏ Project

์‹ฌํ™”ํ”„๋กœ์ ํŠธ : ํšŒ๊ท€๋ถ„์„์„ ํ™œ์šฉํ•œ ์›”๋งˆํŠธ ์ฃผ๊ฐ„ ํŒ๋งค๋Ÿ‰ ์˜ˆ์ธก (3)

ny:D 2024. 6. 26. 20:31

์‹ฌํ™”ํ”„๋กœ์ ํŠธ : ํšŒ๊ท€๋ถ„์„์„ ํ™œ์šฉํ•œ ์›”๋งˆํŠธ ์ฃผ๊ฐ„ ํŒ๋งค๋Ÿ‰ ์˜ˆ์ธก

๐ŸŽฏ ๋ชจ๋ธ๋ง ํ‰๊ฐ€ ์ง€ํ‘œ ์„ค์ •

๋ชจ๋ธ๋ง ์ง€ํ‘œ๋กœ ์‚ฌ์šฉํ•œ ๊ฒƒ์€ (1) R-squared, (2) RMSE ๊ทธ๋ฆฌ๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ (3) WMAE๋ฅผ ์„ค์ •ํ–ˆ๋‹ค. WMAE๋Š” Kaggle์— ๋‚˜์™€์žˆ๋Š” ํ‰๊ฐ€์ง€ํ‘œ์ธ WMAE๋ฅผ ์ฐธ๊ณ ํ•œ ์ง€ํ‘œ๋กœ, Holiday๋ฅผ ๋”์šฑ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ์ง€ํ‘œ๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. Holiday ์ฃผ๊ฐ„์ธ ๊ฒฝ์šฐ ๊ฐ€์ค‘์น˜(w)๋ฅผ 5๋กœ, ์•„๋‹Œ ๊ฒฝ์šฐ ๊ฐ€์ค‘์น˜๋ฅผ 1๋กœ ํ•˜์—ฌ ๊ณ„์‚ฐ์„ ์ง„ํ–‰ํ–ˆ๋‹ค. 

๐Ÿค– ๋จธ์‹ ๋Ÿฌ๋‹ 

์ดˆ๊ธฐ ๋ชจ๋ธ๋ง

์•ž์„œ ์„ ํƒ๋œ ๋ณ€์ˆ˜๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ์„ ํ˜•ํšŒ๊ท€๋ชจํ˜•(Linear Regressior)๊ณผ ์„ธ๊ฐ€์ง€ ์•™์ƒ๋ธ” ๊ธฐ๋ฒ• (Gradient Boosting Regressor, ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ, Xgboost)์„ ํ™œ์šฉํ•ด ํ”ผํŒ… ๋ฐ ํ‰๊ฐ€๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.

๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ ๋ณ€์ˆ˜๋ฅผ ์œ„์™€ ๊ฐ™์ด ์„ ํƒํ–ˆ์„ ๋•Œ, ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์•˜๋‹ค.

→ ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ์™€ Gradient boosting ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ๋ชจ๋ธ์„ ํ•™์Šต๊ณผ ํ”ผํŒ…์— ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋˜์—ˆ์ง€๋งŒ, ์„ ํ˜•ํšŒ๊ท€์™€ Xgboost์˜ ๊ฒฝ์šฐ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋นจ๋ž๋‹ค.

๋ณ€์ˆ˜ ์„ ์ •

์ดํ›„๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ€์„ค๋“ค์„ ์„ธ์›Œ ์ตœ์ ์˜ ๋ณ€์ˆ˜๋“ค์„ ์„ ์ •ํ•ด๋‚˜๊ฐ”๋‹ค. 

1 -1. ๋‚ ์งœ ๋ณ€์ˆ˜ ์„ ํƒ : Day vs. Week

๐Ÿ’ก Week๊ฐ€ Day๋ณด๋‹ค ๋ฐ์ดํ„ฐ์˜ ์‹œ๊ฐ„์„ฑ์„ ์ž˜ ๋ฐ˜์˜ํ•  ๊ฒƒ์ด๋‹ค.
๊ทผ๊ฑฐ : ์šฉ์ดํ•œ ๋ถ„์„์„ ์œ„ํ•ด YYYY-MM-DD ํ˜•์‹์œผ๋กœ ๋˜์–ด์žˆ๋˜ Date ์ปฌ๋Ÿผ์„ year, month, day๋กœ ์ชผ๊ฐœ์„œ ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ ์‹ค์ œ๋กœ YYYY-MM-DD์˜ Weekly Sales๋Š” ๋ง ๊ทธ๋Œ€๋กœ ํ•ด๋‹น ์ผ๋กœ๋ถ€ํ„ฐ 6์ผ์ „๋ถ€ํ„ฐ ํ•ด๋‹น์ผ๊นŒ์ง€ ์ด ์ผ์ฃผ์ผ๊ฐ„ ์ง‘๊ณ„ํ•œ ๋งค์ถœ์•ก์ด๋‹ค. ๋”ฐ๋ผ์„œ ์‹œ๊ณ„์—ด์  ํŠน์„ฑ์„ ์ž˜ ๋ฐ˜์˜ํ•˜๋Š” Week๋ณ€์ˆ˜(์ผ๋…„ ์ค‘ ๋ช‡๋ฒˆ ์งธ ์ฃผ๊ฐ„์ธ์ง€)๋ฅผ ํ™œ์šฉํ•ด ๋ชจ๋ธ๋ง์„ ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋  ๊ฒƒ์ด๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ ๋ชจ๋ธ๊ณผ ์„ ํ˜•ํšŒ๊ท€ ๋ชจํ˜•์„ ์ œ์™ธํ•˜๊ณ  ๋ชจ๋“  ๋ชจ๋ธ์—์„œ ์„ฑ๋Šฅ์˜ ๊ฐœ์„ ์ด ์žˆ์—ˆ๋‹ค. ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ์—์„œ ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง€๋”๋ผ๋„, ์ฃผ์ฐจ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” ๋งค์ถœ์•ก์ด๋ผ๋Š” ์ ์—์„œ Week ๋ณ€์ˆ˜๊ฐ€ ์ ํ•ฉํ•˜๋‹ค๊ณ  ํŒ๋‹จ, Month์™€ Day ์ปฌ๋Ÿผ ๋Œ€์‹  Week๋ฅผ ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

1-2. ๊ฒฝ์ œ์ง€ํ‘œ ์„ ํƒ : CPI vs. Fuel Price vs. Unemployment

๐Ÿ’ก ๊ฒฝ์ œ ์ง€ํ‘œ๋ฅผ ๋Œ€ํ‘œํ•˜๋Š” CPI๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋  ๊ฒƒ์ด๋‹ค. 

CPI, Fuel_Price, Unemployment ์„ธ ๋ณ€์ˆ˜๋ผ๋ฆฌ์˜ ์ƒ๊ด€๊ด€๊ณ„๋Š” ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋“ค๊ณผ์˜ ์ƒ๊ด€๊ด€๊ณ„์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ๋งค์šฐ ๋†’์€ ํŽธ์ด๋‹ค. ๋”ฐ๋ผ์„œ ํ”ผ์ฒ˜๋ฅผ ์ตœ์†Œํ•œ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์„ธ๊ฐ€์ง€ ๊ฒฝ์ œ์ง€ํ‘œ ์ค‘ ํ•˜๋‚˜์˜ ๊ฒฝ์ œ์ง€ํ‘œ๋ฅผ ์„ ํƒํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.

ver1์—์„œ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์•˜๋˜ ๋žœ๋คํฌ๋ ˆ์ŠคํŠธ ๋ชจ๋ธ์˜ ๋ณ€์ˆ˜ ์ค‘์š”๋„๋ฅผ ํ™•์ธํ–ˆ์„ ๋•Œ, ์„ธ ๊ฒฝ์ œ์ง€ํ‘œ ์ค‘ CPI์˜ ์ค‘์š”๋„๊ฐ€ ๊ฐ€์žฅ ๋†’์•˜๋‹ค. ๋”ฐ๋ผ์„œ CPI๋งŒ ๋ณ€์ˆ˜๋กœ ๋†“๊ณ  ๋ชจ๋ธ๋ง์„ ์ง„ํ–‰ํ•ด๋ณด์•˜๋‹ค.

1-3.  ๊ฐ€์„ค 1 + ๊ฐ€์„ค2

1-1๊ณผ 1-2์˜ ๊ฐ€์„ค์ด ๋ชจ๋‘ ์ฐธ์ด๋ฏ€๋กœ ๋‘๊ฐ€์ง€ ๊ฐ€์„ค์„ ๊ฒฐํ•ฉํ•ด ๋ชจ๋ธ๋งํ•ด๋ณด์•˜๋‹ค.

๋ชจ๋ธ๋ง ๊ฒฐ๊ณผ, ์„ ํ˜•ํšŒ๊ท€๋ฅผ ์ œ์™ธํ•œ ์„ธ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๋ชจ๋‘ ๊ฐœ์„ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1,2๋ฒˆ ๊ฐ€์„ค์„ ๊ฒฐํ•ฉํ•ด ์ฑ„ํƒํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•˜์˜€๋‹ค.

 

2์ฐจ ๋ณ€์ˆ˜ ์„ ์ •

๐Ÿ’ก ๋‘ ๊ฐœ์˜ ๊ฒฝ์ œ์ง€ํ‘œ ์ค‘ CPI๋งŒ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ๊ณผ์—ฐ ํ•ฉ๋ฆฌ์ ์ธ๊ฐ€?
๊ณผ์—ฐ CPI๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์— ๊ฐ€์žฅ ์ตœ์ ์ผ๊นŒ. ์ด๋ฅผ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด CPI + ์œ ๊ฐ€, CPI + ์‹ค์—…๋ฅ ์„ ๋ณ€์ˆ˜๋กœ ๋„ฃ์–ด ๋ชจ๋ธ๋งํ•ด๋ณด์•˜๋‹ค. 

CPI + ์œ ๊ฐ€ / CPI + ์‹ค์—…๋ฅ 

๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜์ง€ ์•Š์•˜๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ€์„ค์„ ๊ธฐ๊ฐํ•˜๊ณ  CPI๋งŒ ๋ณ€์ˆ˜๋กœ ์„ ํƒํ•˜๋Š”๊ฒƒ์œผ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค.

 

4. Year ๋ผ๋ฒจ์ธ์ฝ”๋”ฉ์ด ํ•„์ˆ˜์ ์ธ ๊ณผ์ •์ธ๊ฐ€?

๋ชจ๋ธ๋ง์„ ์œ„ํ•œ ์ „์ฒ˜๋ฆฌ์‹œ ๊ณ„์‚ฐ์ƒ ํŽธ์˜ ๋ฐ ์˜ค์ฐจ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•œ ๋ชฉ์ ์œผ๋กœ Year ๋ณ€์ˆ˜๋ฅผ ๋ผ๋ฒจ์ธ์ฝ”๋”ฉ ํ•œ Year_le ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋ธ๋ง์— ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ถ”ํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…์ˆ˜ํ•ด ํ…Œ์ŠคํŠธํ•  ๋•Œ ๋ฒ”์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด์„œ ๋ผ๋ฒจ์ธ์ฝ”๋”ฉ์ด ๊ณผ์—ฐ ํ•„์š”ํ•œ ๊ณผ์ •์ธ์ง€ ๊ฒ€์ฆํ•ด๋ณด์•˜๋‹ค.

Year ๋ณ€์ˆ˜ ์ œ์™ธ ๋ชจ๋“  ๋™์ผ์กฐ๊ฑด ํ•˜์— A/B Test๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒฐ๊ณผ ์„ ํ˜•ํšŒ๊ท€ ๋ชจ๋ธ์„ ์ œ์™ธํ•˜๊ณ ๋Š” ์„ฑ๋Šฅ์— ๋ณ€ํ™”๊ฐ€ ์—†์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฒ”์šฉ์„ฑ์ด ์ข‹์€ Year ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋ธ๋ง์— ํ™œ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

โœ… ์ตœ์ข… ๋ณ€์ˆ˜
์„ ํƒ๋œ ๋ณ€์ˆ˜ | 
CPI_sd, Dept, IsHoliday_le, Size_sd, Store, Temperature_sd, Unemployment_sd, Week, Year
์ •๊ทœํ™” | ์ผ๋ถ€ ๋ณ€์ˆ˜(Store, Dept) ์ œ์™ธ Sklearn.preprocessing.Standard Scaler ํ™œ์šฉ
์ธ์ฝ”๋”ฉ | IsHoliday ๋ผ๋ฒจ ์ธ์ฝ”๋”ฉ 
→ ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ์ข‹์€ ๋ชจ๋ธ Random Forest