ベイジアン学習 Auto-Tuner ガイド
EXAWinの Auto-Tuner 機能を段階別に案内します — 分析の実行、結果画面 (要約・Signal Lift・Impact・T/k・Dampening・Silence・Prior・AUC・交差検証)、MCMC 事後分布、Particle Storm の視覚化、シミュレーション構造パネル、パラメータの適用まで。
Auto-Tuner ユーザーガイド
Auto-Tuner は、過去に受注(Won) / 失注(Lost) したプロジェクトの結果データを基にベイジアンエンジンのパラメータを 学習し、最適な値を推奨(Recommend) する機能です。管理者はデータに基づく根拠と推奨値を検討した上で、直接適用するかどうかを決定します。
位置: サイドバー → Bayesian → Auto-Tune
⚠️ Auto-Tuner を実行するには admin または super_user の権限が必要です。
1. 分析の実行
第1段階: Auto-Tune 画面への進入
サイドバーから Bayesian → Auto-Tune メニューをクリックします。初回アクセス時は中央に紹介画面が表示され、前回の分析結果が存在する場合は sessionStorage から自動的に復元されます。
第2段階: 分析開始
画面上部または中央の 分析開始 (Start Analysis) ボタンをクリックします。
分析を開始すると プログレスバー が表示され、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 交差検証で過学習 (Overfitting) を検出します。
- 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)
2つのテーブルが並んで配置されます。
Threshold (T):| カラム | 説明 |
|---|---|
| STAGE | 営業ステージ名 |
| CURRENT | 現在の閾値 (Threshold) |
| 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
2つのカードが並んで配置されます。
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
| 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 (Highest Density Interval) 区間。
💡 Particle Storm は視覚的な効果を提供するためのものであり、実際の MCMC 処理過程をそのまま映し出しているわけではありません。各パラメータの trace データを順次ヒストグラムに反映させています。
MCMC データテーブル
| カラム | 説明 |
|---|---|
| ☑ | チェックボックス — 適用するパラメータの選択 (Select All 可能) |
| Parameter | パラメータ名 (⚙️ = Dampening, 🔇 = Silence) |
| Current | 現在の設定値 (赤色) |
| MCMC | 事後分布の平均値 (緑色) |
| ±SD | 標準偏差 (Standard Deviation) — 推定の不確実性 |
| 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 (≤ 0.02) のため、適用対象外となります。
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 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: 交差検証 (Cross Validation) で過学習の警告がある場合は慎重に適用してください。
- MCMC R̂: R̂ > 1.05 のパラメータについて、MCMC の推奨は参考程度に使用してください。
- HDI の範囲: HDI が極端に広いパラメータはデータ不足を意味します。
- Phase 制限: Dampening / Silence は Phase 4 以上でのみチェックボックスが有効になります。
適用後
- 確認ダイアログ が表示され、承認すると DB がアップデートされます。
- 適用後、
sessionStorageは初期化されるため、再分析が必要となります。 - 適用に成功したパラメータの数がトーストメッセージとして表示されます。
5. データ成熟度 (Phase) と機能制限
Auto-Tuner は Won / Lost のうち 件数が少ない方 (min) の数値を基準として、5段階の信頼レベル (Phase) を割り当てます。
| 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. よくある質問 (FAQ)
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 は類似の方向だが HDI が広い | 方向性は合っているが不確実性がある | 慎重に適用 |
| 両結果が大きく乖離している | Grid Search が局所解 (ローカル最適) の可能性あり | MCMC の HDI を優先して参考にする |
Q. R̂(R-hat)が高いという警告が出ます
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 ボタンで再分析を実行すると、ストレージは初期化されてリセットされます。