如何使用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中找到。