Skip to content

djLee77/stock-price-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

38 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ“ˆ Stock-Price-Prediction

  1. โ›ณ ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
  2. ๐Ÿš€ ํ”„๋กœ์ ํŠธ ๋‚ด์šฉ
  3. ๐Ÿ›ธ ํ•™์Šต์— ์‚ฌ์šฉ๋œ Clone
  4. ๐Ÿ’ก ๊ฒฐ๋ก  ๋ฐ ๋Š๋‚€์ 

โ›ณ 1. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

๋ณธ ํ”„๋กœ์ ํŠธ์˜ ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋จธ์‹  ๋Ÿฌ๋‹ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ ๋†’์€ ์ˆ˜์ค€์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฐพ์•„ Cloneํ•˜์—ฌ ํ•™์Šตํ•˜๊ณ , ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฃผ์‹ ์ข…๋ชฉ์˜ ๋ฏธ๋ž˜ ๊ฐ€๊ฒฉ์„ ์˜ˆ์ธกํ•˜๋Š” ๋ชจ๋ธ์„ ์ง์ ‘ ๊ตฌํ˜„ํ•ด๋ณด๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๐Ÿš€ 2. Stock-Predictor-XGBoost

2-1. ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ ๋ฐ ๊ธฐ๋ณธ ํƒ์ƒ‰


image

  • ๋ฐ์ดํ„ฐ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ:
yf.download: Yahoo Finance์—์„œ ์ฃผ์‹ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” '005930.KS' (์‚ผ์„ฑ์ „์ž์˜ ์ฃผ์‹ ์ฝ”๋“œ)์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ
2018๋…„ 11์›” 1์ผ๋ถ€ํ„ฐ 2023๋…„ 11์›” 1์ผ๊นŒ์ง€ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํƒ์ƒ‰:
samsung_stock.head(): ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์˜ ์ฒ˜์Œ ๋ช‡ ํ–‰์„ ์ถœ๋ ฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์š”๋ฅผ ์‚ดํŽด๋ด…๋‹ˆ๋‹ค.
samsung_stock.dtypes: ๊ฐ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
samsung_stock.describe(): ์ˆ˜์น˜ํ˜• ์ปฌ๋Ÿผ๋“ค์— ๋Œ€ํ•œ ์š”์•ฝ ํ†ต๊ณ„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ํ‰๊ท , ํ‘œ์ค€ํŽธ์ฐจ, ์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’ ๋“ฑ์˜ ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.
  • ์ข…๊ฐ€ ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™”:
plt.figure: ์‹œ๊ฐํ™”์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
plt.plot: ์‚ผ์„ฑ์ „์ž์˜ ์ข…๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์„  ๊ทธ๋ž˜ํ”„๋กœ ๊ทธ๋ฆฝ๋‹ˆ๋‹ค.
plt.title, plt.xlabel, plt.ylabel: ๊ทธ๋ž˜ํ”„์˜ ์ œ๋ชฉ๊ณผ x, y์ถ•์˜ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
plt.show(): ์„ค์ •ํ•œ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™”๋ฉด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

2-2. ํŠน์„ฑ ์—”์ง€๋‹ˆ์–ด๋ง ๋ฐ ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

  • ํŠน์„ฑ ์—”์ง€๋‹ˆ์–ด๋ง:
์ƒˆ๋กœ์šด ํŠน์„ฑ High-Low์™€ Open-Close๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๊ฐ๊ฐ ํ•˜๋ฃจ ์ค‘ ์ฃผ๊ฐ€์˜ ์ตœ๊ณ ๊ฐ€์™€ ์ตœ์ €๊ฐ€ ๊ฐ„์˜ ์ฐจ์ด, ๊ทธ๋ฆฌ๊ณ  ์‹œ๊ฐ€์™€ ์ข…๊ฐ€ ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
์ด๋Ÿฌํ•œ ํŠน์„ฑ๋“ค์€ ์ฃผ๊ฐ€์˜ ์ผ์ผ ๋ณ€๋™์„ฑ์„ ์ธก์ •ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ•„์š”ํ•œ ํŠน์„ฑ ์„ ํƒ:
๋ชจ๋ธ์— ์‚ฌ์šฉํ•  ํŠน์„ฑ์„ ์„ ์ •ํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” 'Open', 'High', 'Low', 'Close', 'Volume', 'High-Low', 'Open-Close' ๋“ฑ์ด ์„ ํƒ๋ฉ๋‹ˆ๋‹ค.
  • ํƒ€๊ฒŸ ๋ณ€์ˆ˜ ์„ค์ •:
