File size: 2,596 Bytes
7bcd136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae730c0
7bcd136
85126a4
7bcd136
 
 
ae730c0
7bcd136
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae730c0
7bcd136
d76788d
7bcd136
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
---
license: mit
language: ko
tags:
- regression
- pytorch
- xgboost
- sports-car
---

# ์Šคํฌ์ธ ์นด ๊ฐ€๊ฒฉ ๋ฐ ์„ฑ๋Šฅ ์˜ˆ์ธก ๋ชจ๋ธ

์ด ๋ชจ๋ธ์€ ์Šคํฌ์ธ ์นด์˜ ๋‹ค์–‘ํ•œ ์ŠคํŽ™(์ œ์กฐ์‚ฌ, ์—ฐ์‹, ์—”์ง„ ํฌ๊ธฐ ๋“ฑ)์„ ๊ธฐ๋ฐ˜์œผ๋กœ **๊ฐ€๊ฒฉ, ๋งˆ๋ ฅ, ์ œ๋กœ๋ฐฑ**์„ ์˜ˆ์ธกํ•˜๋Š” ๋”ฅ๋Ÿฌ๋‹ ๋ฐ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

## ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

๋‹ค์–‘ํ•œ ์Šคํฌ์ธ ์นด ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์ตœ์ ์˜ ์˜ˆ์ธก ๋ชจ๋ธ์„ ์ฐพ๊ธฐ ์œ„ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์ณค๋‹ค.
1.  ๋ฐ์ดํ„ฐ ์ „์ฒ˜๋ฆฌ ๋ฐ ํ”ผ์ฒ˜ ์—”์ง€๋‹ˆ์–ด๋ง (GroupBy ํ™œ์šฉ)
2.  **๋”ฅ๋Ÿฌ๋‹(TensorFlow/Keras)** ๋ฐ **๋จธ์‹ ๋Ÿฌ๋‹(XGBoost)** ๋ชจ๋ธ ๊ตฌ์ถ•
3.  ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์„ ํ†ตํ•œ ๋ชจ๋ธ ์ตœ์ ํ™”
4.  ๋‘ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ(MSE) ๋น„๊ต ๋ฐ ์ตœ์ข… ๋ชจ๋ธ ์„ ์ •

## ๋ชจ๋ธ (Models)

์ด ํ”„๋กœ์ ํŠธ๋Š” ๋‘ ๊ฐ€์ง€ ์ตœ์ ํ™”๋œ ๋ชจ๋ธ์„ ์ œ๊ณตํ•œ๋‹ค.

| ๋ชจ๋ธ ์ข…๋ฅ˜ | ํŒŒ์ผ๋ช… | ์ฃผ์š” ํŠน์ง• |
| :--- | :--- | :--- |
| **๋”ฅ๋Ÿฌ๋‹ (Keras)** | `best_model.keras` | ReLU ํ™œ์„ฑํ™” ํ•จ์ˆ˜์™€ Dropout์„ ์‚ฌ์šฉํ•œ 3-Layer ์‹ ๊ฒฝ๋ง |
| **๋จธ์‹ ๋Ÿฌ๋‹ (XGBoost)**| `xgboost-model.skops`| ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹์œผ๋กœ ์ตœ์ ํ™”๋œ Gradient Boosting ๋ชจ๋ธ |

### ๋ชจ๋ธ ๊ตฌ์กฐ (๋”ฅ๋Ÿฌ๋‹)
![๋ชจ๋ธ ๊ตฌ์กฐ](model.png)

## ๋ฐ์ดํ„ฐ์…‹ (Dataset)

- **๋ฐ์ดํ„ฐ ์ถœ์ฒ˜**: [Sports Car Price Dataset on Kaggle](https://www.kaggle.com/datasets/rkiattisak/sports-car-prices-dataset/data) (์˜ˆ์‹œ ๋งํฌ)
- **ํƒ€๊ฒŸ ๋ณ€์ˆ˜ (์˜ˆ์ธก ๋Œ€์ƒ)**: `๊ฐ€๊ฒฉ(์›ํ™”)`, `๋งˆ๋ ฅ`, `์ œ๋กœ๋ฐฑ (0-100km)`
- **์ฃผ์š” ํ”ผ์ฒ˜**: `์ œ์กฐ์‚ฌ`, `๋ชจ๋ธ`, `์—ฐ์‹`, `์—”์ง„ ํฌ๊ธฐ`, `ํ† ํฌ` ๋“ฑ

## ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

์ด ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋ ค๋ฉด `tensorflow`, `xgboost`, `scikit-learn`, `skops` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

**XGBoost ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋ฐ ์˜ˆ์ธก**
```python
import skops.io as sio

# ์ €์žฅ์†Œ์—์„œ ๋ชจ๋ธ์„ ์ง์ ‘ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค (๋˜๋Š” ๋‹ค์šด๋กœ๋“œ ํ›„)
# loaded_model = sio.load("hf://your-hf-username/your-repo-name/xgboost-model.skops")
loaded_model = sio.load("xgboost-model.skops")

# ์˜ˆ์ธกํ•  ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•œ๋‹ค (์ „์ฒ˜๋ฆฌ ๋ฐ ์Šค์ผ€์ผ๋ง ํ•„์š”)
# preprocessed_data = ...
# prediction = loaded_model.predict(preprocessed_data)
# print(prediction)
```

## ์ตœ์ข… ์„ฑ๋Šฅ

ํ•˜์ดํผํŒŒ๋ผ๋ฏธํ„ฐ ํŠœ๋‹ ํ›„, ๋‘ ๋ชจ๋ธ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•œ ํ‰๊ท  ์ œ๊ณฑ ์˜ค์ฐจ(MSE)๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

- **(ํŠœ๋‹) ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ MSE**: `0.010617`
- **(ํŠœ๋‹) XGBoost ๋ชจ๋ธ MSE**: `0.010617`

๋‘ ๋ชจ๋ธ์ด ๊ฑฐ์˜ ๋™์ผํ•œ ์ตœ๊ณ  ์„ฑ๋Šฅ์„ ๊ธฐ๋กํ–ˆ์œผ๋ฉฐ, ์ด๋Š” ๋ฐ์ดํ„ฐ์˜ ํŠน์„ฑ์„ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์™„๋ฒฝํ•˜๊ฒŒ ํ•™์Šตํ–ˆ์Œ์„ ์‹œ์‚ฌํ•œ๋‹ค.