๐Ÿ–ฅ๏ธ MLB baseball player salary prediction system using data mining

My Role

- Data Analysis
- Visualization

Tool

Button 1

R

Button 2

Plotly

Button 3

JavaScript

๊ฐœ๋ฐœ ๋™๊ธฐ

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

Alt Text


๊ฐœ๋ฐœ ๋ชฉ์ 

"๋ถ„์„์„ ํ†ตํ•ด ์„ ์ˆ˜์˜ ํŠน์„ฑ ๊ฐ’์— ๋”ฐ๋ผ ํˆฌ์ˆ˜์˜ ๊ธฐ๋Œ€ ์—ฐ๋ด‰์„ ๊ฐ€์žฅ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•˜๋Š” ๋ชจ๋ธ์„ ๊ฐœ๋ฐœํ•˜์—ฌ ์•ผ๊ตฌ๊ณ„์˜ ์—ฐ๋ด‰ ๊ฒฐ์ •๊ณผ ํ˜‘์ƒ์— ๊ฐ๊ด€์ ์ธ ์ง€์นจ์„ ์ œ๊ณตํ•˜๊ณ , ์•ผ๊ตฌ์— ๋Œ€ํ•œ ํฅ๋ฏธ๋ฅผ ๋†’์ด๋ฉฐ ๊ด€์‹ฌ์„ ์œ ๋ฐœโ€


๋ฐ์ดํ„ฐ ๊ฐ€๊ณต

๋ฐ์ดํ„ฐ ์ถ”์ถœ

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ํ˜„์žฌ ๋ฉ”์ด์ € ๋ฆฌ๊ทธ์˜ ๋ฆฌ๊ทธ ๊ตฌ์„ฑ์ด ํ™•๋ฆฝ๋œ 1998๋…„ ์ดํ›„์˜ ์ž๋ฃŒ๋ฅผ ์ด์šฉํ•œ๋‹ค.

  1. People Table
  2. Pitching Table
  3. PitchingPost Table
  4. Teams Table
  5. AwardsPlayer Table
  6. AllstarFull Table
  7. Salaries Table

๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

  1. ์ถ”์ถœํ•œ Table ๊ฒฐํ•ฉํ•˜์—ฌ Raw Data ์ƒ์„ฑ
  • ์—ฌ๋Ÿฌ Table์„ ๋ณ‘ํ•ฉํ•˜๊ธฐ ์œ„ํ•œ Key ๊ฐ’์œผ๋กœ playerID, yearID, teamID ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฌธ์ œ๋Š” ์•„๋ž˜์˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฑฐ์ณ ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ๋งŒ๋“ค์—ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ค‘๋ณต ๋ฌธ์ œ ์ฒ˜๋ฆฌ
  1. Raw Data ๋‚ด ์ „์ฒ˜๋ฆฌ
  • lFinal_df.csv
  • ์œ„์˜ Raw Data ๋‚ด ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์—์„œ ๊ฐ€์žฅ ํฐ ๋น„์ค‘์„ ์ฐจ์ง€ํ•œ ์ž‘์—…์€ ๊ฒฐ์ธก์น˜์™€ ์ด์ƒ์น˜๋“ค์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ์ด๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๊ทœ๋ชจ์™€ ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์…‹๋“ค์„ ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•œ ๊ฒฐ์ธก๊ฐ’๋“ค์„ ํ™•์ธํ•œ ํ›„ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์— ๋งž๋Š” ์•„๋ž˜์˜ ๋ฐฉ์‹์œผ๋กœ ์ ์ ˆํ•œ ๊ฐ’์„ ์ฑ„์›Œ๋„ฃ์—ˆ๋‹ค.
  • salary ๋ฐ์ดํ„ฐ ๋‚ด ๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ
  • ๋ฆฌ๊ทธ / ํฌ์ŠคํŠธ์‹œ์ฆŒ ERA์˜ ์ด์ƒ์น˜ ์ฒ˜๋ฆฌ
  • ์ˆ˜์น˜ํ˜•์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ

1, 2์˜ ๊ณผ์ •์„ ๊ฑฐ์ณ ์ตœ์ข…์œผ๋กœ ๋ถ„์„์„ ์œ„ํ•œ ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ ์…‹์„ lFinal_df ๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์™„์„ฑํ–ˆ๋‹ค.
์ดํ›„์˜ ๋ถ„์„์€ ๋ชจ๋‘ ์ด ์ดˆ๊ธฐ ๋ฐ์ดํ„ฐ์…‹์„ ๋ณ€ํ˜•ํ•ด ๊ฐ€๋ฉฐ ์‹œํ–‰๋˜์—ˆ๋‹ค.


๋ฐ์ดํ„ฐ ๋ถ„์„

๋ชจ๋ธ

ํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ Alt Text

Alt Text