ํƒ€๊ฒŸ ๋ณ€์ˆ˜๋กœ์„œ ๋‹ค์Œ ๋‚ ์˜ ์ข…๊ฐ€(Close)๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด Target ์ปฌ๋Ÿผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
shift(-1) ํ•จ์ˆ˜๋Š” ๊ฐ ํ–‰์˜ Close ๊ฐ’์„ ํ•œ ์นธ์”ฉ ์œ„๋กœ ์ด๋™์‹œ์ผœ ๋‹ค์Œ ๋‚ ์˜ ์ข…๊ฐ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ์ธก์น˜ ์ œ๊ฑฐ:
dropna() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐ์ธก์น˜๊ฐ€ ์žˆ๋Š” ํ–‰์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  • ํŠน์„ฑ๊ณผ ํƒ€๊ฒŸ ๋ถ„๋ฆฌ:
๋ฐ์ดํ„ฐ๋ฅผ ํŠน์„ฑ(X)๊ณผ ํƒ€๊ฒŸ(y)์œผ๋กœ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ถ„ํ• :
train_test_split ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ํ›ˆ๋ จ ์„ธํŠธ์™€ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” ๋ฐ์ดํ„ฐ์˜ 20%๋ฅผ ํ…Œ์ŠคํŠธ ์„ธํŠธ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”:
StandardScaler๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.
ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์—๋Š” fit_transform์„, ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์—๋Š” transform์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํ•˜๋Š” ์ด์œ ๋Š” ๋ชจ๋ธ์ด ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์•Œ์ง€ ๋ชปํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•จ์ž…๋‹ˆ๋‹ค.

2-3. ๋ชจ๋ธ ํ•™์Šต ๋ฐ ํ‰๊ฐ€


image

XGBoost ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์‹ ๊ฐ€๊ฒฉ์„ ์˜ˆ์ธกํ•˜๊ณ , ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์˜ˆ์ธก ๊ฒฐ๊ณผ์˜ RMSE (Root Mean Squared Error) ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ธก ๊ฐ’์˜ ๋น„๊ต๋ฅผ ์œ„ํ•œ ์‹œ๊ฐํ™”๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„:
์˜ˆ์ธก ๋ชจ๋ธ์— ์‚ฌ์šฉํ•  ํŠน์„ฑ(features)๊ณผ ํƒ€๊ฒŸ ๋ณ€์ˆ˜(target)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
X๋Š” ๋ชจ๋ธ์˜ ์ž…๋ ฅ ํŠน์„ฑ, y๋Š” ์˜ˆ์ธกํ•˜๋ ค๋Š” ํƒ€๊ฒŸ ๋ณ€์ˆ˜(์—ฌ๊ธฐ์„œ๋Š” 'Close' ์ข…๊ฐ€)์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”:
StandardScaler๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ๊ณ„์—ด ๊ต์ฐจ ๊ฒ€์ฆ ์„ค์ •:
TimeSeriesSplit์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ๊ต์ฐจ ๊ฒ€์ฆ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ๊ฒฝ์šฐ, ์ˆœ์ฐจ์ ์ธ ์ •๋ณด๊ฐ€ ์ค‘์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์—
์ผ๋ฐ˜์ ์ธ ๊ต์ฐจ ๊ฒ€์ฆ ๋ฐฉ๋ฒ• ๋Œ€์‹  ์‹œ๊ณ„์—ด์— ํŠนํ™”๋œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ํ›ˆ๋ จ ๋ฐ ๊ฒ€์ฆ ์„ธํŠธ ์ค€๋น„:
๊ต์ฐจ ๊ฒ€์ฆ์—์„œ ์ƒ์„ฑ๋œ ๊ฐ fold์˜ ํ›ˆ๋ จ ๋ฐ ๊ฒ€์ฆ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰ fold๋ฅผ ํ›ˆ๋ จ ๋ฐ ๊ฒ€์ฆ ์„ธํŠธ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ์ •์˜ ๋ฐ ํ›ˆ๋ จ:
XGBRegressor๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ XGBoost ํšŒ๊ท€ ๋ชจ๋ธ์„ ์ •์˜ํ•˜๊ณ  ํ›ˆ๋ จํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๊ธฐ์„œ๋Š” 100๊ฐœ์˜ ์ถ”์ •๊ธฐ์™€ ์ตœ๋Œ€ ๊นŠ์ด 3, ํ•™์Šต๋ฅ  0.1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ์˜ˆ์ธก ๋ฐ ํ‰๊ฐ€:
๊ฐœ๋ฐœ(๊ฒ€์ฆ) ์„ธํŠธ์—์„œ์˜ ์˜ˆ์ธก ๊ฐ’์„ ๊ตฌํ•˜๊ณ , ์‹ค์ œ ๊ฐ’๊ณผ ๋น„๊ตํ•˜์—ฌ ํ‰๊ท  ์ œ๊ณฑ๊ทผ ์˜ค์ฐจ(RMSE)๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ ์ค€๋น„ ๋ฐ ์˜ˆ์ธก:
๋ฐ์ดํ„ฐ์˜ ๋งˆ์ง€๋ง‰ 20%๋ฅผ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ€์ •ํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”:
ํ›ˆ๋ จ, ๊ฒ€์ฆ, ํ…Œ์ŠคํŠธ ์„ธํŠธ ๋ฐ ๋ชจ๋ธ ์˜ˆ์ธก ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ง€ํ‘œ ์ถœ๋ ฅ:
image
๊ฐœ๋ฐœ(๊ฒ€์ฆ) ์„ธํŠธ์— ๋Œ€ํ•œ ๋ชจ๋ธ์˜ RMSE๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
์ฃผ์‹ ๊ฐ€๊ฒฉ ์˜ˆ์ธก์„ ์œ„ํ•œ ์ „ํ˜•์ ์ธ ๋จธ์‹ ๋Ÿฌ๋‹ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ๋”ฐ๋ฅด๋ฉฐ,
์‹œ๊ณ„์—ด ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์„ ๊ณ ๋ คํ•œ ๊ต์ฐจ ๊ฒ€์ฆ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•ฉ๋‹ˆ๋‹ค.

