Spaces:
Sleeping
Sleeping
Choi jun hyeok
commited on
Commit
ยท
f1344c7
1
Parent(s):
c130972
update settings
Browse files- .env +1 -0
- how_it_works.md +133 -0
- visualization_slides.ipynb +0 -0
.env
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
GEMINI_API_KEY = AIzaSyDUK2u7PljRBqzj9lhM6Ydxm4-SdxCU-vY
|
how_it_works.md
ADDED
|
@@ -0,0 +1,133 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ์ ๋ฌธ๊ณผ๋ฐฉ์ก ๊ธฐ์ฌ ์ฑ๋ฅ ์์ธก ๋ชจ๋ธ์ ํ์ต ๋ฐ ์ถ๋ก ๊ณผ์
|
| 2 |
+
|
| 3 |
+
์ด ๋ฌธ์๋ `train_and_save_models.py` ์คํฌ๋ฆฝํธ๊ฐ ์ด๋ป๊ฒ ๊ธฐ์ฌ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์กฐํ์ ์์ธก ๋ฐ ์ฃผ์ ์ฒญ์ค ์ฐ๋ น๋ ์์ธก ๋ชจ๋ธ์ ํ์ต์ํค๊ณ , ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ถ๋ก ํ๋์ง์ ๋ํ ์์ธํ ์ค๋ช
์
๋๋ค. ๋ชจ๋ ๊ณผ์ ์ ํ๊ตญ์ด๋ก ์ค๋ช
ํ๋ฉฐ, ์ฝ๋์ ์ฃผ์ ๊ตฌ์ฑ ์์์ ๋จ๊ณ๋ณ ํ๋ฆ์ ๋ค๋ฃน๋๋ค.
|
| 4 |
+
|
| 5 |
+
## 1. ๊ฐ์
|
| 6 |
+
|
| 7 |
+
์ด ์ฝ๋๋ "์ ๋ฌธ๊ณผ๋ฐฉ์ก" ํ๋ก์ ํธ์ ์ผํ์ผ๋ก, ๊ธฐ์ฌ์ ์ ๋ชฉ๊ณผ ๋ด์ฉ, ์นดํ
๊ณ ๋ฆฌ ๋ฑ์ ์ ๋ณด๋ฅผ ํ์ฉํ์ฌ ๋ ๊ฐ์ง ์ฃผ์ ์์ธก์ ์ํํฉ๋๋ค:
|
| 8 |
+
- **์กฐํ์ ์์ธก**: ๊ธฐ์ฌ์ ์์ ์กฐํ์๋ฅผ ์์ธกํ๋ ํ๊ท ๋ชจ๋ธ.
|
| 9 |
+
- **์ฃผ์ ์ฒญ์ค ์ฐ๋ น๋ ์์ธก**: ๊ธฐ์ฌ๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฝ๋ ์ฐ๋ น๋๋ฅผ ์์ธกํ๋ ๋ถ๋ฅ ๋ชจ๋ธ.
|
| 10 |
+
|
| 11 |
+
๋ชจ๋ธ์ XGBoost (Extreme Gradient Boosting)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ํ
์คํธ ๋ฐ์ดํฐ๋ฅผ TF-IDF (Term Frequency-Inverse Document Frequency)๋ก ๋ณํํ๊ณ , ์นดํ
๊ณ ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์-ํซ ์ธ์ฝ๋ฉํ์ฌ ํน์ง์ผ๋ก ์ฌ์ฉํฉ๋๋ค. ํ์ต ๊ณผ์ ์์๋ Optuna๋ฅผ ์ฌ์ฉํ์ฌ ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋์ ์ํํ๋ฉฐ, ๊ณผ์ ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ๊ธฐ ์ข
๋ฃ(Early Stopping)๋ฅผ ์ ์ฉํฉ๋๋ค.
|
| 12 |
+
|
| 13 |
+
์ถ๋ก ์์๋ ํ์ต๋ ๋ชจ๋ธ๊ณผ ํน์ง ๋ณํ๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ธฐ์ฌ ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์ ์์ธก์ ์ํํฉ๋๋ค. ๋ํ, ์ ์ฌ ๊ธฐ์ฌ ํ์ ๊ธฐ๋ฅ๋ ํฌํจ๋์ด ์์ต๋๋ค.
|
| 14 |
+
|
| 15 |
+
## 2. ๋ฐ์ดํฐ ์ค๋น
|
| 16 |
+
|
| 17 |
+
ํ์ต์ ์์ํ๊ธฐ ์ ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ์ ์ฒ๋ฆฌํฉ๋๋ค.
|
| 18 |
+
|
| 19 |
+
### 2.1 ๋ฐ์ดํฐ ๋ก๋ฉ
|
| 20 |
+
- **ํ์ผ ๊ฒฝ๋ก**: `./data_csv/` ๋๋ ํ ๋ฆฌ์์ ๋ค์ CSV ํ์ผ์ ๋ก๋ํฉ๋๋ค.
|
| 21 |
+
- `contents.csv`: ๊ธฐ์ฌ์ ์ ๋ชฉ, ๋ด์ฉ, ์นดํ
๊ณ ๋ฆฌ, ๊ธฐ์ฌ ID ๋ฑ์ ๊ธฐ๋ณธ ์ ๋ณด.
|
| 22 |
+
- `article_metrics_monthly.csv`: ๊ธฐ์ฌ๋ณ ์๋ณ ์กฐํ์, ๋๊ธ ์, ์ข์์ ์ ๋ฑ์ ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ.
|
| 23 |
+
- `demographics_merged.csv`: ๊ธฐ์ฌ๋ณ ์ฐ๋ น๋๋ณ ์กฐํ์ ๋ฐ์ดํฐ.
|
| 24 |
+
- **ํ์ธ**: ํ์ผ์ด ์กด์ฌํ์ง ์์ผ๋ฉด ์ค๋ฅ๋ฅผ ๋ฐ์์ํค๊ณ ์คํ์ ์ค๋จํฉ๋๋ค.
|
| 25 |
+
|
| 26 |
+
### 2.2 ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
|
| 27 |
+
- **๋ฉํธ๋ฆญ ์ง๊ณ**: `article_metrics_monthly.csv`์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ์ฌ ID๋ณ๋ก ๊ทธ๋ฃนํํ์ฌ ์ด ์กฐํ์(`views_total`), ์ด ๋๊ธ ์(`comments_total`), ์ด ์ข์์ ์(`likes_total`)๋ฅผ ๊ณ์ฐํฉ๋๋ค.
|
| 28 |
+
- **์ฃผ์ ์ฒญ์ค ์๋ณ**: `demographics_merged.csv`์์ "์ ์ฒด" ์ฐ๋ น๋๋ฅผ ์ ์ธํ๊ณ , ๊ฐ ๊ธฐ์ฌ๋ณ๋ก ์กฐํ์๊ฐ ๊ฐ์ฅ ๋์ ์ฐ๋ น๋๋ฅผ `primary_age_group`์ผ๋ก ์ ์ ํฉ๋๋ค. ์ด๋ ๋ถ๋ฅ ๋ชจ๋ธ์ ํ๊ฒ์ด ๋ฉ๋๋ค.
|
| 29 |
+
- **๋ฐ์ดํฐ ๋ณํฉ**: `contents.csv`๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฉํธ๋ฆญ ๋ฐ์ดํฐ์ ์ฃผ์ ์ฒญ์ค ๋ฐ์ดํฐ๋ฅผ ์ผ์ชฝ ์กฐ์ธ(Left Join)ํ์ฌ ๋ง์คํฐ ๋ฐ์ดํฐํ๋ ์์ ์์ฑํฉ๋๋ค. ๋๋ฝ๋ ๊ฐ์ 0์ผ๋ก ์ฑ์๋๋ค.
|
| 30 |
+
|
| 31 |
+
์ด ๋จ๊ณ์์ ์์ฑ๋ `df_master` ๋ฐ์ดํฐํ๋ ์์ ๊ธฐ์ฌ๋ณ๋ก ์ ๋ชฉ, ๋ด์ฉ, ์นดํ
๊ณ ๋ฆฌ, ์ด ์กฐํ์, ์ด ๋๊ธ ์, ์ด ์ข์์ ์, ์ฃผ์ ์ฐ๋ น๋๋ฅผ ํฌํจํฉ๋๋ค.
|
| 32 |
+
|
| 33 |
+
## 3. ํน์ง ๊ณตํ (Feature Engineering)
|
| 34 |
+
|
| 35 |
+
๊ธฐ์ฌ ๋ฐ์ดํฐ๋ฅผ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ด ์ดํดํ ์ ์๋ ์ซ์ ํน์ง์ผ๋ก ๋ณํํฉ๋๋ค.
|
| 36 |
+
|
| 37 |
+
### 3.1 ํ
์คํธ ํน์ง ์ถ์ถ
|
| 38 |
+
- **ํ ํฌ๋์ด์ **: Konlpy์ Okt๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ๋ฅผ ํํ์ ๋ถ์ํฉ๋๋ค. ๋ช
์ฌ(Noun)์ ๋์ฌ(Verb)๋ง ์ถ์ถํ๋ฉฐ, ์ด๊ฐ ์ถ์ถ(Stemming)์ ์ ์ฉํฉ๋๋ค.
|
| 39 |
+
- **TF-IDF ๋ณํ**: ์ ๋ชฉ๊ณผ ๋ด์ฉ์ ๊ฒฐํฉํ ํ
์คํธ๋ฅผ TfidfVectorizer๋ก ๋ณํํฉ๋๋ค.
|
| 40 |
+
- ์ต๋ ํน์ง ์: 5000๊ฐ.
|
| 41 |
+
- ํ ํฌ๋์ด์ : Okt ๊ธฐ๋ฐ ์ฌ์ฉ์ ์ ์ ํจ์.
|
| 42 |
+
- ๊ฒฐ๊ณผ: ํฌ์ ํ๋ ฌ `X_text` (ํ
์คํธ ํน์ง).
|
| 43 |
+
- **๋ณ๋ ฌ ์ฒ๋ฆฌ**: ์๋ ์ฝ๋์ ๋ณ๋ ฌ ํ ํฌ๋์ด์ ํด๋์ค๊ฐ ์ ์๋์ด ์์ง๋ง, ์ค์ ๋ก๋ ๋จ์ผ ํ๋ก์ธ์ค ํ ํฌ๋์ด์ ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋์ฉ๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๋ณ๋ ฌํ๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
|
| 44 |
+
|
| 45 |
+
### 3.2 ์นดํ
๊ณ ๋ฆฌ ํน์ง ์ถ์ถ
|
| 46 |
+
- **์-ํซ ์ธ์ฝ๋ฉ**: `category` ์ด์ OneHotEncoder๋ก ๋ณํํฉ๋๋ค.
|
| 47 |
+
- ์ ์ ์๋ ์นดํ
๊ณ ๋ฆฌ๋ ๋ฌด์ํฉ๋๋ค.
|
| 48 |
+
- ๊ฒฐ๊ณผ: ํฌ์ ํ๋ ฌ `X_cat` (์นดํ
๊ณ ๋ฆฌ ํน์ง).
|
| 49 |
+
|
| 50 |
+
### 3.3 ํน์ง ๊ฒฐํฉ
|
| 51 |
+
- ํ
์คํธ ํน์ง๊ณผ ์นดํ
๊ณ ๋ฆฌ ํน์ง์ ์ํ์ผ๋ก ๊ฒฐํฉํ์ฌ `X_combined` ํ๋ ฌ์ ์์ฑํฉ๋๋ค. ์ด๋ ์ต์ข
์
๋ ฅ ํน์ง ํ๋ ฌ์
๋๋ค.
|
| 52 |
+
|
| 53 |
+
## 4. ํ๊ฒ ์ค๋น (Target Preparation)
|
| 54 |
+
|
| 55 |
+
์์ธกํ ํ๊ฒ ๋ณ์๋ฅผ ์ค๋นํ๊ณ , ์ ํจํ ์ํ๋ง ํํฐ๋งํฉ๋๋ค.
|
| 56 |
+
|
| 57 |
+
### 4.1 ์กฐํ์ ํ๊ฒ (Regression Target)
|
| 58 |
+
- **๋ก๊ทธ ๋ณํ**: ์กฐํ์(`views_total`)์ ๋ถํฌ๊ฐ ์น์ฐ์ณ์ ธ ์์ผ๋ฏ๋ก, `np.log1p`๋ฅผ ์ ์ฉํ์ฌ ๋ก๊ทธ ๋ณํํฉ๋๋ค. ์ด๋ ๋ชจ๋ธ์ ์์ธก ์ฑ๋ฅ์ ํฅ์์ํค๋ฉฐ, ๋์ค์ `np.expm1`๋ก ์๋ ์ค์ผ์ผ๋ก ๋ณต์ํฉ๋๋ค.
|
| 59 |
+
- 0์ธ ๊ฐ์ `log1p`๋ก ์์ ํ๊ฒ ์ฒ๋ฆฌ๋ฉ๋๋ค.
|
| 60 |
+
|
| 61 |
+
### 4.2 ์ฐ๋ น๋ ํ๊ฒ (Classification Target)
|
| 62 |
+
- `primary_age_group`์ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ , LabelEncoder๋ก ์ ์ ๋ ์ด๋ธ๋ก ์ธ์ฝ๋ฉํฉ๋๋ค.
|
| 63 |
+
- ์ ํจํ ์ํ ํํฐ๋ง: ์ฐ๋ น๋๊ฐ ๋๋ฝ๋ ์ํ์ ์ ์ธํฉ๋๋ค.
|
| 64 |
+
|
| 65 |
+
### 4.3 ์ต์ข
ํํฐ๋ง
|
| 66 |
+
- ์ ํจํ ์ํ์ ๋ํด์๋ง `X_combined`, `X_text`, ์กฐํ์ ํ๊ฒ, ์ฐ๋ น๋ ํ๊ฒ์ ์ ์งํฉ๋๋ค.
|
| 67 |
+
- ๊ธฐ์ฌ ๋งคํ: ์ ํจํ ๊ธฐ์ฌ ID์ ์ ๋ชฉ์ ์ ์ฅํ์ฌ ๋์ค์ ์ ์ฌ ๊ธฐ์ฌ ํ์์ ์ฌ์ฉํฉ๋๋ค.
|
| 68 |
+
|
| 69 |
+
## 5. ๋ชจ๋ธ ํ์ต (Model Training)
|
| 70 |
+
|
| 71 |
+
XGBoost ๋ชจ๋ธ์ ํ์ต์ํค๊ณ , Optuna๋ก ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ํ๋ํฉ๋๋ค.
|
| 72 |
+
|
| 73 |
+
### 5.1 ๋ฐ์ดํฐ ๋ถํ
|
| 74 |
+
- ๋ฐ์ดํฐ๋ฅผ ํ๋ จ ์ธํธ์ ๊ฒ์ฆ ์ธํธ๋ก ๋ถํ ํฉ๋๋ค (๊ธฐ๋ณธ: 80% ํ๋ จ, 20% ๊ฒ์ฆ).
|
| 75 |
+
- ์ธตํ ์ํ๋ง(Stratified Sampling)์ ์ ์ฉํ์ฌ ์ฐ๋ น๋ ๋ถํฌ๋ฅผ ์ ์งํฉ๋๋ค.
|
| 76 |
+
|
| 77 |
+
### 5.2 ํ์ดํผํ๋ผ๋ฏธํฐ ํ๋
|
| 78 |
+
- **Optuna ์ฌ์ฉ**: ์๋ํ๋ ํ์ดํผํ๋ผ๋ฏธํฐ ์ต์ ํ๋ฅผ ์ํํฉ๋๋ค.
|
| 79 |
+
- ํ๊ท ๋ชจ๋ธ(XGBRegressor): n_estimators, learning_rate, max_depth, subsample, colsample_bytree ๋ฑ์ ํ๋. ๋ชฉํ: RMSE ์ต์ํ.
|
| 80 |
+
- ๋ถ๋ฅ ๋ชจ๋ธ(XGBClassifier): ์ ์ฌํ ํ๋ผ๋ฏธํฐ๋ฅผ ํ๋. ๋ชฉํ: ๋ก๊ทธ ์์ค ์ต์ํ.
|
| 81 |
+
- **ํ๋ฃจ๋**: Optuna์ MedianPruner์ XGBoostPruningCallback์ ์ฌ์ฉํ์ฌ ๋นํจ์จ์ ์ธ ์๋๋ฅผ ์กฐ๊ธฐ ์ข
๋ฃํฉ๋๋ค.
|
| 82 |
+
- ํ๋ ํ์: ๊ฐ ๋ชจ๋ธ๋น 50ํ (์๊ฐ ์ ํ: 600์ด).
|
| 83 |
+
|
| 84 |
+
### 5.3 ์ต์ข
๋ชจ๋ธ ํ์ต
|
| 85 |
+
- ์ต์ ํ์ดํผํ๋ผ๋ฏธํฐ๋ก ์ ์ฒด ๋ฐ์ดํฐ์
์ ๋ํด ๋ชจ๋ธ์ ํ์ตํฉ๋๋ค.
|
| 86 |
+
- **ํ๊ท ๋ชจ๋ธ**: ์กฐํ์ ์์ธก. ์กฐ๊ธฐ ์ข
๋ฃ๋ฅผ ์ ์ฉํ์ฌ ๊ณผ์ ํฉ ๋ฐฉ์ง.
|
| 87 |
+
- **๋ถ๋ฅ ๋ชจ๋ธ**: ์ฐ๋ น๋ ์์ธก. ๋ค์ค ํด๋์ค ์ํํธ๋งฅ์ค ์์ค ์ฌ์ฉ.
|
| 88 |
+
- **ํ๊ฐ**: ๊ฒ์ฆ ์ธํธ์์ MAE (Mean Absolute Error)์ ์ ํ๋(Accuracy)๋ฅผ ๊ณ์ฐํ์ฌ ์ฑ๋ฅ์ ๋ก๊ทธ์ ๊ธฐ๋กํฉ๋๋ค.
|
| 89 |
+
|
| 90 |
+
### 5.4 ์ํฐํฉํธ ์ ์ฅ
|
| 91 |
+
- ํ์ต๋ ๋ชจ๋ธ, ๋ฒกํฐ๋ผ์ด์ , ์ธ์ฝ๋ ๋ฑ์ Pickle ํ์ผ๋ก ์ ์ฅํฉ๋๋ค.
|
| 92 |
+
- tfidf_vectorizer.pkl: TF-IDF ๋ฒกํฐ๋ผ์ด์ .
|
| 93 |
+
- onehot_encoder.pkl: ์-ํซ ์ธ์ฝ๋.
|
| 94 |
+
- label_encoder.pkl: ๋ ์ด๋ธ ์ธ์ฝ๋.
|
| 95 |
+
- view_prediction_model.pkl: ์กฐํ์ ์์ธก ๋ชจ๋ธ.
|
| 96 |
+
- age_prediction_model.pkl: ์ฐ๋ น๋ ์์ธก ๋ชจ๋ธ.
|
| 97 |
+
- text_features_matrix.pkl: ํ
์คํธ ํน์ง ํ๋ ฌ (์ ์ฌ ๊ธฐ์ฌ ํ์์ฉ).
|
| 98 |
+
- article_mapping.pkl: ๊ธฐ์ฌ ID์ ์ ๋ชฉ ๋งคํ.
|
| 99 |
+
|
| 100 |
+
## 6. ์ถ๋ก ๊ณผ์ (Inference Process)
|
| 101 |
+
|
| 102 |
+
ํ์ต๋ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์๋ก์ด ๊ธฐ์ฌ์ ๋ํด ์์ธก์ ์ํํฉ๋๋ค. (์ด ์ฝ๋๋ ํ์ต ํ์ดํ๋ผ์ธ๋ง ํฌํจํ๋ฏ๋ก, ์ถ๋ก ์ ๋ณ๋ ์คํฌ๋ฆฝํธ์์ ์ํํด์ผ ํฉ๋๋ค.)
|
| 103 |
+
|
| 104 |
+
### 6.1 ์
๋ ฅ ์ค๋น
|
| 105 |
+
- ์๋ก์ด ๊ธฐ์ฌ์ ์ ๋ชฉ, ๋ด์ฉ, ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์
๋ ฅ๋ฐ์ต๋๋ค.
|
| 106 |
+
- ํ
์คํธ: TF-IDF ๋ฒกํฐ๋ผ์ด์ ๋ก ๋ณํ.
|
| 107 |
+
- ์นดํ
๊ณ ๋ฆฌ: ์-ํซ ์ธ์ฝ๋๋ก ๋ณํ.
|
| 108 |
+
- ํน์ง ๊ฒฐํฉ: ํ
์คํธ์ ์นดํ
๊ณ ๋ฆฌ ํน์ง์ ๊ฒฐํฉ.
|
| 109 |
+
|
| 110 |
+
### 6.2 ์์ธก ์ํ
|
| 111 |
+
- **์กฐํ์ ์์ธก**: ํ๊ท ๋ชจ๋ธ๋ก ๋ก๊ทธ ๋ณํ๋ ๊ฐ์ ์์ธกํ ํ, `np.expm1`๋ก ์๋ ์กฐํ์๋ก ๋ณต์.
|
| 112 |
+
- **์ฐ๋ น๋ ์์ธก**: ๋ถ๋ฅ ๋ชจ๋ธ๋ก ํ๋ฅ ์ ์์ธกํ๊ณ , ๋ ์ด๋ธ ์ธ์ฝ๋๋ก ์๋ ์ฐ๋ น๋๋ก ๋์ฝ๋ฉ.
|
| 113 |
+
|
| 114 |
+
### 6.3 ์ถ๋ ฅ
|
| 115 |
+
- ์์ธก๋ ์กฐํ์์ ์ฃผ์ ์ฐ๋ น๋๋ฅผ ๋ฐํํฉ๋๋ค.
|
| 116 |
+
|
| 117 |
+
## 7. ์ถ๊ฐ ๊ธฐ๋ฅ: ์ ์ฌ ๊ธฐ์ฌ ํ์ (Similar Article Search)
|
| 118 |
+
|
| 119 |
+
์ฝ๋์ ๋ง์ง๋ง ๋ถ๋ถ์์ ์ ์ฌ ๊ธฐ์ฌ๋ฅผ ์ฐพ๋ ๊ธฐ๋ฅ์ ์์ฐํฉ๋๋ค.
|
| 120 |
+
|
| 121 |
+
- **๋ฐฉ๋ฒ**: ์ฝ์ฌ์ธ ์ ์ฌ๋(Cosine Similarity)๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ํน์ง ๊ธฐ๋ฐ์ผ๋ก ์ ์ฌํ ๊ธฐ์ฌ๋ฅผ ์ฐพ์ต๋๋ค.
|
| 122 |
+
- **์
๋ ฅ**: ๊ธฐ์ฌ ID.
|
| 123 |
+
- **์ถ๋ ฅ**: ์์ N๊ฐ ์ ์ฌ ๊ธฐ์ฌ (๊ธฐ๋ณธ: 5๊ฐ), ์ ์ฌ๋ ์ ์ ํฌํจ.
|
| 124 |
+
- **์ฉ๋**: ์ฝํ
์ธ ๊ธฐ๋ฐ ์ถ์ฒ์ด๋ ๋ถ์์ ํ์ฉ.
|
| 125 |
+
|
| 126 |
+
## 8. ์คํ ๋ฐ ์ฃผ์์ฌํญ
|
| 127 |
+
|
| 128 |
+
- **์คํ**: `python train_and_save_models.py`๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์คํํฉ๋๋ค.
|
| 129 |
+
- **์ข
์์ฑ**: Optuna, XGBoost, Konlpy, Scikit-learn ๋ฑ์ด ํ์ํฉ๋๋ค. `requirements.txt`๋ฅผ ์ฐธ๊ณ ํ์ธ์.
|
| 130 |
+
- **์ฑ๋ฅ**: ๋์ฉ๋ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๋ณ๋ ฌ ํ ํฌ๋์ด์ง์ ๊ณ ๋ คํ์ธ์.
|
| 131 |
+
- **๊ฐ์ ์ **: ๋ก๊ทธ ๋ณํ, ํ๋, ์กฐ๊ธฐ ์ข
๋ฃ ๋ฑ์ด ๋ชจ๋ธ ์ ํ๋๋ฅผ ํฅ์์ํต๋๋ค.
|
| 132 |
+
|
| 133 |
+
์ด ์ค๋ช
์ ์ฝ๋์ ๋ชจ๋ ์ฃผ์ ๋จ๊ณ๋ฅผ ์ปค๋ฒํฉ๋๋ค. ์ถ๊ฐ ์ง๋ฌธ์ด ์์ผ๋ฉด ์ธ์ ๋ ์ง ๋ฌผ์ด๋ณด์ธ์!
|
visualization_slides.ipynb
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|