darts 是一個專門用于時間序列分析、建模與預測的 Python 庫,提供統一而高層的 API,集成了統計模型(如 ARIMA)、機器學習模型(如 LightGBM)、深度學習模型(如 RNN、Transformer、N-BEATS、TCN 等)以及時間序列特有的處理工具(如窗口生成、協變量管理、回測、誤差評估等)。
darts 的設計目標是讓時間序列預測像使用 scikit-learn 一樣簡單,同時讓深度學習模型的構建更加易用。
安裝 :
pip install darts如需使用深度學習模型:
pip install darts[u]常見應用場景:
(1)時間序列預測(Forecasting)
使用 ARIMA、RNN、Transformer、N-BEATS 等模型進行未來值預測。
(2)多元時間序列建模
支持多變量輸入、協變量(covariates)、滯后特征等復雜數據結構。
(3)回測與模型評估
內置回測、滾動預測、交叉驗證與誤差指標。
(4)異常檢測
支持時間序列的異常值檢測及預測殘差分析。
(5)時間序列處理
提供插值、縮放、缺失值填補、時間對齊等操作。
(6)深度學習時間序列模型
內置 PyTorch 實現的專業算法,如:
? RNNModel
? TCNModel
? NBEATSModel
? TransformerModel
? TFTModel(Temporal Fusion Transformer)
擁有高性能與易用性的平衡。
◆ ◆ ◆
核心概念
1、TimeSeries 對象(核心數據結構)
darts 所有模型的輸入與輸出均為 TimeSeries 類型。
它包含:
? 時間索引(DatetimeIndex 或 RangeIndex)
? 數據列(可以是一列或多列)
? 可選的附加維度(例如多個樣本)
創建方式示例:
series = TimeSeries.from_dataframe(df, "date", "value")2、預測模型(Models)
darts 的模型分為:
? 統計模型(ARIMA、Exponential Smoothing、Theta 等)
? 機器學習模型(RegressionModel)
? 深度學習模型(NBEATS、RNN、TFT 等)
? EnsembleModel(用于模型集成)
每一個模型都提供統一的 API:
forecast = model.predict(n)3、協變量(Covariates)
時間序列預測常需要外生變量,如:
? 天氣
? 節假日
? 商品價格
? 滯后窗口
darts 支持三類協變量:
? past_covariates:過去已知的數據
? future_covariates:未來已知的數據(如節日表)
? static_covariates:不會隨時間變化的特征
4、回測(Backtesting)
darts 內置回測工具,通過滑動窗口自動評估模型表現:
)5、誤差指標(Metrics)
支持:
? MAE
? RMSE
? MAPE
? SMAPE
? DTW 距離
? R2 score
用于評估預測效果。
◆ ◆ ◆
應用舉例
例 1:加載數據并創建 TimeSeries
series = TimeSeries.from_dataframe(df, "date", "sales")例 2:使用 ARIMA 進行預測
forecast.plot(label="forecast")例 3:使用深度學習模型(N-BEATS)
prediction = model.predict(12)例 4:使用協變量進行多元預測(RNN)
forecast = model.predict(7, future_covariates=weather_series)例 5:回測評估模型
print("SMAPE:", error)◆ ◆ ◆
常用函數與類速覽
TimeSeries.from_dataframe(df, time_col, value_cols)
從 DataFrame 創建時間序列對象。
參數:
df:pandas DataFrame。
time_col:時間列名。
value_cols:數值列名或列表。
返回:TimeSeries 實例。
model.fit(series, **covariates)
訓練模型。
參數:
series:目標時間序列。
past_covariates:可選,歷史協變量。
future_covariates:可選,未來協變量。
返回:無。
model.predict(n, **covariates)
預測未來 n 步。
參數:
n:預測步數。
future_covariates:未來外生變量。
返回:TimeSeries 類型的預測結果。
model.backtest(series, forecast_horizon, metric)
對時間序列執行滑動窗口回測。
參數:
series:目標時間序列。
forecast_horizon:一次預測步數。
metric:誤差函數。
返回:float(誤差值)。
TimeSeries.plot()
快速繪制時間序列。
參數: 無。
返回: 無(生成圖形)。
小結
darts 是一套現代化的時間序列分析框架,具有以下優勢:
? 統一的 API,幾十種模型可無縫切換
? 內置深度學習模型,支持 PyTorch 訓練
? 支持協變量、窗口生成、多元時間序列
? 強大的回測工具與評估指標
? TimeSeries 統一數據結構,簡化時間序列處理
? 可從快速原型擴展到企業級模型
無論你是做金融預測、供應鏈預測,還是做科學研究或智能調度,darts 都提供穩定、靈活而完整的工具鏈。
![]()
“點贊有美意,贊賞是鼓勵”
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.