如何使用TimeCopilot構建基於基礎模型和自動異常檢測的預測管道
本教程展示瞭如何使用TimeCopilot構建端到端的預測工作流。它涵蓋了數據準備、模型評估(包括統計模型、基礎模型和可選的GPU模型)、滾動交叉驗證、概率預測、異常檢測以及可選的LLM代理解釋。
本教程詳細介紹瞭如何使用TimeCopilot庫構建一個完整的端到端預測工作流。首先,我們準備了一個面板數據集,包含真實的航空乘客數據和一個人為合成的季節性序列,其中注入了三個異常點。接着,我們評估了一系列多樣化的預測模型,包括統計模型(如AutoARIMA、AutoETS、SeasonalNaive和Theta)、Prophet以及基於基礎模型的Chronos(如果GPU可用,還可選TimesFM)。我們使用滾動交叉驗證(三個窗口)和多個誤差指標(MAE、RMSE、MAPE)來確定最佳模型。
在環境準備方面,我們安裝了TimeCopilot、UtilsForecast和Matplotlib,並固定了兼容的NumPy(1.26.4)和SciPy(1.13.1)版本以避免二進制衝突。然後加載AirPassengers數據集,並通過線性趨勢、季節性正弦波和噪聲生成合成序列,在特定索引處將數值乘以2.2作為異常。兩個序列合併為面板數據,預測週期設為12個月,頻率為月度。
模型配置階段,我們根據硬件選擇Chronos模型大小(有GPU時使用amazon/chronos-bolt-small,否則使用amazon/chronos-bolt-tiny),並可選添加TimesFM。所有模型通過TimeCopilotForecaster統一管理。滾動交叉驗證後,我們計算每個模型的MAE、RMSE和MAPE,並生成排行榜,選擇平均RMSE最低的模型作為最佳模型。
接下來,我們生成帶有80%和95%預測區間的概率預測,並通過自定義繪圖函數展示歷史數據、點預測和不確定性範圍。異常檢測步驟中,我們在99%置信水平下識別異常點,並在合成序列中高亮顯示了注入的異常。最後,我們探索了TimeCopilot的可選LLM代理:當提供OpenAI或Anthropic API密鑰時,代理會自動選擇模型,評估其是否優於SeasonalNaive,並以自然語言回答關於未來12個月航空乘客總量及峯值月份的問題。
整個流程從數據預處理到模型比較、概率預測、可視化、異常檢測和智能解釋,形成了一個無縫的工作流。通過結合自動化預測和LLM代理,我們既獲得了準確的數值預測,也得到了清晰的決策支持信息。完整的代碼可在附帶的Notebook中找到。