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 对比:")