๐ŸŽฒ Streamlit์œผ๋กœ ๋งŒ๋“  โ€˜์˜ค๋Š˜์˜ ๋กœ๋˜ยท์—ฐ๊ธˆ ์ถ”์ฒœโ€™ ์•ฑ

Nolrimboยท2025๋…„ 8์›” 17์ผ

ํฌํŠธํด๋ฆฌ์˜ค

๋ชฉ๋ก ๋ณด๊ธฐ
3/21

โ€œ10~20์–ต ํšŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜โ€์„ ์ง„์งœ๋กœ ๋Œ๋ฆฌ์ง„ ์•Š์ง€๋งŒ,
๋ผํ”Œ๋ผ์Šค ํ‰ํ™œ + ๊ฐ€์ค‘ ์ƒ˜ํ”Œ๋ง + ๋‹ค์–‘์„ฑ ํ•„ํ„ฐ๋กœ ๊ทธ ๋А๋‚Œ์„ ์žฌํ˜„ํ•ด๋ณด์ž!


๐Ÿ“‚ GitHub Repo

๐Ÿ‘‰ sanghwa90J/lottery_ticket

์ฝ”๋“œ ์ „์ฒด์™€ ์‹คํ–‰ ๋ฐฉ๋ฒ•์€ ๋ ˆํฌ์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ด ๊ธ€์—์„œ๋Š” ์•„์ด๋””์–ด์™€ UI ๊ตฌ์„ฑ์„ ์ค‘์‹ฌ์œผ๋กœ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

์—‘์…€๋กœ ์ •๋ฆฌ๋œ ๊ณผ๊ฑฐ ๋‹น์ฒจ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด,
ํ†ต๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ HOT / COLD / MIX ์ „๋žต์œผ๋กœ ๋ฒˆํ˜ธ๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ์›น์•ฑ์ž…๋‹ˆ๋‹ค.

  • ๋กœ๋˜ 6/45 (๋ณด๋„ˆ์Šค ์ œ์™ธ ์ž๋™ ๊ฐ์ง€)
  • ์—ฐ๊ธˆ๋ณต๊ถŒ 6์ž๋ฆฌ (์ž๋ฆฟ์ˆ˜ ์ž๋™ ์ถ”์ถœ)
  • ๐Ÿ“Œ ์˜ค๋Š˜์˜ ์ถ”์ฒœ (๋‚ ์งœ ๊ธฐ๋ฐ˜ ๊ณ ์ • ์‹œ๋“œ โ†’ ํ•˜๋ฃจ 1ํšŒ ์ถ”์ฒœ ๊ณ ์ •)
  • ๐ŸŽจ ํ…Œ๋งˆ (๋ผ์ดํŠธ / ๋‹คํฌ / ์นด์ง€๋…ธ)
  • ์›ํด๋ฆญ ๋ณต์‚ฌ ๋ฒ„ํŠผ (์ถ”์ฒœ ๋ฒˆํ˜ธ ๋ฐ”๋กœ ํด๋ฆฝ๋ณด๋“œ๋กœ ๋ณต์‚ฌ)

2. ํ•ต์‹ฌ ์•„์ด๋””์–ด

  • ๋ผํ”Œ๋ผ์Šค ํ‰ํ™œ โ†’ ์ž‘์€ ํ‘œ๋ณธ์˜ ํŽธ์ฐจ ์™„ํ™”
  • ๊ฐ€์ค‘ ์ƒ˜ํ”Œ๋ง (Hot/Cold)
    • HOT = ๋งŽ์ด ๋‚˜์˜จ ๋ฒˆํ˜ธ ๊ฐ•์กฐ
    • COLD = ์ ๊ฒŒ ๋‚˜์˜จ ๋ฒˆํ˜ธ ๊ฐ•์กฐ
    • MIX = HOT๊ณผ ๊ท ๋“ฑ ์„ž๊ธฐ
  • Gumbel-top-k โ†’ ์ค‘๋ณต ์—†์ด k๊ฐœ ๋ฒˆํ˜ธ ๋ฝ‘๊ธฐ
  • ๋‹ค์–‘์„ฑ ํ•„ํ„ฐ โ†’ ํ›„๋ณด๊ตฐ ๋„‰๋„‰ํžˆ ์ƒ์„ฑ ํ›„ ๊ฒน์น˜์ง€ ์•Š๊ฒŒ ์ถ”๋ฆฌ๊ธฐ

์ฆ‰, ์ง„์งœ 10์–ต ํšŒ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ ๋Œ€์‹  ๊ทผ์‚ฌ์ ์œผ๋กœ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋น ๋ฅด๊ฒŒ ์–ป์Šต๋‹ˆ๋‹ค.


3. ์‹คํ–‰ ๋ฐฉ๋ฒ•

git clone https://github.com/sanghwa90J/lottery_ticket.git
cd lottery_ticket

pip install -r requirements.txt
streamlit run lucky_recommender_app.py

๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8501 ์ž๋™ ์˜คํ”ˆ.


4. ์‚ฌ์šฉ๋ฒ•

  1. ์—‘์…€ ์—…๋กœ๋“œ
    • ๋กœ๋˜: 1-600_๋กœ๋˜.xls.xlsx, 601-1185_๋กœ๋˜.xls.xlsx
    • ์—ฐ๊ธˆ๋ณต๊ถŒ: 1-275_์—ฐ๊ธˆ.xls.xlsx
  2. ๋นˆ๋„ ํ™•์ธ
    • ๋ฒˆํ˜ธ/์ž๋ฆฟ์ˆ˜ ๋“ฑ์žฅ ํšŸ์ˆ˜ ์‹œ๊ฐํ™”
  3. ์ถ”์ฒœ ๋ณด๊ธฐ
    • ์ „๋žต๋ณ„ ์ถ”์ฒœ ์„ธํŠธ
    • ์˜ค๋Š˜์˜ ์ถ”์ฒœ(์ „๋žต๋ณ„ 1์„ธํŠธ) ์นด๋“œํ˜• UI + ๋ณต์‚ฌ ๋ฒ„ํŠผ

โš ๏ธ ์–ด๋””๊นŒ์ง€๋‚˜ ์žฌ๋ฏธ/์˜ค๋ฝ์šฉ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ๋‹น์ฒจ์€ ๋ณด์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.


5. ์žฌ๋ฏธ ์š”์†Œ

  • ํ…Œ๋งˆ ์„ ํƒ: ๋ผ์ดํŠธ / ๋‹คํฌ / ์นด์ง€๋…ธ
  • ๋ณต์‚ฌ ๋ฒ„ํŠผ: ์ถ”์ฒœ ๋ฒˆํ˜ธ ์ฆ‰์‹œ ํด๋ฆฝ๋ณด๋“œ ๋ณต์‚ฌ
  • ์˜ค๋Š˜์˜ ์ถ”์ฒœ: ํ•˜๋ฃจ ๊ณ ์ • โ†’ ๊ณต์œ /๋ฉ”๋ชจํ•˜๊ธฐ ๋”ฑ ์ข‹์Œ

6. ํ•œ๊ณ„์™€ ํ™•์žฅ ์•„์ด๋””์–ด

  • ๋‹น์ฒจ ์˜ˆ์ธก์€ ๋ถˆ๊ฐ€๋Šฅ โ†’ ์‹ฌ๋ฆฌ์  ์žฌ๋ฏธ ์š”์†Œ์— ์ดˆ์ 
  • ํ™•์žฅ ํฌ์ธํŠธ
    • ์ตœ๊ทผ NํšŒ๋งŒ ๋ฐ˜์˜
    • ์ „๋žต ๊ฐ€์ค‘์น˜ ์กฐ์ ˆ
    • ๊ณต์œ  ์ด๋ฏธ์ง€/์นด์นด์˜คํ†ก ์นด๋“œ ์ƒ์„ฑ
    • Streamlit Cloud ๋ฐฐํฌ

7. ๋งˆ์น˜๋ฉฐ

Streamlit ๋•๋ถ„์— ๋ฐ์ดํ„ฐ ํŒŒ์‹ฑ + ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ + ์›น UI๊นŒ์ง€
ํ•œ ๋ฒˆ์— ๋ถ™์ผ ์ˆ˜ ์žˆ์—ˆ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€๋ณ์ง€๋งŒ ๊ฝค ๊ทธ๋Ÿด๋“ฏํ•œ ์žฌ๋ฏธ์šฉ ์•ฑ์ด ๋‚˜์™”์Šต๋‹ˆ๋‹ค.

๐Ÿ‘‰ ์ฝ”๋“œ์™€ ์ตœ์‹  ๋ฒ„์ „์€ ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™•์ธํ•˜์„ธ์š”:
sanghwa90J/lottery_ticket

ํ–‰์šด์„ ๋น•๋‹ˆ๋‹ค ๐Ÿ€

profile
Java ๊ฐœ๋ฐœ์ž | ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋งˆ๋‹ˆ์•„ | GPT ๊ธฐ๋ฐ˜ ์ž๋™ํ™” ํˆด ์—ฐ๊ตฌ ์ค‘ ๊ธฐ์ˆ  ๋ฆฌ๋ทฐ, ๊ฐœ๋ฐœ์ผ์ง€

0๊ฐœ์˜ ๋Œ“๊ธ€