Lasso, Ridge, DecisionTree, RandomForest, GBM 5๊ฐ€์ง€ ๋ชจ๋ธ๋กœ ๋ถ„์„

๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„

๋ชจ๋‘ ๊ธฐ๋ณธ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๋งˆ์นœ lFinal_df (=DF1)๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ๋ณ€ํ˜•์‹œ์ผœ ๋งŒ๋“ค์—ˆ๋‹ค.

DF1

์›๋ณธ ๋ฐ์ดํ„ฐ์—์„œ ์‚ฌ์šฉํ•  table์„ ์ถ”์ถœํ•˜์—ฌ ๊ฒฐํ•ฉํ•œ ํ›„ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ๊ฑฐ์นœ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค.

DF2

DF1์—์„œ ์•„๋ž˜์˜ ๋‚ด์šฉ์„ ๋ณ€ํ˜• ๋ฐ ์ถ”๊ฐ€ํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค.

  • l_GM : ์ค‘๊ฐ„ ๊ณ„ํˆฌ๋กœ ๋˜์ง„ ๊ฒฝ๊ธฐ (l_G - lGS) ์ƒ์„ฑ
  • attendence.f : attendance ๋ณ€์ˆ˜ ๋ฒ”์ฃผํ™”
  • career : ์„ ์ˆ˜ ์—ฐ์ฐจ ์ •๋ณด (yearID - debut) ๋ณ€์ˆ˜ ์ƒ์„ฑ
  • years_old : ํ˜„์žฌ ๋‚˜์ด (yearID - birthYear) ๋ณ€์ˆ˜ ์ƒ์„ฑ
  • teamID, throws ๋ณ€์ˆ˜ ์›ํ•ซ ์ธ์ฝ”๋”ฉ
  • lgID, divID, G, l_G, attendance, debut, birthYear, birthCountry, teamID, throws, stint ๋ณ€์ˆ˜ ์ œ๊ฑฐ

DF3

DF2์— ๋…ผ๋ฌธ์„ ์ฐธ๊ณ ํ•˜์—ฌ ๋งŒ๋“  ์ถ”๊ฐ€์ง€ํ‘œ(์„ธ์ด๋ฒ„๋งคํŠธ๋ฆญ์Šค ์ง€ํ‘œ)๋ฅผ ์ถ”๊ฐ€ํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค.

DF4

DF3์—์„œ teamID๋ฅผ ์›ํ•ซ ์ธ์ฝ”๋”ฉ ๋Œ€์‹  teamID์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ Target-Encoding์œผ๋กœ ๋Œ€์ฒดํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค. Alt Text

DF5

DF4์—์„œ salary์™€์˜ ์ƒ๊ด€๊ด€๊ณ„์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ผ๋ถ€ ๋ณ€์ˆ˜๋“ค์„ ์„ ํƒํ•ด 2๋…„์น˜ ์‹œ๊ณ„์—ด ์ฒ˜๋ฆฌํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค.
('l_W', 'l_GS', 'l_GM', 'l_CG', 'l_ER', 'l_IPouts', 'l_H', 'l_HR', 'l_BB','l_SO', 'BSRโ€™)

DF6

DF4์—์„œ salary์™€์˜ ์ƒ๊ด€๊ณ„์ˆ˜๊ฐ€ 0.24 ์ด์ƒ์ธ ์—ด๋“ค๋งŒ ์ถ”์ถœํ•œ ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์ด๋‹ค.


๊ฒฐ๋ก 

Alt Text Alt Text ์—ฌ๋Ÿฌ ์ฐจ๋ก€์˜ feature engineering ๊ณผ์ •์—์„œ ์ ์ง„์ ์œผ๋กœ ๋ชจ๋ธ๋“ค์˜ ์˜ˆ์ธก ์„ฑ๋Šฅ์ด ๊ฐœ์„ ๋˜์—ˆ๋‹ค(DF1 ~ DF4). ๊ทธ ์ค‘์—์„œ๋„ teamID์„ ์„ฌ์„ธํ•˜๊ฒŒ ์ด์šฉํ•œ ๊ฒฐ๊ณผ, ํŠนํžˆ random forest ๋ชจ๋ธ์—์„œ ๋‘๋“œ๋Ÿฌ์ง„ ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์–ป์–ด๋ƒˆ๋‹ค(DF4). ํ•œํŽธ feature๋“ค์— ๋Œ€ํ•œ ์‹œ๊ณ„์—ด ์ฒ˜๋ฆฌ๋‚˜ ์ƒ๊ด€๊ณ„์ˆ˜ ๊ธฐ๋ฐ˜์˜ feature ์„ ํƒ ์‹œ๋„๋Š” ๋ชจ๋ธ ์˜ˆ์ธก ์„ฑ๋Šฅ ๊ฐœ์„ ์—๋Š” ์‹คํŒจํ•˜์˜€๋‹ค.(DF5, DF6)