Skip to content

Latest commit

ย 

History

26 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์„œ์šธ์‹œ ์ƒํ™œ ์ธํ”„๋ผ ๊ธฐ๋ฐ˜ ๋ฒ•์ •๋™ ๊ตฐ์ง‘ ๋ถ„์„

์„œ์šธ 452๊ฐœ ๋ฒ•์ •๋™์˜ ๊ต์œกยท์ƒ์—… ์ธํ”„๋ผ ๋ฐ€๋„๋ฅผ K-Means ํด๋Ÿฌ์Šคํ„ฐ๋ง์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ , PCA๋กœ ์‹œ๊ฐํ™”ํ•˜๋ฉฐ, Decision Tree๋กœ ํŒ๋ณ„ ๊ทœ์น™์„ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค.


๋ชฉ์ฐจ

  1. ์‚ฌ์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜
  2. 1๋‹จ๊ณ„ โ€” ๋ฌธ์ œ ์ •์˜
  3. 2๋‹จ๊ณ„ โ€” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์„ค๋ช…
  4. 3๋‹จ๊ณ„ โ€” ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ
  5. 4๋‹จ๊ณ„ โ€” ๋ชจ๋ธ ์„ค๊ณ„ ๋ฐ ์ ์šฉ
  6. 5๋‹จ๊ณ„ โ€” ์„ฑ๋Šฅ ํ‰๊ฐ€
  7. 6๋‹จ๊ณ„ โ€” ๊ฒฐ๊ณผ ๋ถ„์„ ๋ฐ ํ•ด์„
  8. ์‹คํ–‰ ๋ฐฉ๋ฒ•
  9. ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

์‚ฌ์šฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜

์ˆ˜์—…์—์„œ ๋‹ค๋ฃฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ์ด ํ”„๋กœ์ ํŠธ์—์„œ ์‹ค์ œ๋กœ ์ ์šฉํ•œ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

๋ถ„๋ฅ˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ ์šฉ ๋ชฉ์ 
๊ตฐ์ง‘ํ™” (Clustering) K-Means Clustering ์„œ์šธ ๋ฒ•์ •๋™์„ ์ธํ”„๋ผ ํŠน์„ฑ ๊ธฐ์ค€์œผ๋กœ 4๊ฐœ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜
์ฐจ์› ์ถ•์†Œ Principal Component Analysis (PCA) 3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์›์œผ๋กœ ์••์ถ•ํ•ด ๊ตฐ์ง‘ ๋ถ„ํฌ ์‹œ๊ฐํ™”
๋ถ„๋ฅ˜ (Classification) Decision Tree K-Means ๊ตฐ์ง‘ ๋ ˆ์ด๋ธ”์„ ํ•™์Šตํ•ด ๋™๋„ค ์œ ํ˜• ํŒ๋ณ„ ๊ทœ์น™ ๋„์ถœ ๋ฐ ๊ตฐ์ง‘ ์œ ํšจ์„ฑ ๊ฒ€์ฆ

์ด ์™ธ์—๋„ StandardScaler(์ •๊ทœํ™”), Silhouette Score(๊ตฐ์ง‘ ํ’ˆ์งˆ ํ‰๊ฐ€), Elbow Method(์ตœ์  K ํƒ์ƒ‰), 5-Fold Cross Validation(ํŠธ๋ฆฌ ๊นŠ์ด ์ตœ์ ํ™”), Ridge Regression(์ง‘๊ฐ’ ์˜ˆ์ธก ๋ณด์กฐ ๋ถ„์„)์ด ํ™œ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.


1๋‹จ๊ณ„ โ€” ๋ฌธ์ œ ์ •์˜

ํ•ต์‹ฌ ์งˆ๋ฌธ

"์„œ์šธ ๋™๋„ค๋“ค์€ ์–ด๋–ค ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ์„๊นŒ? ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ธฐ์ค€์„ ๋ช…ํ™•ํ•œ ๊ทœ์น™์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„๊นŒ?"

์šฐ๋ฆฌ๋Š” ํ”ํžˆ "๊ต์œก ํŠน๊ตฌ๋Š” ์ง‘๊ฐ’์ด ๋†’๋‹ค", "์ƒ์—…์ง€๋Š” ์ฃผ๊ฑฐ ์„ ํ˜ธ๋„๊ฐ€ ๋‚ฎ๋‹ค"๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๊ฐ๊ด€์ ์œผ๋กœ ๊ฒ€์ฆํ•œ ์‚ฌ๋ก€๋Š” ๋งŽ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์งˆ๋ฌธ์— ๋‹ตํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ์šธ ๋™๋„ค๋“ค์€ ์ธํ”„๋ผ ํŠน์„ฑ(์†Œ์ƒ๊ณต์ธยทํ•™๊ตยทํ•™์› ๋ฐ€๋„)์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋‚˜๋‰˜๋Š”๊ฐ€?
  • ๊ฐ ๋™๋„ค ์œ ํ˜•์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์ธํ”„๋ผ ๋ฐ€๋„ ๊ธฐ์ค€๊ฐ’์€ ์–ผ๋งˆ์ธ๊ฐ€?
  • ์ธํ”„๋ผ ์œ ํ˜•๊ณผ ์‹ค๊ฑฐ๋ž˜๊ฐ€ ์‚ฌ์ด์—๋Š” ์–ด๋–ค ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š”๊ฐ€?

๋ถ„์„ ๋ฒ”์œ„

  • ๋Œ€์ƒ: ์„œ์šธ์‹œ ์ „์ฒด 452๊ฐœ ๋ฒ•์ •๋™
  • ์ž…๋ ฅ ๋ณ€์ˆ˜: ๋™๋ณ„ ์†Œ์ƒ๊ณต์ธ ์ˆ˜ / ๋ฉด์ (kmยฒ), ํ•™๊ต ์ˆ˜ / ๋ฉด์ , ํ•™์› ์ˆ˜ / ๋ฉด์  (๋ฐ€๋„ ๊ธฐ์ค€)
  • ๋น„๊ต ์ง€ํ‘œ: ์•„ํŒŒํŠธ ์‹ค๊ฑฐ๋ž˜๊ฐ€ (2025.04 ~ 2026.03)