2-4. ์˜ˆ์ธก ๊ฒฐ๊ณผ ๋ถ„์„ ๋ฐ ์ธ์‚ฌ์ดํŠธ ๋„์ถœ


image

image

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

  • ์˜ˆ์ธก ๊ฒฐ๊ณผ์™€ ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋น„๊ต:
comparison_df ๋ฐ์ดํ„ฐํ”„๋ ˆ์ž„์„ ์ƒ์„ฑํ•˜์—ฌ ์‹ค์ œ ๊ฐ’(y_test)๊ณผ ์˜ˆ์ธก ๊ฐ’(test_predictions)์„ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.
์˜ค์ฐจ๋Š” ์‹ค์ œ ๊ฐ’๊ณผ ์˜ˆ์ธก ๊ฐ’์˜ ์ฐจ์ด(Actual - Predicted)๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค์ฐจ ๋ถ„์„:
์˜ค์ฐจ์˜ ํ‰๊ท (error_mean)๊ณผ ํ‘œ์ค€ํŽธ์ฐจ(error_std)๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ
๋ชจ๋ธ์˜ ์˜ˆ์ธก ์˜ค์ฐจ์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
ํ‰๊ท  ์˜ค์ฐจ๋Š” ๋ชจ๋ธ์ด ์–ผ๋งˆ๋‚˜ ์ •ํ™•ํ•˜๊ฒŒ ์˜ˆ์ธกํ•˜๋Š”์ง€, ํ‘œ์ค€ํŽธ์ฐจ๋Š” ์˜ˆ์ธก์˜ ์ผ๊ด€์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ์˜ค์ฐจ์˜ ๋ถ„ํฌ ์‹œ๊ฐํ™”:
sns.histplot์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค์ฐจ์˜ ๋ถ„ํฌ๋ฅผ ํžˆ์Šคํ† ๊ทธ๋žจ์œผ๋กœ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
KDE(Kernel Density Estimate)๋Š” ์˜ค์ฐจ์˜ ๋ฐ€๋„ ์ถ”์ •์น˜๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ์˜ค์ฐจ๋ฅผ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ์ธ์‚ฌ์ดํŠธ ๋„์ถœ:
์˜ค์ฐจ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์ถ”๊ฐ€์ ์ธ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด, ์˜ค์ฐจ๊ฐ€ ํŠน์ • ๊ธฐ๊ฐ„์— ์ง‘์ค‘๋˜์–ด ์žˆ๋Š”์ง€, ์ผ์ •ํ•œ ํŒจํ„ด์„ ๋ณด์ด๋Š”์ง€ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2-5. ๋ฏธ๋ž˜ ์ฃผ๊ฐ€ ์˜ˆ์ธก

ExpectedPrice
  • ๋ฐ์ดํ„ฐ์…‹ ์ค€๋น„:
