From c0deaed923213309d05f5fdc9e57e164adaae7a9 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 4 Mar 2026 02:59:17 +0800 Subject: [PATCH] feat: show mu accuracy and Brier score in /deb command --- bot_listener.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/bot_listener.py b/bot_listener.py index 721229c9..57ef55b1 100644 --- a/bot_listener.py +++ b/bot_listener.py @@ -157,8 +157,10 @@ def start_bot(): ) else: err_label = f" 偏差{abs(err):.1f}°" + mu_val = record.get("mu") + mu_str = f" | μ: {mu_val}" if mu_val is not None else "" lines.append( - f" {date_str}: DEB {retro}{deb_pred}→{deb_wu} vs 实测 {actual}→{actual_wu} {icon}{err_label}" + f" {date_str}: DEB {retro}{deb_pred}→{deb_wu} vs 实测 {actual}→{actual_wu} {icon}{err_label}{mu_str}" ) elif date_str == today_str: lines.append(f" {date_str}: 📍 今天进行中 (实测暂 {actual})") @@ -179,6 +181,20 @@ def start_bot(): f"\n🎯 DEB 总战绩:WU命中 {hits}/{total_days} ({hit_rate:.0f}%) | MAE: {deb_mae:.1f}°" ) + # --- 概率引擎 μ 的战绩 --- + from src.analysis.deb_algorithm import get_mu_accuracy + mu_acc = get_mu_accuracy(city_name) + if mu_acc: + mu_mae, mu_hr, avg_brier, mu_total, _ = mu_acc + lines.append( + f"🎲 概率引擎 (μ):WU命中 {mu_hr:.0f}% | MAE: {mu_mae:.1f}°" + ) + if avg_brier is not None: + # Brier Score 范围是 0 (完美) 到 2 (全错) + bs_eval = "极佳" if avg_brier < 0.2 else ("良好" if avg_brier < 0.4 else "需校准") + lines.append(f" ▪ Brier评分: {avg_brier:.3f} ({bs_eval})") + + # 和各模型 MAE 对比 if model_errors: lines.append("\n📈 模型 MAE 对比:")