๐ ๋ฐ์ดํฐ & ํผ์ฒ ์์ง๋์ด๋ง
1. ๋ฐ์ดํฐ ์ข
๋ฅ
| ๊ตฌ๋ถ | ์ค๋ช
| ์์ |
|---|
| ์ ํ(Structured) | ํ์ฒ๋ผ ์นธ์ด ๋ฑ๋ฑ ๋ง๋ ๊ฒ | ์์
, DB ํ
์ด๋ธ |
| ๋ฐ์ ํ(Semi-structured) | ๊ตฌ์กฐ๋ ์์ง๋ง ํ๋ ์๋ | JSON, XML, ๋ก๊ทธ |
| ๋น์ ํ(Unstructured) | ์๋ฌด ๊ตฌ์กฐ ์๋ ๊ฒ | ์ด๋ฏธ์ง, ํ
์คํธ, ์์ฑ |
2. ๋ฐ์ดํฐ ํํ
| ๊ตฌ๋ถ | ์ค๋ช
| ์์ |
|---|
| ์์นํ | ์ซ์๋ก ๋ ๋ฐ์ดํฐ | ํค, ๋ชธ๋ฌด๊ฒ, ๋์ด |
| โ ์ด์ฐํ | ์
์ ์๋ ์ซ์ | ์ฌ๋ ์, ์ฃผ์ฌ์ |
| โ ์ฐ์ํ | ๊ณ์ ์ด์ด์ง๋ ์ซ์ | ํค, ์จ๋ |
| ๋ฒ์ฃผํ | ์ด๋ฆ์ด๋ ๊ทธ๋ฃน | ์ฑ๋ณ, ํ์กํ |
| โ ์์ํ | ์์๊ฐ ์๋ ๊ทธ๋ฃน | ํ์ , ๋ง์กฑ๋ |
| โ ๋ช
๋ชฉํ | ์์ ์๋ ๊ทธ๋ฃน | ํ์กํ, ์ง์ญ |
3. ์ฉ์ด
- ๊ณต๋ถ์ฐ: ๋ ๊ฐ์ด ๊ฐ์ด ์์ง์ด๋ ์ ๋ (ํค ํฌ๋ฉด ๋ชธ๋ฌด๊ฒ๋ ํฌ๋ค)
- ์๊ด๊ณ์: ๋ ๊ฐ์ด ์ผ๋ง๋ ๋น์ทํ๊ฒ ์์ง์ด๋์ง -1~+1๋ก ํ์
- ๊ณ ์ ๋ฒกํฐ/๊ณ ์ ๊ฐ: ๋ฐ์ดํฐ๊ฐ ๊ฐ์ฅ ํผ์ง ๋ฐฉํฅ๊ณผ ๊ทธ ํฌ๊ธฐ
4. ๊ตฌ๊ธ ์ฝ๋ฉ์์ CSV ๋ถ๋ฌ์ค๊ธฐ
1
2
3
4
| from google.colab import drive
drive.mount('/content/drive')
import pandas as pd
df = pd.read_csv('/content/drive/MyDrive/ํ์ผ๊ฒฝ๋ก/ํ์ผ๋ช
.csv')
|
5. ํผ์ฒ ์์ง๋์ด๋ง
๋จธ์ ๋ฌ๋์ด๋ ๋ฐ์ดํฐ ๋ถ์์์ ๋ชจ๋ธ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ๊ณผ์
์ฉ์ด
- ํผ์ฒ: ์์ธก์ ์ฐ๋ ์ ๋ณด (ํค, ๋ชธ๋ฌด๊ฒ)
- ํ๊ฒ: ์์ธกํ๊ณ ์ถ์ ๊ฐ (์ง๊ฐ, ์ ์)
- ๋ ์ด๋ธ: ์์ธกํ๊ณ ์ถ์ ๊ทธ๋ฃน (์คํธ/์ ์)
- ํด๋์ค: ๋ ์ด๋ธ์ ์ข
๋ฅ (๊ณ ์์ด, ๊ฐ์์ง)
- ๋ค์ค๊ณต์ ์ฑ: ์ฌ๋ฌ ํผ์ฒ๊ฐ ์๋ก ๋๋ฌด ๋น์ทํด์(๊ฐํ๊ฒ ์๊ด๋์ด์) ๋ชจ๋ธ์ด ๋ถ์์ ํด์ง๋ ํ์
- ์ ์ฌ๊ณต๊ฐ: ๋ฐ์ดํฐ์ ์ค์ํ ํจํด๋ง ๋ฝ์๋ธ ์จ๊ฒจ์ง ๊ณต๊ฐ (๋จธ์ ๋ฌ๋ ๋๋ฆฌ๋ค๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์๊ธฐ๋ ๊ณต๊ฐ)
- ๊ตฌ๊ฐ ๋ถํ : ์ซ์๋ฅผ ๋ฑ๊ธ์ด๋ ๊ทธ๋ฃน์ผ๋ก ๋๋๊ธฐ (์: ์ ์๋ก A/B/C/D/F)
ํผ์ฒ ์์ง๋์ด๋ง ๊ธฐ๋ฒ
- Feature Scaling (์ค์ผ์ผ๋ง)
- Encoding (์ธ์ฝ๋ฉ)
- Missing Value Handling (๊ฒฐ์ธก์น ์ฒ๋ฆฌ)
- Feature Creation (ํผ์ฒ ์์ฑ)
- Feature Extraction (ํผ์ฒ ์ถ์ถ)
- Feature Selection (ํผ์ฒ ์ ํ)
5-1. Feature Scaling (์ค์ผ์ผ๋ง)
๋ณ์ ๋จ์๋ฅผ ๋ง์ถ๋ ์์
| ๋ฐฉ๋ฒ | ์ค๋ช
| ์ ํฉ ์ํฉ |
|---|
| Standardization (ํ์คํ) | ํ๊ท ์ 0, ํ์คํธ์ฐจ๋ฅผ 1๋ก ๋ณํ | ๋ฐ์ดํฐ๊ฐ ์ ๊ท๋ถํฌ์ผ ๋ |
| Min-Max Scaling (์ต์-์ต๋ ์ค์ผ์ผ๋ง) | ์ต์๊ฐ์ 0, ์ต๋๊ฐ์ 1๋ก ๋ณํํด [0,1]๋ก ์กฐ์ | ๊ฐ์ ๋ฒ์๋ฅผ ๋ง์ถ๊ณ ์ถ์ ๋ |
| Robust Scaling (๋ก๋ฒ์คํธ ์ค์ผ์ผ๋ง) | ์ค์๊ฐ ๊ธฐ์ค์ผ๋ก ๋ณํ, ์ด์์น์ ๊ฐํจ | ์ด์์น๊ฐ ๋ง์ ๋ |
| Log Transformation (๋ก๊ทธ ๋ณํ) | ํฐ ๊ฐ์ ์ํฅ์ ์ค์ฌ์ค | ์ค๋ฅธ์ชฝ์ผ๋ก ์น์ฐ์น ๋ถํฌ |
5-2. Encoding (์ธ์ฝ๋ฉ)
๋ฒ์ฃผํ ๋ฐ์ดํฐ๋ฅผ ์์น๋ก ๋ฐ๊พธ๋ ๊ฒ
| ๋ฐฉ๋ฒ | ์ ํฉ ์ํฉ | ์์ |
|---|
| Label Encoding (๋ ์ด๋ธ ์ธ์ฝ๋ฉ) | ์์ ์๋ ๊ทธ๋ฃน | ํ์ : Aโ0, Bโ1, โฆ |
| One-Hot Encoding (์-ํซ ์ธ์ฝ๋ฉ) | ์์ ์๋ ๊ทธ๋ฃน | ์๊น: ๋นจ๊ฐโ[1,0,0] ํ๋โ[0,1,0] |
| Target Encoding (ํ๊ฒ ์ธ์ฝ๋ฉ) | ๊ทธ๋ฃน์ด ๋๋ฌด ๋ง์ ๋ | ์ง์ญ๋ณ ํ๊ท ์ง๊ฐ |
์ฃผ์: ์-ํซ์ ๊ทธ๋ฃน ๋ง์ผ๋ฉด ๋๋ฌด ๋ณต์ก, ํ๊ฒ ์ธ์ฝ๋ฉ์ ๊ณผ์ ํฉ ์ํ!
5-3. Missing Value Handling (๊ฒฐ์ธก์น ์ฒ๋ฆฌ)
๋น์ด์๋ ๊ฐ์ ์ ์ ํ ์ฑ์ฐ๊ฑฐ๋ ์ ๊ฑฐ
๊ฒฐ์ธก์น ํจํด
| ํจํด | ์๋ฏธ | ์ฒ๋ฆฌ ๋์ด๋ |
|---|
| MCAR | ์์ ๋ฌด์์ ๊ฒฐ์ธก | ์ฌ์ |
| MAR | ๋ค๋ฅธ ๋ณ์์ ๋ฐ๋ผ ๊ฒฐ์ธก ๋ฐ์ | ์ค๊ฐ |
| MNAR | ์๊ธฐ ๋ณ์ ์์ฒด๊ฐ ๊ฒฐ์ธก ์์ธ | ์ด๋ ค์ |
๊ฒฐ์ธก์น ์ฒ๋ฆฌ ์ ๋ต
| ์ ๋ต | ํน์ง | ์ ํฉ ์ํฉ |
|---|
| Drop (์ญ์ ) | ํ/์ด ์ ๊ฑฐ | ๊ฒฐ์ธก ์ ์ ๋ |
| Mean/Median Imputation (ํ๊ท /์ค์๊ฐ) | ์์นํ ๋์ฒด (๋จ์) | ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ ๋ |
| Mode Imputation (์ต๋น๊ฐ) | ๋ฒ์ฃผํ ๋์ฒด | ์นดํ
๊ณ ๋ฆฌํ์ผ ๋ |
| Interpolation (๋ณด๊ฐ) | ์๋ค ๊ฐ์ผ๋ก ์ฑ์ (์๊ณ์ด) | ์๊ฐ ๋ฐ์ดํฐ |
| Predictive Imputation (์์ธก ๋์ฒด) | ๋ชจ๋ธ๋ก ์์ธกํด์ ์ฑ์ | ์ ํ๋ ์ค์ํ ๋ |
| Special Value/Masking (ํน์๊ฐ/๋ง์คํน) | ๊ฒฐ์ธก ์์ฒด๋ ์ ๋ณด๋ก ์ฌ์ฉ | ๊ฒฐ์ธก ์์ฒด๋ ์๋ฏธ ์์ ๋ |
5-4. Feature Creation (ํผ์ฒ ์์ฑ)
๋๋ฉ์ธ ์ง์์ ํ์ฉํด์ ์ง์ ์๋ก์ด ๋ณ์๋ฅผ ๋ง๋ฆ
| ์ข
๋ฅ | ์ค๋ช
| ์์ |
|---|
| Numeric Combination (์์นํ ์กฐํฉ) | ์์น ๊ฐ ๊ณฑ/ํฉ ๋ฑ | ๊ฐ๊ฒฉ ร ์๋ = ์ด์ก |
| Categorical Combination (๋ฒ์ฃผํ ์กฐํฉ) | ๋ฒ์ฃผ ๊ฒฐํฉ | ์ฑ๋ณ+์ง์ญ |
| Time Derivation (์๊ฐ ํ์) | ๋ ์ง/์๊ฐ ํ์ฉ | ์์ผ, ์ฃผ๋ง ์ฌ๋ถ |
| Binary Variable (์ด์ง ๋ณ์) | ์กฐ๊ฑด์ผ๋ก 0/1 ๊ตฌ๋ถ | ์ฐ๋ด > 5000 โ 1 |
| Group Statistics (๊ทธ๋ฃน ํต๊ณ) | ๊ทธ๋ฃน๋ณ ํ๊ท , ์ต๋๊ฐ ๋ฑ | ์ง์ญ๋ณ ํ๊ท ์๋ |
๊ธฐ์กด ํผ์ฒ๋ค์ ์กฐํฉํด์ ์๋ก์ด ๋ณ์๋ก ๋ฐ๊พธ๋ ๊ฒ
| ๋ฐฉ๋ฒ | ์ค๋ช
| ์์ |
|---|
| PCA (์ฃผ์ฑ๋ถ ๋ถ์, Principal Component Analysis) | ๋ฐ์ดํฐ์ ๋ณ๋์ฑ์ ๊ฐ์ฅ ์ ์ค๋ช
ํ๋ ๋ฐฉํฅ์ผ๋ก ์ถ์ | ์ ์ 100๊ฐ โ ํต์ฌ 2๊ฐ๋ก ์์ฝ |
| LDA (Linear Discriminant Analysis, ์ ํ ํ๋ณ ๋ถ์) | ํด๋์ค(๊ทธ๋ฃน)๋ฅผ ์ ๊ตฌ๋ถํ๋ ๋ฐฉํฅ์ผ๋ก ์ถ์ | ๊ณ ์์ด vs ๊ฐ์์ง ์ ๋๋๋ ์ถ ์ฐพ๊ธฐ |
5-6. Feature Selection (ํผ์ฒ ์ ํ)
๋ง์ ๋ณ์๋ฅผ ๋ค ์ฐ๋ฉด ๋
ธ์ด์ฆ๊ฐ ๋ง์์ง๋๊น ์ค์ํ ๋ณ์๋ง ๋ฝ๋ ์์
ํํฐ ๊ธฐ๋ฒ
- ์๊ด๊ณ์: ํ๊ฒ๊ณผ ๋น์ทํ๊ฒ ์์ง์ด๋ ํผ์ฒ๋ง ์ ํ
- ์นด์ด์ ๊ณฑ: ๋ฒ์ฃผํ๋ผ๋ฆฌ ์ฐ๊ด์ฑ ์๋ ๊ฒ๋ง ์ ํ
- ๋ถ์ฐ ์๊ณ๊ฐ: ๊ฐ์ด ๊ฑฐ์ ์ ๋ฐ๋๋ ํผ์ฒ ์ ๊ฑฐ
๋ํผ ๊ธฐ๋ฒ
- ์๋ฐฉํฅ ์ ํ: ํ๋์ฉ ์ถ๊ฐํด์ ์ฑ๋ฅ ์ข์์ง๋ฉด ์ ํ
- ์ญ๋ฐฉํฅ ์ ๊ฑฐ: ๋ค ๋ฃ๊ณ ํ๋์ฉ ๋นผ์ ์ฑ๋ฅ ๋๋น ์ง๋ฉด ๋ค์ ๋ฃ์
- ์ฌ๊ท์ ์ ๊ฑฐ(RFE): ์ค์๋ ๋ฎ์ ๊ฒ๋ถํฐ ๋ฐ๋ณต์ ์ผ๋ก ์ ๊ฑฐ
์๋ฒ ๋๋ ๊ธฐ๋ฒ
| ๋ฐฉ๋ฒ | ์ค๋ช
| ์ฅ๋จ์ | ์์ |
|---|
| Lasso (L1) | ์ค์๋ ๋ฎ์ ํผ์ฒ ๊ณ์ 0์ผ๋ก ์ค์ | ํด์ ์ฌ์ | ์ง๊ฐ ์์ธก |
| Ridge (L2) | ๋ชจ๋ ํผ์ฒ ๊ณ์ ์๊ฒ ์กฐ์ | ๋ค์ค๊ณต์ ์ฑ ์ํ | ํ๊ท๋ชจ๋ธ |
| Elastic Net | L1 + L2 ๊ฒฐํฉ | ์กฐ์ ๋ณต์ก | ์ ์ ์ ์์ธก |
| Random Forest | ํธ๋ฆฌ ๊ธฐ๋ฐ ์ค์๋ ํ๊ท | ๋น์ ํ ๋์ ๊ฐ๋ฅ | ๋ณต์กํ ๋ถ๋ฅ/ํ๊ท |
์ ๊ทํ ์์
- L1: ๊ณ์ ์ ๋๊ฐ ํฉ ์ ํ
- L2: ๊ณ์ ์ ๊ณฑํฉ ์ ํ
7. ์ํ๋ง ๊ธฐ๋ฒ & ๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์
์ธ๋์ํ๋ง ๊ธฐ๋ฒ
| ๋ฐฉ๋ฒ | ์ค๋ช
|
|---|
| Random | ๋ง์ ํด๋์ค์์ ์ํ์ ๋ฌด์์๋ก ์ผ๋ถ ์ญ์ |
| Tomek Links | ๊ฐ๊น์ด ๋ค๋ฅธ ํด๋์ค ์ํ ์์ ์ฐพ์ ์ ๊ฑฐ |
| OSS (One-Sided Selection) | ๊ฒน์น๋ ์ ๋งคํ ์ํ๋ง ๋จ๊ธฐ๊ณ ๋๋จธ์ง๋ ์ญ์ |
| CNN (Condensed NN) | ๋ถ๋ฅ์ ๊ผญ ํ์ํ ํต์ฌ ์ํ๋ง ๋จ๊ธฐ๊ณ ์์ถ |
์ค๋ฒ์ํ๋ง ๊ธฐ๋ฒ
| ๋ฐฉ๋ฒ | ์ค๋ช
|
|---|
| Random | ์์ ํด๋์ค ์ํ์ ๋จ์ ๋ณต์ |
| SMOTE | ๋น์ทํ ์ํ ์ฌ์ด์ ์๋ก์ด ์ํ์ ๋ง๋ค์ด ์ถ๊ฐ |
| ADASYN | ๊ตฌ๋ถ์ด ์ด๋ ค์ด ์ํ ์ฃผ๋ณ์ ์ ์ํ์ ๋ ๋ง์ด ์์ฑ |
| Borderline-SMOTE | ๋ค๋ฅธ ํด๋์ค์ ํท๊ฐ๋ฆด ๋งํ ์ํ ์ฃผ๋ณ์ ์ ์ํ ์์ฑ |
| KMeans-SMOTE | ๋น์ทํ ์ํ๋ผ๋ฆฌ ๋ฌถ์ ๊ทธ๋ฃน ์ค์ฌ์์ ์ ์ํ ์์ฑ |
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ฐฉ์: ETL vs ELT
| ๋ฐฉ๋ฒ | ์ ์ | ์ ํฉ ํ๊ฒฝ |
|---|
| ETL (Extract, Transform, Load) | ์ถ์ถ โ ์ธ๋ถ์์ ๋ณํ โ ์ ์ฅ์์ ๋ฃ์ | ์์ฒด ์๋ฒ์ ๊ตฌ์ถ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ
|
| ELT (Extract, Load, Transform) | ์ถ์ถ โ ์ ์ฅ์์ ๋ฃ๊ณ โ ์ ์ฅ์ ์์์ ์ฒ๋ฆฌ | ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ์ฅ์ (์: BigQuery, Redshift) |
- Extract: ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด์ ๊ฐ์ ธ์ด
- Transform: ๋ฐ์ดํฐ ์ ์ , ํ๋ณํ, ์ง๊ณ ๋ฑ ๊ฐ๊ณต ์ํ
- Load: ํ์ผ ๋๋ ํ
์ด๋ธ๋ก ์ ์ฅ