์ฃผ์‹์˜ ์—ฌ๋Ÿฌ ํŠน์„ฑ๋“ค(Open, High, Low, Close, Volume)์„ ํฌํ•จํ•˜๋Š” ๋ฐ์ดํ„ฐ์…‹์„ ์ค€๋น„ํ•˜๊ณ , ์ข…๊ฐ€(Close)๋ฅผ ์˜ˆ์ธก ๋ชฉํ‘œ(target)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”:
StandardScaler๋ฅผ ์‚ฌ์šฉํ•ด ํŠน์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ •๊ทœํ™”ํ•˜์—ฌ, ๊ฐ ํŠน์„ฑ์ด ๋™์ผํ•œ ์Šค์ผ€์ผ์„ ๊ฐ–๋„๋ก ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
์ด๋Š” ๋ชจ๋ธ์˜ ํ•™์Šต ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์ธ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.
  • ๋ชจ๋ธ ์ •์˜ ๋ฐ ํ›ˆ๋ จ:
XGBRegressor๋กœ XGBoost ํšŒ๊ท€ ๋ชจ๋ธ์„ ์ •์˜ํ•˜๊ณ , ์ •๊ทœํ™”๋œ ๋ฐ์ดํ„ฐ๋กœ ๋ชจ๋ธ์„ ํ›ˆ๋ จ์‹œํ‚ต๋‹ˆ๋‹ค.
์ด ๊ณผ์ •์€ ๋ฐ์ดํ„ฐ์—์„œ ํŒจํ„ด์„ ํ•™์Šตํ•˜์—ฌ ๋ฏธ๋ž˜์˜ ์ข…๊ฐ€๋ฅผ ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฏธ๋ž˜ ์˜ˆ์ธก์„ ์œ„ํ•œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ:
๋งˆ์ง€๋ง‰ ์•Œ๋ ค์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜์—ฌ ๋‹ค์Œ ๋‚ ์˜ ํŠน์„ฑ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” 1์ผ์น˜ ๋ฐ์ดํ„ฐ๋งŒ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฏธ๋ž˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ฃผ๊ฐ€ ์˜ˆ์ธก:
ํ›ˆ๋ จ๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ด ์ƒ์„ฑ๋œ ๋ฏธ๋ž˜ ๋ฐ์ดํ„ฐ์˜ ์ฃผ๊ฐ€๋ฅผ ์˜ˆ์ธกํ•ฉ๋‹ˆ๋‹ค.
  • ๊ฒฐ๊ณผ ์‹œ๊ฐํ™”:
matplotlib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ๊ฒฐ๊ณผ๋ฅผ ์‹œ๊ฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ ์ฃผ๊ฐ€์™€ ์˜ˆ์ธก๋œ ๋‹ค์Œ ๋‚ ์˜ ์ฃผ๊ฐ€๋ฅผ ๋™์ผํ•œ ๊ทธ๋ž˜ํ”„์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
๊ณผ๊ฑฐ ์ฃผ๊ฐ€๋Š” ํŒŒ๋ž€์ƒ‰ ์„ ์œผ๋กœ, ์˜ˆ์ธก๋œ ์ฃผ๊ฐ€๋Š” ๋นจ๊ฐ„์ƒ‰ ์ ์„ ์œผ๋กœ ๋‚˜ํƒ€๋‚ด์–ด ๋šœ๋ ท์ด ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
x์ถ•์˜ ๋ฒ”์œ„๋ฅผ xlim์„ ์‚ฌ์šฉํ•ด ํŠน์ • ๊ธฐ๊ฐ„์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค, ์—ฌ๊ธฐ์„œ๋Š” 2023๋…„ 10์›” 1์ผ๋ถ€ํ„ฐ 11์›” 1์ผ๊นŒ์ง€์ž…๋‹ˆ๋‹ค.

๐Ÿ›ธ 3. Clone-NGYB-XGBoost

  • Clone-NGYB-XGBoost๋Š” NGYB๋‹˜์˜ StockPricePrediction_v1c_xgboost.ipynb ์ฝ”๋“œ๋ฅผ ํด๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๊ณผ์ •๊ณผ ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์„ ์ผ๋ถ€ ์ˆ˜์ •ํ•˜์—ฌ ์‚ผ์„ฑ์ „์ž์˜ ์ฃผ๊ฐ€ ์ •๋ณด๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Repository ์ถœ์ฒ˜ - https://github.com/NGYB/Stocks

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages