Metadata-Version: 2.4
Name: maps-visualizer
Version: 0.1.0
Summary: DWARF 모델 규칙 파일을 HTML 트리로 시각화하는 패키지
License: MIT
Keywords: decision-tree,visualization,dwarf,rule
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: pandas>=1.5
Requires-Dist: numpy>=1.23
Requires-Dist: scikit-learn>=1.1
Requires-Dist: supertree>=0.3
Provides-Extra: dev
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: pytest; extra == "dev"

# maps-visualizer

DWARF 모델이 생성한 규칙 파일(`.py`)을 받아  
**규칙 정렬 → 라벨 인코딩 변환 → HTML 트리 시각화** 까지  
세 단계를 자동으로 처리하는 패키지입니다.

---

## 설치

```bash
pip install maps-visualizer
```

---

## 빠른 시작

```python
from maps_visualizer import DwarfVisualizer

column_dict = {
    "island": "Categorical",
    "bill_length_mm": "Numerical",
    "bill_depth_mm": "Numerical",
    "flipper_length_mm": "Numerical",
    "body_mass_g": "Numerical",
    "sex": "Categorical",
    "year": "Numerical",
    "Decision": "Decision",
}

viz = DwarfVisualizer(
    data_path   = "./data/penguins/5_fold/penguins_fold_1_train.csv",
    rule_path   = "./outputs/rules/penguins_C4.5_1_99.63.py",
    column_dict = column_dict,
    html_out    = "penguins_output.html",
)

viz.run()   # 전체 파이프라인 한 번에 실행
```

---

## 단계별 실행

```python
viz.sort_rules()       # 1단계: Less_/Greater_ 구간 오름차순 정렬
viz.transform_rules()  # 2단계: 데이터 전처리 + 라벨 인코딩 + 규칙 치환
viz.visualize()        # 3단계: HTML 트리 시각화 생성
```

메서드 체이닝도 가능합니다:

```python
viz.sort_rules().transform_rules().visualize()
```

---

## 파라미터

| 파라미터 | 필수 | 설명 |
|---|---|---|
| `data_path` | ✅ | 시각화에 사용할 CSV 경로 |
| `rule_path` | ✅ | DWARF 생성 규칙 `.py` 파일 경로 |
| `column_dict` | ✅ | 컬럼 타입 딕셔너리 (`Categorical` / `Numerical` / `Decision`) |
| `html_out` | ❌ | 출력 HTML 파일명 (기본값: `<rule_name>_output.html`) |
| `sorted_rule_path` | ❌ | 정렬된 규칙 임시 파일 경로 (기본값: `order_rule.py`) |
| `viz_rule_path` | ❌ | 변환된 규칙 임시 파일 경로 (기본값: `order_rule_viz.py`) |
| `viz_csv_path` | ❌ | 시각화용 CSV 임시 경로 |

---

## 출력물

- `<html_out>` — 브라우저에서 바로 열 수 있는 인터랙티브 트리 HTML
- `order_rule.py` — 정렬된 규칙 파일 (중간 산출물)
- `order_rule_viz.py` — 인코딩 변환된 규칙 파일 (중간 산출물)
- `<rule_name>_viz.csv` — 시각화용 전처리 CSV (중간 산출물)

---

## 의존성

- `pandas >= 1.5`
- `numpy >= 1.23`
- `scikit-learn >= 1.1`
- `supertree >= 0.3`