2๋‹จ๊ณ„ โ€” ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋ฐ ์„ค๋ช…

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋Š” ๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์—์„œ ์ˆ˜์ง‘ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

ํŒŒ์ผ๋ช… ์„ค๋ช… ํ™œ์šฉ
์†Œ์ƒ๊ณต์ธ.csv ์„œ์šธ์‹œ ์ „์ฒด ์†Œ์ƒ๊ณต์ธ ์‚ฌ์—…์žฅ ๋ชฉ๋ก (์ฃผ์†Œ ํฌํ•จ) ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ณ€์ˆ˜
ํ•™๊ต.csv ์„œ์šธ์‹œ ์ดˆยท์ค‘ยท๊ณ ยท๋Œ€ํ•™๊ต ๋ชฉ๋ก ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ณ€์ˆ˜
ํ•™์›.csv ์„œ์šธ์‹œ ๋“ฑ๋ก ํ•™์› ์ค‘ ๊ฐœ์› ์ค‘์ธ ๊ณณ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ณ€์ˆ˜
ํ† ์ง€ ๋ฉด์ .csv ๋ฒ•์ •๋™๋ณ„ ๋ฉด์  (kmยฒ) ๋ฐ€๋„ ๊ณ„์‚ฐ ๊ธฐ์ค€
์ธ๊ตฌ๋ฐ€๋„.csv ์„œ์šธ์‹œ ์๋ฉด๋™๋ณ„ ์ธ๊ตฌ ํ˜„ํ™ฉ ์œ ํšจ ๋ฒ•์ •๋™ 452๊ฐœ ์„ ์ • ๊ธฐ์ค€
์„œ์šธ์‹œ_์‹ค๊ฑฐ๋ž˜๊ฐ€.csv ์•„ํŒŒํŠธ ์‹ค๊ฑฐ๋ž˜๊ฐ€ (2025.04 ~ 2026.03) ์ง‘๊ฐ’ ๋น„๊ต ๋ถ„์„

์ฃผ์š” ๋ณ€์ˆ˜ ๊ธฐ์ˆ ํ†ต๊ณ„

๋ณ€์ˆ˜ ํ‰๊ท  ํ‘œ์ค€ํŽธ์ฐจ ์ตœ์†Ÿ๊ฐ’ ์ตœ๋Œ“๊ฐ’ ๋น„๊ณ 
์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„ (๊ฐœ/kmยฒ) 63.9 91.0 0.0 814.5 ๋ช…๋™(814) ๊ทน๋‹จ๊ฐ’
ํ•™๊ต ๋ฐ€๋„ (๊ฐœ/kmยฒ) 5.5 17.8 0.0 288.8 right-skewed
ํ•™์› ๋ฐ€๋„ (๊ฐœ/kmยฒ) 32.3 51.6 0.0 430.5 ๋Œ€์น˜๋™(430) ๊ทน๋‹จ๊ฐ’

๋ณ€์ˆ˜ ์„ ํƒ ๊ทผ๊ฑฐ: ์ธ๊ตฌ๋ฐ€๋„ยท์ง€ํ•˜์ฒ ์—ญ ์ถ”๊ฐ€ ์‹œ Silhouette Score๊ฐ€ 0.49 โ†’ 0.39๋กœ ํ•˜๋ฝ(noise ์ฆ๊ฐ€)ํ•ด ์ œ์™ธํ•˜๊ณ , ์ƒํ™œ ์ธํ”„๋ผ ํ•ต์‹ฌ 3์ถ•๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


3๋‹จ๊ณ„ โ€” ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ

์ฒ˜๋ฆฌ ํ๋ฆ„

์›๋ณธ ๋ฐ์ดํ„ฐ (์†Œ์ƒ๊ณต์ธ / ํ•™๊ต / ํ•™์› / ๋ฉด์ )
         โ”‚
         โ–ผ
๋ฒ•์ •๋™๋ณ„ ๊ฐœ์ˆ˜ ์ง‘๊ณ„ โ†’ ๋ฉด์ (kmยฒ)์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฐ€๋„ ๊ณ„์‚ฐ
         โ”‚
         โ–ผ
Log1p ๋ณ€ํ™˜  โ†’  right-skewed ๋ถ„ํฌ ์™„ํ™”
  (์˜ˆ: ๋Œ€์น˜๋™ ํ•™์›๋ฐ€๋„ 430 โ†’ log(431)=6.07 / ์ „์ฒด ํ‰๊ท  log(33)=3.53)
         โ”‚
         โ–ผ
StandardScaler  โ†’  ํ‰๊ท  0, ํ‘œ์ค€ํŽธ์ฐจ 1๋กœ ์ •๊ทœํ™”
         โ”‚
         โ–ผ
Z-score ๊ธฐ๋ฐ˜ ์ด์ƒ์น˜ ์ œ๊ฑฐ (|Z| > 3์ธ ๋™๋„ค 3๊ฐœ ์ œ๊ฑฐ)
  ๋‹จ, ๋ถ„์„์ƒ ์ค‘์š”ํ•œ ๋Œ€์น˜๋™ยท์‹ ์‚ฌ๋™์€ ๊ฐ•์ œ ๋ณด์กด
         โ”‚
         โ–ผ
์ตœ์ข… ์ž…๋ ฅ ๋ฐ์ดํ„ฐ: 449๊ฐœ ๋ฒ•์ •๋™ ร— 3๊ฐœ ๋ณ€์ˆ˜

์™œ Log1p ๋ณ€ํ™˜์ธ๊ฐ€?

