單序列異常偵測

data_drift 回答的是「兩個批次之間*分布*是否偏移」—— 無法指出單一即時序列中*哪一個*值異常 —— 而 slo.burn_alerts 只對錯誤預算燃燒設門檻,不針對任意度量值(延遲尖峰、成本尖峰、CPU)。本功能以 z-score、穩健的 MAD(modified z-score)與 EWMA 控制圖,在單一序列中標記離群值。

純標準函式庫(math / statistics);不匯入 PySide6。每個函式皆為純函式(輸入值、輸出旗標), 因此在 CI 中完全具決定性。

無頭 API

from je_auto_control import detect_anomalies, mad_anomalies, ewma_control

series = [10, 11, 9, 10, 12, 10, 95, 11, 10]    # 索引 6 為尖峰
mad_anomalies(series)                            # [6](穩健)
detect_anomalies(series, method="mad")
# [{index, value, score, is_anomaly}, ...]

ewma_control(values, alpha=0.5, target_mean=10, target_sigma=1)  # 偏移索引

detect_anomalies 為每個值評分(預設 mad,或 zscore)並標記超過門檻者(MAD 為 3.5、z-score 為 3.0)。mad_anomalies / zscore_anomalies 只回傳被標記的索引,``mad_scores`` / zscore_scores 回傳原始分數。MAD(Iglewicz-Hoaglin modified z-score)對離群值膨脹離散度具穩健性,因此在純 z-score 失靈 之處仍保持敏感。ewma_control 是針對持續性水準偏移的 EWMA 控制圖 —— 傳入 target_mean / target_sigma 設定 in-control 基準(否則用序列自身統計)。

執行器命令

AC_detect_anomalies 接受 values 清單(可選 method / threshold)回傳 {results}。它以 MCP 工具 ac_detect_anomalies 以及 Script Builder 中 Data 分類下的命令提供。