베이지안 학습 Auto-Tuner 가이드
EXAWin의 Auto-Tuner 기능을 단계별로 안내합니다 — 분석 실행, 결과 화면(요약·Signal Lift·Impact·T/k·Dampening·Silence·Prior·AUC·교차검증), MCMC 사후분포, Particle Storm 시각화, 시뮬레이션 구조 패널, 파라미터 적용까지.
Auto-Tuner 사용 가이드
Auto-Tuner는 과거 수주(Won) / 실주(Lost) 프로젝트의 결과 데이터를 베이지안 엔진의 파라미터를 학습하여 최적값을 추천하는 기능입니다. 관리자가 데이터에 기반한 근거와 함께 추천을 검토한 뒤, 직접 적용 여부를 결정합니다.
위치: 사이드바 → Bayesian → Auto-Tune
⚠️ Auto-Tuner는 admin 또는 super_user 권한이 필요합니다.
1. 분석 실행
1단계: Auto-Tune 화면 진입
사이드바에서 Bayesian → Auto-Tune 메뉴를 클릭합니다. 최초 진입 시 중앙에 소개 화면이 표시되며, 이전 분석이 있으면 sessionStorage에서 자동 복원됩니다.
2단계: 분석 시작
화면 상단 또는 중앙의 분석 시작 버튼을 클릭합니다.
분석 시작 후 프로그레스 바가 11단계의 진행 상황을 실시간으로 표시합니다:
| 구성 요소 | 소요 시간 | 비고 |
|---|---|---|
| Ruby Grid Search (Impact, T, k, Dampening, Silence) | < 1초 | 즉시 완료 |
| Cross Validation (5-fold) | < 1초 | 과적합 검증 |
| Emcee MCMC Sampling | 15~30초 | Phase 3 이상에서만 실행 |
💡 분석 중 Cancel 버튼으로 취소할 수 있습니다. 취소해도 데이터에 영향을 주지 않습니다.
⚠️ MCMC가 포함되면 전체 분석에 15~40초가 소요됩니다. 프로그레스 바에 경과 시간이 함께 표시됩니다.
2. 결과 화면 구성
분석 완료 후 결과는 위에서 아래로 다음 섹션으로 구성됩니다:
① 요약 카드 (4열)
상단에 4개의 요약 카드가 표시됩니다.
| 카드 | 내용 |
|---|---|
| 완결 데이터 | 분석 대상 프로젝트 수 (Won / Lost 구분) + Phase 배지 |
| 현재 분리도 | 현재 파라미터로 계산한 분리도 (등급 A~D 표시) |
| 예상 분리도 | 모든 추천값 적용 시의 시뮬레이션 분리도 (등급 표시) |
| Won vs Lost 평균 | Won 프로젝트 평균 P(Win) vs Lost 프로젝트 평균 P(Win) |
등급 기준:
| 등급 | 분리도 | 의미 |
|---|---|---|
| A | ≥ 0.40 | Excellent — 파라미터가 현실을 잘 반영 |
| B | 0.25 ~ 0.40 | Good — 양호하나 개선 여지 있음 |
| C | 0.10 ~ 0.25 | Needs Improvement — 조정 권고 |
| D | < 0.10 | Urgent — 즉시 파라미터 재교정 필요 |
② 시뮬레이션 구조 패널
요약 아래에 🔬 Auto-Tuner Simulation Structure 접이식 패널이 있습니다. 클릭하면 Auto-Tuner가 수행한 전체 시뮬레이션의 구조와 횟수가 표시됩니다.
요약 카드 (4열):| 카드 | 내용 |
|---|---|
| PROJECTS | 분석 대상 프로젝트 수 (Won / Lost 구분) |
| RUBY ENGINE | Ruby Grid Search 시뮬레이션 횟수 |
| MCMC ENGINE | Emcee 샘플링의 simulate_project() 호출 추정 횟수 |
| GRAND TOTAL | Ruby + MCMC 합계 |
Computation Distribution 바: Ruby와 MCMC의 연산 비율을 시각적으로 표시합니다. 일반적으로 MCMC가 전체의 99% 이상을 차지합니다.
Analysis Pipeline (3열):- GRID SEARCH: 현재 값 ±범위에서 10개 지점을 시도하여 분리도 최대화
- CROSS VALIDATION: 5-fold 교차검증으로 과적합 검출
- MCMC Emcee: 32 walkers × (500 warmup + 1,500 draws) 앙상블 샘플링
| Step | 분석 | 호출 |
|---|---|---|
| 1 | current_separation | P개 |
| 2 | signal_lift_analysis | 0 (DB 집계) |
| 3 | impact_grid_search | I × G × P |
| 4 | optimal_thresholds | 0 (DB 기반) |
| 5 | k_recommendations | 0 (통계 계산) |
| 6 | dampening_search | D × P |
| 7 | silence_penalty_search | S × P |
| 8 | projected_separation | P개 |
| 9 | calculate_auc | 0 (P(Win) 기반) |
| 10 | cross_validate | F × P |
| 11 | mcmc_ensemble_sampling | W × Steps × P |
여기서 P=프로젝트 수, I=Impact 타입 수, G=Grid 포인트(10), D=Dampening 시도 수, S=Silence 시도 수, F=5(fold 수), W=32(walkers), Steps=2,000(warmup+draws)
③ Signal Lift 분석
각 시그널의 판별력(Lift)을 분석합니다.
| 컬럼 | 설명 |
|---|---|
| SIGNAL | 시그널 이름 |
| WON% | Won 프로젝트에서의 출현율 |
| LOST% | Lost 프로젝트에서의 출현율 |
| LIFT | Won 출현율 / Lost 출현율 |
| GRADE | 판별력 등급 + 이모지 |
- Lift > 1: Won 프로젝트에서 더 자주 출현 → 양성 지표
- Lift < 1: Lost 프로젝트에서 더 자주 출현 → 음성 지표
- ⚠ MISMATCH: 현재 분류(Positive/Negative)와 실제 판별력이 불일치하면 빨간색 경고 표시
시그널의 Impact 분류가 잘못 배정되어 있으면 여기서 감지됩니다. Mismatch가 발견되면 Signal Master에서 재분류를 검토하세요.
④ Prior α, β 추천
과거 데이터를 기반으로 최적 초기 Prior를 추천합니다.
| 항목 | 설명 |
|---|---|
| Method | 추정 방법 (Method of Moments 또는 MLE) |
| α (Success Weight) | 현재 → 추천값 (95% CI 표시) |
| β (Failure Weight) | 현재 → 추천값 (95% CI 표시) |
| Evidence Maturity | 🌱 Early / 🌿 Growing / 🌳 Mature (프로젝트별 평균 α+β+n) |
Phase 3에서는 적률법(Method of Moments), Phase 4+에서는 MLE(Newton-Raphson) 고정점 반복으로 더 정밀한 추정을 사용합니다.
⑤ Impact 최적화
각 Impact Type별 Grid Search 추천 결과입니다. adjust 권고가 있는 Impact만 카드 형태로 표시됩니다.
각 카드에는:
- Impact Type 이름
- 현재 값 → 추천 값
- 분리도 개선량 (+%p)
- 체크박스 — 적용할 파라미터 선택 (Select All 가능)
💡 Phase에 따라 탐색 범위가 달라집니다: Phase 3은 ±30%, Phase 4는 ±40%, Phase 5는 ±50%
⑥ Threshold (T) & Velocity (k)
두 테이블이 나란히 배치됩니다.
Threshold (T):| 컬럼 | 설명 |
|---|---|
| STAGE | 영업 단계명 |
| CURRENT | 현재 임계값 |
| OPTIMAL | Youden J 최적 임계값 |
| J | Youden J 통계량 (< 0.20이면 추천 불가) |
| 컬럼 | 설명 |
|---|---|
| STAGE | 영업 단계명 |
| CURRENT | 현재 k 값 |
| OPTIMAL | Grid Search 최적 k (상한: 12) |
| AVG α+β | 해당 스테이지의 평균 증거량 |
변경이 없는 행에는 체크박스가 표시되지 않습니다.
⑦ Impedance Impact
T/k 추천을 적용했을 때 임피던스 함수에 미치는 영향을 시뮬레이션합니다.
| 컬럼 | 설명 |
|---|---|
| STAGE | 영업 단계 |
| P(WIN) | 해당 스테이지 평균 P(Win) |
| 현재 | 현재 T/k의 임피던스(%) |
| 추천 적용 | 추천 T/k의 임피던스(%) |
| 변화 | ↑ / ↓ + %p 차이 |
| n | Won / Lost 건수 |
| BU | 해당 스테이지의 BayesianUpdate 건수 |
T/k 변경으로 임피던스가 변하지 않으면 "변화 없음 ✅" 메시지가 표시됩니다.
⑧ Dampening & Silence Penalty
두 카드가 나란히 배치됩니다.
| 파라미터 | 설명 | 기본값 |
|---|---|---|
| Dampening | 동시 시그널 감쇠율. 0=최강 시그널만, 1=모두 동일 | 0.25 |
| Silence Penalty | 활동 공백기간 패널티 비율 | 0.30 |
각 카드에 현재값 → 추천값 + 개선량이 표시됩니다. 최적이면 "✅ Optimal"로 표시됩니다.
⚠️ Phase 4 미만에서는 Dampening/Silence 체크박스가 비활성화(disabled) 되며 "🟢 양호 이상 필요" 안내가 표시됩니다.
3. MCMC 사후분포 분석
Phase 3 이상이면 Grid Search 결과 아래에 MCMC 사후분포 추정 결과가 표시됩니다.
MCMC 헤더
| 항목 | 설명 |
|---|---|
| Samples × Walkers | 샘플 수 × walker 수 (예: 1,500 samples × 32 walkers) |
| R̂ | 전체 최대 R-hat + 수렴 상태 (✅ 또는 ⚠️) |
| Runtime | MCMC 실행 시간 (초) |
| Projects | 분석에 포함된 프로젝트 수 |
Particle Storm 시각화
▶ Play Particle Storm 버튼을 클릭하면 각 파라미터의 사후분포가 실시간 애니메이션으로 빌드됩니다:
- 밀도 히스토그램: MCMC 샘플이 하나씩 누적되면서 분포 형태가 나타남
- 녹색 실선: MCMC 추정 평균(Mean)
- 빨간 점선: 현재 설정값(Current)
- 보라색 박스: 95% HDI 구간
Particle Storm은 시각적 효과를 위한 것이며, 실제 MCMC 처리 과정을 보여주지는 않습니다. 각 파라미터의 trace 데이터를 순차적으로 히스토그램에 반영합니다.
MCMC 데이터 테이블
| 컬럼 | 설명 |
|---|---|
| ☑ | 체크박스 — 적용할 파라미터 선택 (Select All 가능) |
| Parameter | 파라미터 이름 (⚙️ = Dampening, 🔇 = Silence) |
| Current | 현재 설정값 (빨간색) |
| MCMC | 사후분포 평균값 (녹색) |
| ±SD | 표준편차 — 추정의 불확실성 |
| HDI 95% | 95% 최고밀도구간 (보라색) |
| R̂ | 수렴 진단 지표 (녹색 < 1.05, 노란색 < 1.10, 빨간색 ≥ 1.10) |
| Δ | 현재 값과 MCMC 추정값의 차이 (↑ / ↓ / ≈) |
⚠️ R̂ > 1.05인 파라미터는 수렴 불완전 경고입니다. R̂ > 1.10이면 미수렴이므로 적용하지 마세요.
💡 체크박스가 없는 행: MCMC 추정 평균과 현재 값의 차이가 0.02 이하(ε 임계값)이면 변화가 미미하다고 판단하여 체크박스를 표시하지 않습니다. Δ 컬럼에
≈로 표시됩니다. 예를 들어 dampening이 현재 0.25이고 MCMC 평균이 0.259이면 차이가 0.009로 임계값 이하이므로 적용 대상에서 제외됩니다.
HDI 해석 가이드
HDI [3.5, 6.2], 현재값 5.0
→ 현재값이 HDI 안에 있으므로 합리적. 변경 불필요.
HDI [2.0, 3.5], 현재값 5.0
→ 현재값이 HDI 밖. 과대평가 가능성 높음. 조정 권고.
HDI [0.8, 8.0] (범위가 넓음)
→ 데이터가 부족하여 추정이 불확실. 참고만 하세요.
4. 추천 적용하기
Apply Bar
결과 화면 하단에 고정 바가 표시됩니다:
- 왼쪽: 선택된 파라미터 수
- 오른쪽: Apply Selected 버튼
Phase별 적용 제한
| Phase | 적용 가능 범위 |
|---|---|
| 1~2 | 적용 불가 — Apply 버튼 완전 비활성화 |
| 3 | Impact, T, k + MCMC (Dampening/Silence 잠금) |
| 4+ | 전체 파라미터 적용 가능 |
적용 대상
| 소스 | 대상 파라미터 | 적용 위치 |
|---|---|---|
| Grid Search | Impact, T, k, Dampening, Silence | DB 직접 업데이트 |
| MCMC | Impact(mcmc_impact), Dampening(mcmc_dampening), Silence(mcmc_silence_ratio) | DB 직접 업데이트 |
⚠️ Grid Search 추천과 MCMC 추천 둘 다 체크하면, 마지막에 적용된 값이 DB에 반영됩니다. 같은 파라미터에 대해 하나만 선택하세요.
적용 전 확인사항
- Grade 확인: 현재 등급과 예상 등급의 변화를 확인하세요
- Overfitting Risk: 교차검증에서 과적합 경고가 있다면 신중하게 적용하세요
- MCMC R̂: R̂ > 1.05인 파라미터는 MCMC 추천을 참고용으로만 사용하세요
- HDI 범위: HDI가 매우 넓은 파라미터는 데이터 부족을 의미합니다
- Phase 제한: Dampening/Silence는 Phase 4 이상에서만 체크박스가 활성화됩니다
적용 후
- 확인 다이얼로그가 뜨며, 승인 시 DB가 업데이트됩니다
- 적용 후
sessionStorage가 초기화되어 재분석이 필요합니다 - 적용된 파라미터 수가 토스트 메시지로 표시됩니다
5. 데이터 성숙도 (Phase)와 기능 제한
Auto-Tuner는 Won/Lost 중 적은 쪽 건수(min)를 기준으로 5단계 신뢰 등급을 매깁니다.
| Phase | 조건 | 표시 | 사용 가능 기능 |
|---|---|---|---|
| 1 | min < 5 | ❌ | 분석 불가 — 데이터 부족 |
| 2 | min 5~9 | 🟠 | Signal Lift 방향성만 참조 |
| 3 | min 10~19 | 🟡 | Impact, T, k + MCMC |
| 4 | min 20~49 | 🟢 | + Dampening, Silence |
| 5 | min ≥ 50 | 🔵 | 전체 기능 + 안정적 MCMC |
💡 Phase를 올리는 가장 좋은 방법: 더 많은 프로젝트를 Won 또는 Lost로 완결(Close)하세요. 진행 중(Active)인 프로젝트는 분석에 포함되지 않습니다.
6. 자주 묻는 질문
Q. 분석을 여러 번 실행해도 되나요?
네. Auto-Tuner는 DB를 전혀 수정하지 않습니다. 분석은 메모리 내 시뮬레이션이며, "Apply Selected" 버튼을 누르기 전까지 기존 데이터에 아무런 영향이 없습니다.
Q. 분석 중 취소하면?
프로그레스 바 옆의 Cancel 버튼(빨간색)을 클릭하면 AJAX 요청이 즉시 취소됩니다. 데이터에 영향은 없습니다.
Q. 분석에 시간이 오래 걸려요
MCMC(Phase 3+)가 포함되면 15~40초가 소요됩니다. Python MCMC 엔진(Emcee)이 수십만 회의 시뮬레이션을 수행하기 때문입니다. MCMC 없이 Ruby Grid Search만 실행하면(Phase 2) 1초 이내에 완료됩니다.
Q. Grid Search와 MCMC 추천이 다르면?
| 상황 | 해석 | 권장 |
|---|---|---|
| 두 결과가 일치 | 높은 확신 | 적용 권고 ✅ |
| MCMC가 Grid Search와 유사하되 HDI가 넓음 | 방향은 맞지만 불확실 | 신중하게 적용 |
| 두 결과가 크게 다름 | Grid Search의 로컬 최적 가능성 | MCMC의 HDI 범위를 우선 참고 |
Q. R̂이 높다고 경고가 떠요
R̂ > 1.05는 MCMC 체인이 아직 수렴하지 않았다는 뜻입니다. 이 파라미터의 MCMC 결과는 신뢰하기 어렵습니다. Grid Search 추천을 우선 사용하고, 더 많은 데이터가 쌓인 후 MCMC를 재실행하세요.
Q. MCMC 섹션이 안 보여요
다음 경우 MCMC가 실행되지 않습니다:
- Phase 3 미만 (min 10건 미만)
- Python Emcee 환경이 설치되지 않은 서버
두 경우 모두 Grid Search 결과는 정상 표시되며, MCMC 없이도 Auto-Tuner를 사용할 수 있습니다.
Q. Particle Storm이 뭔가요?
MCMC 샘플 데이터를 실시간 애니메이션으로 보여주는 시각화 기능입니다. 사후분포가 어떤 형태인지 직관적으로 이해할 수 있습니다. Play 버튼을 누르면 모든 파라미터의 애니메이션이 순차적으로 재생됩니다.
Q. 이전 분석 결과가 남아 있어요
Auto-Tuner는 분석 결과를 sessionStorage에 캐싱합니다. 페이지를 떠났다 돌아와도 이전 결과가 유지됩니다. Apply 후 또는 Re-run으로 새로 분석하면 초기화됩니다.