๋ฐ€๋„ ๋ฐ์ดํ„ฐ๋Š” ๊ทน๋‹จ์ ์œผ๋กœ ์น˜์šฐ์ณ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช…๋™์˜ ์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„(814/kmยฒ)๋Š” ํ‰๊ท (64/kmยฒ)์˜ 12๋ฐฐ์ž…๋‹ˆ๋‹ค. ์ด๋Œ€๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋งํ•˜๋ฉด ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ทน๋‹จ๊ฐ’์— ๋Œ๋ ค๊ฐ€ ์˜๋ฏธ ์žˆ๋Š” ๊ตฐ์ง‘์ด ๋งŒ๋“ค์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Log1p ๋ณ€ํ™˜์œผ๋กœ ๊ทน๋‹จ๊ฐ’์„ ์™„ํ™”ํ•˜๋ฉด์„œ๋„ ๋™๋„ค ๊ฐ„ ์ƒ๋Œ€์  ์ฐจ์ด๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ด์ƒ์น˜ ์ฒ˜๋ฆฌ

์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ๋Œ€์ƒ ๊ฒฐ๊ณผ
Z-score > 3 ์ œ๊ฑฐ ์ข…๋กœ๊ตฌ ์ˆญ์ธ๋™, ์ค‘๊ตฌ ํฅ์ธ๋™, ๋งˆํฌ๊ตฌ ์•„ํ˜„๋™ 3๊ฐœ ๋™ ์ œ๊ฑฐ
ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ ๋ณด์กด ๊ฐ•๋‚จ๊ตฌ ๋Œ€์น˜๋™, ๊ฐ•๋‚จ๊ตฌ ์‹ ์‚ฌ๋™ ๋ถ„์„ ์ค‘์š” ๋™๋„ค ๊ฐ•์ œ ํฌํ•จ

4๋‹จ๊ณ„ โ€” ๋ชจ๋ธ ์„ค๊ณ„ ๋ฐ ์ ์šฉ

K-Means ํด๋Ÿฌ์Šคํ„ฐ๋ง

K-Means๋Š” ๊ตฐ์ง‘ ์ˆ˜(K)๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Elbow Method(๊ด€์„ฑ๊ฐ’ ๊ฐ์†Œ ์ถ”์ด)์™€ Silhouette Score(๊ตฐ์ง‘ ์‘์ง‘๋„)๋ฅผ ํ•จ๊ป˜ ํ™•์ธํ•ด K=4๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

km = KMeans(n_clusters=4, random_state=42, n_init=10)
labels = km.fit_predict(X)
  • ์ž…๋ ฅ: 449๊ฐœ ๋ฒ•์ •๋™ ร— 3๊ฐœ ๋ณ€์ˆ˜ (์†Œ์ƒ๊ณต์ธยทํ•™๊ตยทํ•™์› ์ •๊ทœํ™” ๋ฐ€๋„)
  • ์ถœ๋ ฅ: ๊ฐ ๋ฒ•์ •๋™์— ํด๋Ÿฌ์Šคํ„ฐ ๋ฒˆํ˜ธ(0~3) ๋ถ€์—ฌ

K ํƒ์ƒ‰ ๊ฒฐ๊ณผ (data/processed/k_selection.png):

K Silhouette Score ํ•ด์„
2 0.476 ๋ถ„๋ฆฌ ๊ณผ๋„
3 0.420
4 0.446 ์ตœ์  (Elbow + Silhouette ๋™์‹œ ๊ณ ๋ ค)
5 0.381 ๊ณผ๋ถ„ํ• 

PCA ์ฐจ์› ์ถ•์†Œ (์‹œ๊ฐํ™”)

3์ฐจ์› ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— PCA๋กœ 2์ฐจ์›์œผ๋กœ ์••์ถ•ํ•ด ๊ตฐ์ง‘ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค.

pca = PCA(n_components=2, random_state=42)
coords = pca.fit_transform(X)
  • PC1: ๊ต์œก ์ธํ”„๋ผ ์ถ• (ํ•™์›ยทํ•™๊ต ๋ฐ€๋„ ๋ฐ˜์˜, ์„ค๋ช… ๋ถ„์‚ฐ ~70%)
  • PC2: ์ƒ๊ถŒ ์ง‘์ค‘ ์ถ• (์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„ ๋ฐ˜์˜, ์„ค๋ช… ๋ถ„์‚ฐ ~20%)
  • ๋ˆ„์  ์„ค๋ช… ๋ถ„์‚ฐ ~90% โ†’ 3๊ฐœ ๋ณ€์ˆ˜์˜ ์ •๋ณด๋ฅผ ๊ฑฐ์˜ ์†์‹ค ์—†์ด ๋ณด์กด

PCA ์ฃผ์„ฑ๋ถ„ ๋กœ๋”ฉ ํ‘œ

Decision Tree โ€” ๊ตฐ์ง‘ ํŒ๋ณ„ ๊ทœ์น™ ๋„์ถœ

K-Means๊ฐ€ ๋งŒ๋“  ํด๋Ÿฌ์Šคํ„ฐ ๋ ˆ์ด๋ธ”(0~3)์„ target์œผ๋กœ ๋†“๊ณ , ์ธํ”„๋ผ ๋ฐ€๋„๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” Decision Tree๋ฅผ ํ•™์Šตํ•ฉ๋‹ˆ๋‹ค.

์ž…๋ ฅ(X): ์†Œ์ƒ๊ณต์ธ_๋ฐ€๋„, ํ•™๊ต_๋ฐ€๋„, ํ•™์›_๋ฐ€๋„
์ถœ๋ ฅ(y): K-Means ํด๋Ÿฌ์Šคํ„ฐ ๋ฒˆํ˜ธ (0, 1, 2, 3)

๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์œผ๋กœ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. ๊ทœ์น™ ๋„์ถœ: "ํ•™์› ๋ฐ€๋„ > X์ด๋ฉด ๊ต์œก ํŠนํ™”, ์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„ > Y์ด๋ฉด ์ƒ์—… ํŠนํ™”"์™€ ๊ฐ™์€ ๋ช…ํ™•ํ•œ ๊ธฐ์ค€๊ฐ’ ์ถ”์ถœ
  2. ๊ตฐ์ง‘ ์œ ํšจ์„ฑ ๊ฒ€์ฆ: ์ •ํ™•๋„๊ฐ€ ๋†’์„์ˆ˜๋ก K-Means ๊ตฐ์ง‘์ด ์ธํ”„๋ผ๋กœ ์ž˜ ์„ค๋ช…๋˜๋Š” ์‹ค์ œ ํŒจํ„ด์ž„์„ ์˜๋ฏธ

์ตœ์  ํŠธ๋ฆฌ ๊นŠ์ด๋Š” 5-Fold Cross Validation์œผ๋กœ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

dt = DecisionTreeClassifier(max_depth=best_depth, random_state=42)
dt.fit(X_train, y_train)

ํŠธ๋ฆฌ ๊นŠ์ด๋ณ„ ์ •ํ™•๋„ ๋ณ€ํ™”:

ํŠธ๋ฆฌ ๊นŠ์ด ํƒ์ƒ‰


5๋‹จ๊ณ„ โ€” ์„ฑ๋Šฅ ํ‰๊ฐ€

K-Means โ€” Silhouette Score

์ง€ํ‘œ ๊ฐ’ ํ•ด์„
Silhouette Score 0.4458 ๊ตฐ์ง‘ ๊ฐ„ ๋ถ„๋ฆฌ๊ฐ€ ๋šœ๋ ทํ•˜๋ฉฐ ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€

์ผ๋ฐ˜์ ์œผ๋กœ Silhouette Score 0.4 ์ด์ƒ์ด๋ฉด ์˜๋ฏธ ์žˆ๋Š” ๊ตฐ์ง‘ ๊ตฌ์กฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค๊ณ  ๋ด…๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ๋ฒ•์ •๋™ ์ˆ˜

ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„ ๋ฒ•์ •๋™ ์ˆ˜
C0 ์ƒ์—…ยทํ•™์› ๋ณตํ•ฉ 119๊ฐœ
C1 ๊ต์œกยท์ฃผ๊ฑฐ ๋ฐ€์ง‘ 128๊ฐœ
C2 ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ 71๊ฐœ
C3 ์ƒ์—… ํŠนํ™” 131๊ฐœ

PCA ์„ค๋ช… ๋ถ„์‚ฐ

์ฃผ์„ฑ๋ถ„ ์„ค๋ช… ๋ถ„์‚ฐ ํ•ด์„
PC1 ~70% ๊ต์œก ์ธํ”„๋ผ ์ถ• (ํ•™์›ยทํ•™๊ต ๋ฐ€๋„ ๋ฐ˜์˜)
PC2 ~20% ์ƒ๊ถŒ ์ง‘์ค‘ ์ถ• (์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„ ๋ฐ˜์˜)
ํ•ฉ๊ณ„ ~90% 3๊ฐœ ๋ณ€์ˆ˜์˜ ์ •๋ณด๋ฅผ 90% ์ด์ƒ ๋ณด์กด

Decision Tree โ€” ๋ถ„๋ฅ˜ ์„ฑ๋Šฅ

์ง€ํ‘œ ๊ฐ’ ํ•ด์„
Test ์ •ํ™•๋„ 98.9% 449๊ฐœ ๋ฒ•์ •๋™ ์ค‘ ๋‹จ 1๊ฐœ๋งŒ ์˜ค๋ถ„๋ฅ˜
5-Fold CV ์ •ํ™•๋„ 95.8% ๊ณผ์ ํ•ฉ ์—†์ด ์•ˆ์ •์ ์œผ๋กœ ๋†’์€ ์„ฑ๋Šฅ
์ตœ์  ํŠธ๋ฆฌ ๊นŠ์ด 5 Cross Validation์œผ๋กœ ํƒ์ƒ‰

6๋‹จ๊ณ„ โ€” ๊ฒฐ๊ณผ ๋ถ„์„ ๋ฐ ํ•ด์„

ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ์ธํ”„๋ผ ํ”„๋กœํŒŒ์ผ (๋ ˆ์ด๋” ์ฐจํŠธ)

4๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์†Œ์ƒ๊ณต์ธยทํ•™๊ตยทํ•™์› ๋ฐ€๋„์—์„œ ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ํ•œ๋ˆˆ์— ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

๋ ˆ์ด๋” ์ฐจํŠธ

ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„ ์ฃผ์š” ํŠน์ง• ๋Œ€ํ‘œ ๋™๋„ค
C0 ์ƒ์—…ยทํ•™์› ๋ณตํ•ฉ ์†Œ์ƒ๊ณต์ธ๊ณผ ํ•™์› ๋ฐ€๋„๊ฐ€ ๋ชจ๋‘ ๋†’์Œ ์‹ ์‚ฌ๋™, ์—ญ์‚ผ๋™, ์„œ๊ต๋™, ์ธ์‚ฌ๋™
C1 ๊ต์œกยท์ฃผ๊ฑฐ ๋ฐ€์ง‘ ํ•™์›ยทํ•™๊ต ๋ฐ€๋„๊ฐ€ ์••๋„์ ์œผ๋กœ ๋†’์Œ ๋Œ€์น˜๋™, ์ค‘๊ณ„๋™, ๋ฐ˜ํฌ๋™, ์ž ์‹ค๋™
C2 ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ ๋ชจ๋“  ์ง€ํ‘œ๊ฐ€ ๋‚ฎ์Œ (์กฐ์šฉํ•œ ์ฃผ๊ฑฐ์ง€) ์ด์ดŒ๋™, ์„ธ๊ณก๋™, ์œจํ˜„๋™, ์ž๊ณก๋™
C3 ์ƒ์—… ํŠนํ™” ์†Œ์ƒ๊ณต์ธ ๋ฐ€๋„๋งŒ ๊ทน๋‹จ์ ์œผ๋กœ ๋†’์Œ ๋ช…๋™, ์†Œ๊ณต๋™, ์ถฉ๋ฌด๋กœ, ์„์ง€๋กœ

PCA 2D ์‹œ๊ฐํ™” (๊ตฐ์ง‘ ๋ถ„ํฌ)

3๊ฐœ ๋ณ€์ˆ˜๋ฅผ 2๊ฐœ์˜ ์ฃผ์„ฑ๋ถ„์œผ๋กœ ์••์ถ•ํ•ด ์„œ์šธ 449๊ฐœ ๋ฒ•์ •๋™์˜ ๋ถ„ํฌ๋ฅผ ์‹œ๊ฐํ™”ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ™์€ ์ƒ‰์ƒ์˜ ์ ๋“ค์ด ๋น„์Šทํ•œ ์ธํ”„๋ผ ํŠน์„ฑ์„ ๊ฐ€์ง„ ๋™๋„ค๋“ค์ž…๋‹ˆ๋‹ค.

PCA ์‚ฐ์ ๋„


PCA ์ฃผ์„ฑ๋ถ„ ํ•ด์„

PC1๊ณผ PC2๊ฐ€ ๊ฐ๊ฐ ์–ด๋–ค ๋ณ€์ˆ˜๋ฅผ ์–ผ๋งˆ๋‚˜ ๋ฐ˜์˜ํ•˜๋Š”์ง€ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค.

PCA ํ•ด์„ ์Šฌ๋ผ์ด๋“œ

์ฃผ์„ฑ๋ถ„ ํ•ด์„ ์˜๋ฏธ
PC1 (๊ต์œก ์ธํ”„๋ผ ์ถ•) ํ•™์›ยทํ•™๊ต ๋ณ€์ˆ˜์— ๋†’์€ ์–‘์˜ ๊ฐ€์ค‘์น˜ PC1์ด ๋†’์„์ˆ˜๋ก ๊ต์œก ํŠนํ™” ์ง€์—ญ
PC2 (์ƒ๊ถŒ ์ง‘์ค‘ ์ถ•) ์†Œ์ƒ๊ณต์ธ์— ์–‘, ํ•™๊ต์— ์Œ์˜ ๊ฐ€์ค‘์น˜ PC2๊ฐ€ ๋†’์„์ˆ˜๋ก ์ƒ์—… ํŠนํ™” ์ง€์—ญ

Decision Tree ๊ฒฐ๊ณผ

ํŠธ๋ฆฌ ์‹œ๊ฐํ™” โ€” ๋™๋„ค ์œ ํ˜• ํŒ๋ณ„ ๊ทœ์น™

์ธํ”„๋ผ ๋ฐ€๋„ ๊ธฐ์ค€๊ฐ’์œผ๋กœ ์–ด๋–ป๊ฒŒ 4๊ฐœ ์œ ํ˜•์ด ๋‚˜๋‰˜๋Š”์ง€ ํŠธ๋ฆฌ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

ํŠธ๋ฆฌ ์‹œ๊ฐํ™”

ํ˜ผ๋™ ํ–‰๋ ฌ (Confusion Matrix)

449๊ฐœ ๋ฒ•์ •๋™ ์ค‘ ๋‹จ 1๊ฐœ๋งŒ ์˜ค๋ถ„๋ฅ˜. 4๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋‘ ๋†’์€ ์ •๋ฐ€๋„ยท์žฌํ˜„์œจ์„ ๋ณด์ž…๋‹ˆ๋‹ค.

ํ˜ผ๋™ ํ–‰๋ ฌ

Feature Importance โ€” ์–ด๋–ค ์ธํ”„๋ผ๊ฐ€ ๋™๋„ค ์œ ํ˜•์„ ๊ฐ€์žฅ ์ž˜ ๊ตฌ๋ถ„ํ•˜๋Š”๊ฐ€?

Feature Importance

K-Means ๋ ˆ์ด๋” ์ฐจํŠธ์™€ Decision Tree Feature Importance๊ฐ€ ๊ฐ™์€ ๋ณ€์ˆ˜๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ๋ณธ๋‹ค๋ฉด, ๋ถ„์„ ๊ฒฐ๋ก ์ด ๋‘ ๋ชจ๋ธ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์ง€์ง€๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.


ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ์•„ํŒŒํŠธ ์‹ค๊ฑฐ๋ž˜๊ฐ€ ๋น„๊ต

์ธํ”„๋ผ ์œ ํ˜•์ด ์‹ค์ œ ์ง‘๊ฐ’์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์ง‘๊ฐ’ ๋น„๊ต

ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„ ๊ฑฐ๋ž˜๊ฑด์ˆ˜ ํ‰๊ท ๊ฐ€ ์ค‘์•™๊ฐ’
C0 ์ƒ์—…ยทํ•™์› ๋ณตํ•ฉ 17,443๊ฑด 12.22์–ต 11.00์–ต
C1 ๊ต์œกยท์ฃผ๊ฑฐ ๋ฐ€์ง‘ 44,721๊ฑด 11.68์–ต 9.28์–ต
C2 ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ 2,025๊ฑด 13.43์–ต 10.55์–ต
C3 ์ƒ์—… ํŠนํ™” 6,932๊ฑด 12.48์–ต 10.75์–ต

ํ•ต์‹ฌ ์ธ์‚ฌ์ดํŠธ:

  • ๊ต์œกยท์ฃผ๊ฑฐ ๋ฐ€์ง‘(C1) ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ฑฐ๋ž˜๋Ÿ‰ 44,721๊ฑด์œผ๋กœ ์ „์ฒด์˜ 63%๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•™์›ยทํ•™๊ต ๋ฐ€๋„๊ฐ€ ๋†’์€ ์ง€์—ญ์— ์„œ์šธ ์•„ํŒŒํŠธ ๊ฑฐ๋ž˜๊ฐ€ ์ง‘์ค‘๋ฉ๋‹ˆ๋‹ค.
  • ๋‹จ, ํ‰๊ท ๊ฐ€(11.68์–ต)์™€ ์ค‘์•™๊ฐ’(9.28์–ต) ๋ชจ๋‘ 4๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋Œ€์น˜๋™ยท๋ฐ˜ํฌ๋™ ๊ฐ™์€ ๊ณ ๊ฐ€ ์ง€์—ญ๊ณผ ๋…ธ์›ยท๊ฐ•๋ถยท์€ํ‰ ๋“ฑ ์ค‘์ €๊ฐ€ ๊ต์œก ์ง€์—ญ์ด ๊ฐ™์€ ๊ตฐ์ง‘์— ํ˜ผ์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
  • ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ(C2) ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ฑฐ๋ž˜๋Ÿ‰(2,025๊ฑด)์ด ๊ฐ€์žฅ ์ ์ง€๋งŒ ํ‰๊ท ๊ฐ€(13.43์–ต)๋Š” ๊ฐ€์žฅ ๋†’์Šต๋‹ˆ๋‹ค. ์ด์ดŒ๋™์ฒ˜๋Ÿผ ์กฐ์šฉํ•˜๊ณ  ํฌ์†Œํ•œ ๊ณ ๊ธ‰ ์ฃผ๊ฑฐ์ง€์˜ ํ”„๋ฆฌ๋ฏธ์—„์ด ๋ฐ˜์˜๋ฉ๋‹ˆ๋‹ค.
  • ์ƒ์—… ํŠนํ™”(C3) ํด๋Ÿฌ์Šคํ„ฐ(๋ช…๋™ยท์ถฉ๋ฌด๋กœ ๋“ฑ)์˜ ํ‰๊ท ๊ฐ€๋Š” 12.48์–ต์œผ๋กœ, ์ƒ๊ถŒ ํ™œ์„ฑํ™”๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ฃผ๊ฑฐ ๋น„์„ ํ˜ธ๋ฅผ ์˜๋ฏธํ•˜์ง€ ์•Š์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ์š”์•ฝ ์นด๋“œ

๊ฐ ํด๋Ÿฌ์Šคํ„ฐ์˜ ํ•ต์‹ฌ ์ง€ํ‘œ์™€ ๋Œ€ํ‘œ ๋™๋„ค๋ฅผ ํ•œ๋ˆˆ์— ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ์š”์•ฝ


์ตœ์ข… ์ธ์‚ฌ์ดํŠธ ์ •๋ฆฌ

"์„œ์šธ์—์„œ ๊ต์œก ์ธํ”„๋ผ๊ฐ€ ์ง‘์ค‘๋œ ๋™๋„ค๊ฐ€ ๊ฑฐ๋ž˜๋Ÿ‰์€ ์••๋„์  1์œ„์ง€๋งŒ, ๊ฐ€๊ฒฉ์ด ๊ฐ€์žฅ ๋†’์€ ๊ณณ์€ ์˜คํžˆ๋ ค ์กฐ์šฉํ•œ ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ์ง€์ž…๋‹ˆ๋‹ค."

  1. ๊ต์œก ์ธํ”„๋ผ = ์ตœ๊ณ ์˜ ์ฃผ๊ฑฐ ์ˆ˜์š”: C1์˜ ๊ฑฐ๋ž˜๋Ÿ‰์ด 44,721๊ฑด์œผ๋กœ ์ „์ฒด ๊ฑฐ๋ž˜์˜ 63%๋ฅผ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค. ํ•™์›ยทํ•™๊ต ๋ฐ€๋„๊ฐ€ ๋†’์€ ๋™๋„ค์— ์„œ์šธ ์•„ํŒŒํŠธ ๊ฑฐ๋ž˜๊ฐ€ ์ง‘์ค‘๋ฉ๋‹ˆ๋‹ค.
  2. ๊ต์œก ์ ‘๊ทผ์„ฑ์€ ๋ชจ๋“  ๊ฐ€๊ฒฉ๋Œ€์— ๊ฑธ์ณ ์žˆ๋‹ค: C1์€ ํ‰๊ท ๊ฐ€ 11.68์–ต์œผ๋กœ 4๊ฐœ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์Šต๋‹ˆ๋‹ค. ๋Œ€์น˜๋™(๊ณ ๊ฐ€)๊ณผ ์ค‘๊ณ„๋™ยท๋…ธ์›ยท๊ฐ•๋ถ(์ค‘์ €๊ฐ€)์ด ๊ฐ™์€ '๊ต์œก ํŠนํ™”' ๊ตฐ์ง‘์— ํ•จ๊ป˜ ์†ํ•ด ํ‰๊ท ์„ ๋Œ์–ด๋‚ด๋ฆฝ๋‹ˆ๋‹ค.
  3. ์กฐ์šฉํ•œ ์ €๋ฐ€๋„ ์ฃผ๊ฑฐ์ง€๊ฐ€ ์‹ค์ œ ๊ฐ€๊ฒฉ์€ ๊ฐ€์žฅ ๋†’๋‹ค: C2(์ €๋ฐ€๋„ ์ฃผ๊ฑฐ)๋Š” ๊ฑฐ๋ž˜๋Ÿ‰(2,025๊ฑด)์ด ๊ฐ€์žฅ ์ ์ง€๋งŒ ํ‰๊ท  13.43์–ต์œผ๋กœ ์ง‘๊ฐ’ 1์œ„์ž…๋‹ˆ๋‹ค. ์ด์ดŒ๋™์ฒ˜๋Ÿผ ๋ฐ€๋„๊ฐ€ ๋‚ฎ๊ณ  ํฌ์†Œํ•œ ์ฃผ๊ฑฐ์ง€์— ํ”„๋ฆฌ๋ฏธ์—„์ด ๋ถ™์Šต๋‹ˆ๋‹ค.
  4. ๊ฐ™์€ ๊ฐ•๋‚จ๋„ ๋‹ค๋ฅด๋‹ค: ์‹ ์‚ฌ๋™(C0, ์ƒ์—…ยทํ•™์› ๋ณตํ•ฉ)๊ณผ ๋Œ€์น˜๋™(C1, ๊ต์œก ํŠนํ™”)์€ ๊ฐ™์€ ๊ฐ•๋‚จ๊ตฌ์ง€๋งŒ ์™„์ „ํžˆ ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ์— ์†ํ•ฉ๋‹ˆ๋‹ค. ์ธํ”„๋ผ ๊ตฌ์„ฑ์ด ๋‹ค๋ฅด๋ฉด ๋™๋„ค ์„ฑ๊ฒฉ๋„ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  5. PCA๋กœ ๋ณธ ์„œ์šธ์˜ ๋‘ ์ถ•: ์„œ์šธ ๋™๋„ค์˜ ํŠน์„ฑ์€ ํฌ๊ฒŒ '๊ต์œก ์ธํ”„๋ผ ์ถ•'๊ณผ '์ƒ๊ถŒ ์ง‘์ค‘ ์ถ•' ๋‘ ๊ฐ€์ง€๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  6. Decision Tree๋กœ ๊ฒ€์ฆ: ์ •ํ™•๋„ 98.9%๋กœ, K-Means ๊ตฐ์ง‘์ด ์ž„์˜๋กœ ๋‚˜๋‰œ ๊ฒŒ ์•„๋‹ˆ๋ผ ์ธํ”„๋ผ ๋ฐ€๋„๋กœ ์„ค๋ช…๋˜๋Š” ์‹ค์ œ ํŒจํ„ด์ž„์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

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

ํ™˜๊ฒฝ ์„ค์ •

git clone <repo-url>
cd DataMining-Project
pip install -r requirements.txt

๋…ธํŠธ๋ถ ์‹คํ–‰ ์ˆœ์„œ

1. notebooks/02_preprocessing/kmeans_prep.ipynb
   โ†’ ์†Œ์ƒ๊ณต์ธยทํ•™๊ตยทํ•™์› ๋ฐ€๋„ ๊ณ„์‚ฐ, Log1p ๋ณ€ํ™˜, StandardScaler ์ •๊ทœํ™”
   โ†’ ์ถœ๋ ฅ: data/processed/df_scaled.csv, df_density.csv

2. notebooks/03_modeling/kmeans.ipynb
   โ†’ Elbow Method + Silhouette Score๋กœ ์ตœ์  K ํƒ์ƒ‰ (K=4 ์„ ํƒ)
   โ†’ K-Means ํด๋Ÿฌ์Šคํ„ฐ๋ง ์ˆ˜ํ–‰
   โ†’ ์ถœ๋ ฅ: data/processed/kmeans_result.csv
   โ†’ ์‹œ๊ฐํ™”: notebooks/result/kmeans/k_selection.png, cluster_radar_k5.png, notebooks/result/pca/cluster_pca_k5.png

3. notebooks/03_modeling/price_cluster.ipynb
   โ†’ ์•„ํŒŒํŠธ ์‹ค๊ฑฐ๋ž˜๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํด๋Ÿฌ์Šคํ„ฐ ๊ฒฐ๊ณผ ๋ณ‘ํ•ฉ ๋ฐ ํ†ต๊ณ„ ๋ถ„์„
   โ†’ ์ถœ๋ ฅ: notebooks/result/kmeans/cluster_price.png, cluster_price_box.png

4. notebooks/03_modeling/cluster_decision_tree.ipynb
   โ†’ K-Means ๊ตฐ์ง‘ ๋ ˆ์ด๋ธ”๋กœ Decision Tree ํ•™์Šต
   โ†’ ๊ตฐ์ง‘ ํŒ๋ณ„ ๊ทœ์น™ ๋„์ถœ ๋ฐ ์œ ํšจ์„ฑ ๊ฒ€์ฆ
   โ†’ ์ถœ๋ ฅ: notebooks/result/decision_tree/dt_*.png

5. notebooks/04_visualization/viz_presentation.ipynb
   โ†’ ๋ ˆ์ด๋” ์ฐจํŠธ, ์ง‘๊ฐ’ ๋น„๊ต, PCA ์‹œ๊ฐํ™”, ์š”์•ฝ ์นด๋“œ ์ƒ์„ฑ
   โ†’ ์ถœ๋ ฅ: notebooks/result/kmeans/ (pres_radar, pres_price, pres_summary)
           notebooks/result/pca/       (pres_pca, pres_pca_explained, pres_pca_table)

notebooks/01_eda/ ๋…ธํŠธ๋ถ(store, school, academy, people)์€ ๋ณ€์ˆ˜ ํƒ์ƒ‰ ์ฐธ๊ณ ์šฉ์œผ๋กœ, ์œ„ ์ˆœ์„œ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

notebooks/03_modeling/predict.ipynb์€ ์ธํ”„๋ผ ๋ฐ€๋„ โ†’ ์ง‘๊ฐ’ Ridge ํšŒ๊ท€ ๋ณด์กฐ ๋ถ„์„์ž…๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์„ค์ •

๋ชจ๋“  ๋…ธํŠธ๋ถ์€ .git ํด๋”๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ๋ฅผ ์ž๋™ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๋ณ„๋„์˜ ๊ฒฝ๋กœ ์ˆ˜์ • ์—†์ด ์–ด๋А ์œ„์น˜์—์„œ Jupyter๋ฅผ ์‹คํ–‰ํ•ด๋„ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.


ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ

DataMining-Project/
โ”œโ”€โ”€ data/
โ”‚   โ”œโ”€โ”€ raw/                          # ์›๋ณธ CSV ๋ฐ์ดํ„ฐ (์ˆ˜์ • ๊ธˆ์ง€)
โ”‚   โ”‚   โ”œโ”€โ”€ ์†Œ์ƒ๊ณต์ธ.csv
โ”‚   โ”‚   โ”œโ”€โ”€ ํ•™๊ต.csv
โ”‚   โ”‚   โ”œโ”€โ”€ ํ•™์›.csv
โ”‚   โ”‚   โ”œโ”€โ”€ ํ† ์ง€ ๋ฉด์ .csv
โ”‚   โ”‚   โ”œโ”€โ”€ ์ธ๊ตฌ๋ฐ€๋„.csv
โ”‚   โ”‚   โ””โ”€โ”€ ์„œ์šธ์‹œ_์‹ค๊ฑฐ๋ž˜๊ฐ€.csv
โ”‚   โ””โ”€โ”€ processed/                    # ์ „์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๋ฌผ (CSV๋งŒ ์œ ์ง€)
โ”‚       โ”œโ”€โ”€ df_scaled.csv             # ์ •๊ทœํ™”๋œ ํ”ผ์ฒ˜ ๋ฐ์ดํ„ฐ
โ”‚       โ”œโ”€โ”€ df_density.csv            # ๋ฒ•์ •๋™๋ณ„ ๋ฐ€๋„ ๋ฐ์ดํ„ฐ
โ”‚       โ””โ”€โ”€ kmeans_result.csv         # ํด๋Ÿฌ์Šคํ„ฐ๋ง ๊ฒฐ๊ณผ
โ”œโ”€โ”€ notebooks/
โ”‚   โ”œโ”€โ”€ 01_eda/                       # ๋ณ€์ˆ˜๋ณ„ ํƒ์ƒ‰์  ๋ถ„์„ (์ฐธ๊ณ ์šฉ)
โ”‚   โ”‚   โ”œโ”€โ”€ store.ipynb
โ”‚   โ”‚   โ”œโ”€โ”€ school.ipynb
โ”‚   โ”‚   โ”œโ”€โ”€ academy.ipynb
โ”‚   โ”‚   โ””โ”€โ”€ people.ipynb
โ”‚   โ”œโ”€โ”€ 02_preprocessing/             # ์ „์ฒ˜๋ฆฌ ๋ฐ ์Šค์ผ€์ผ๋ง
โ”‚   โ”‚   โ””โ”€โ”€ kmeans_prep.ipynb
โ”‚   โ”œโ”€โ”€ 03_modeling/                  # ๋ชจ๋ธ๋ง
โ”‚   โ”‚   โ”œโ”€โ”€ kmeans.ipynb              # K-Means ํด๋Ÿฌ์Šคํ„ฐ๋ง
โ”‚   โ”‚   โ”œโ”€โ”€ price_cluster.ipynb       # ์ง‘๊ฐ’-๊ตฐ์ง‘ ๋น„๊ต
โ”‚   โ”‚   โ”œโ”€โ”€ cluster_decision_tree.ipynb  # Decision Tree ๋ถ„๋ฅ˜
โ”‚   โ”‚   โ””โ”€โ”€ predict.ipynb             # Ridge ํšŒ๊ท€ (์ง‘๊ฐ’ ์˜ˆ์ธก ๋ณด์กฐ)
โ”‚   โ”œโ”€โ”€ 04_visualization/             # ๋ฐœํ‘œ์šฉ ์‹œ๊ฐํ™”
โ”‚   โ”‚   โ””โ”€โ”€ viz_presentation.ipynb
โ”‚   โ”œโ”€โ”€ common/                       # ๊ณตํ†ต ์œ ํ‹ธ๋ฆฌํ‹ฐ
โ”‚   โ””โ”€โ”€ result/                       # ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณ„ ์‹œ๊ฐํ™” ๊ฒฐ๊ณผ
โ”‚       โ”œโ”€โ”€ kmeans/                   # K-Means ๊ด€๋ จ ์ด๋ฏธ์ง€
โ”‚       โ”‚   โ”œโ”€โ”€ k_selection.png       # Elbow + Silhouette ๊ทธ๋ž˜ํ”„
โ”‚       โ”‚   โ”œโ”€โ”€ cluster_radar_k5.png  # ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ๋ ˆ์ด๋” ์ฐจํŠธ (์ค‘๊ฐ„)
โ”‚       โ”‚   โ”œโ”€โ”€ cluster_price.png     # ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ํ‰๊ท ยท์ค‘์•™๊ฐ’ ์ง‘๊ฐ’
โ”‚       โ”‚   โ”œโ”€โ”€ cluster_price_box.png # ํด๋Ÿฌ์Šคํ„ฐ๋ณ„ ์ง‘๊ฐ’ ๋ฐ•์Šคํ”Œ๋กฏ
โ”‚       โ”‚   โ”œโ”€โ”€ pres_radar.png        # ๋ฐœํ‘œ์šฉ ๋ ˆ์ด๋” ์ฐจํŠธ
โ”‚       โ”‚   โ”œโ”€โ”€ pres_price.png        # ๋ฐœํ‘œ์šฉ ์ง‘๊ฐ’ ๋น„๊ต
โ”‚       โ”‚   โ””โ”€โ”€ pres_summary.png      # ํด๋Ÿฌ์Šคํ„ฐ ์š”์•ฝ ์นด๋“œ
โ”‚       โ”œโ”€โ”€ pca/                      # PCA ๊ด€๋ จ ์ด๋ฏธ์ง€
โ”‚       โ”‚   โ”œโ”€โ”€ cluster_pca_k5.png    # K-Means PCA ์‚ฐ์ ๋„ (์ค‘๊ฐ„)
โ”‚       โ”‚   โ”œโ”€โ”€ pres_pca.png          # ๋ฐœํ‘œ์šฉ PCA ์‚ฐ์ ๋„
โ”‚       โ”‚   โ”œโ”€โ”€ pres_pca_explained.png # PCA ํ•ด์„ ์Šฌ๋ผ์ด๋“œ
โ”‚       โ”‚   โ””โ”€โ”€ pres_pca_table.png    # PCA ๋กœ๋”ฉ ํ…Œ์ด๋ธ”
โ”‚       โ””โ”€โ”€ decision_tree/            # Decision Tree ๊ด€๋ จ ์ด๋ฏธ์ง€
โ”‚           โ”œโ”€โ”€ dt_depth.png          # ํŠธ๋ฆฌ ๊นŠ์ด ํƒ์ƒ‰
โ”‚           โ”œโ”€โ”€ dt_tree.png           # Decision Tree ์‹œ๊ฐํ™”
โ”‚           โ”œโ”€โ”€ dt_confusion.png      # ํ˜ผ๋™ ํ–‰๋ ฌ
โ”‚           โ””โ”€โ”€ dt_importance.png     # Feature Importance
โ”œโ”€โ”€ requirements.txt
โ””โ”€โ”€ README.md

์‚ฌ์šฉ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์šฉ๋„
pandas ๋ฐ์ดํ„ฐ ๋กœ๋“œ ๋ฐ ์ฒ˜๋ฆฌ
numpy ์ˆ˜์น˜ ์—ฐ์‚ฐ, Log1p ๋ณ€ํ™˜
scikit-learn KMeans, PCA, DecisionTreeClassifier, StandardScaler, Ridge, silhouette_score
matplotlib ๋ ˆ์ด๋” ์ฐจํŠธ, ์‚ฐ์ ๋„, ํŠธ๋ฆฌ ์‹œ๊ฐํ™” ๋“ฑ

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages