unit8co/darts

A python library for user-friendly forecasting and anomaly detection on time series.

Darts – Python 시계열 예측 및 이상 감지

개요 – Darts는 시계열 데이터를 쉽게 다룰 수 있게 해주는 오픈소스 Python 라이브러리입니다. 고전적인 통계 기법(ARIMA, 지수 평활법)부터 최신 딥러닝 아키텍처(N-BEATS, TCN, Transformer 기반 모델)까지 다양한 모델을 위한 통합된 scikit-learn 스타일 API(fit, predict)를 제공합니다. 또한 이상 감지, 백테스팅, 확률적 예측, 데이터 전처리 도구도 함께 제공합니다.

중요성 – 시계열 분석은 많은 산업(금융, 에너지, 소매, IoT)에서 핵심적인 문제입니다. Darts는 다양한 모델 패밀리와 데이터 형식 간의 전환 불편함을 없애고, 프로토타이핑, 비교, 배포를 빠르게 할 수 있게 해줍니다. 또한 다중 시계열 학습, 공변량, 계층적 조정, 적합 예측과 같은 고급 기능도 지원합니다.


빠른 시작 (README에서)

import pandas as pd
from darts import TimeSeries
from darts.models import ExponentialSmoothing

# CSV를 pandas DataFrame으로 로드
df = pd.read_csv("AirPassengers.csv")
# Darts TimeSeries로 변환 (시간 및 값 열 지정)
series = TimeSeries.from_dataframe(df, "Month", "#Passengers")

# 학습/검증 분할
train, val = series[:-36], series[-36:]

# 단순 지수 평활 모델 적합
model = ExponentialSmoothing()
model.fit(train)
# 검증 기간에 대한 확률적 예측 (1000개 샘플)
forecast = model.predict(len(val), num_samples=1000)

# 결과 플롯
import matplotlib.pyplot as plt
series.plot()
forecast.plot(label="forecast", low_quantile=0.05, high_quantile=0.95)
plt.legend()
plt.show()

핵심 기능 (README에 나열된 대로)

카테고리 하이라이트
예측 모델 고전적 (ARIMA, VARIMA, 지수 평활), 베이스라인 (Naïve, 이동 평균), 딥러닝 (N-BEATS, TCN, Transformer, RNN)
다변량 지원 TimeSeries는 여러 열을 보유할 수 있으며, 많은 모델이 다변량 입력을 지원합니다
글로벌 모델 학습 신경망 모델은 수십 개에서 수천 개의 시계열을 동시에 학습할 수 있습니다
확률적 출력 샘플 기반 예측 또는 모수적 분포; 신뢰 구간에 유용
공변량 과거 관측, 미래 알려진, 정적 외부 데이터를 모델에 공급 가능
이상 감지 darts.ad 모듈은 PyOD 스코어러, K-평균, 분위수 감지기 및 모든 예측 모델을 래핑하여 이상 점수를 생성합니다
백테스팅 및 평가 롤링 윈도우 예측 유틸리티, 메트릭 세트 (R², MASE 등)
설명 가능성 호환 모델에 대한 SHAP 기반 설명
계층적 조정 예측에 계층적 일관성을 강제하는 변환기
통합 PyTorch Lightning 백엔드, 선택적 MLflow 추적, Docker 이미지, Conda 패키지, pandas, polars, numpy, pyarrow, xarray와의 호환성
데이터 유틸리티 내장 데이터셋, 스케일링, 결측치 처리, 차분, Box-Cox 등

일반적인 사용 사례

  • 비즈니스 수요 예측 – 여러 제품 수준 시계열에 대한 글로벌 모델을 학습하고, 가격 또는 프로모션 공변량을 통합하고, 확률적 수요 구간을 얻습니다.
  • 에너지 부하/가격 예측 – 과거 기상 데이터(과거 공변량)와 알려진 달력 효과(미래 공변량)를 사용하여 전력 소비를 예측합니다.
  • 센서 스트림의 이상 감지 – darts.ad로 예측 모델 또는 PyOD 감지기를 래핑하여 분포에서 벗어난 동작을 플래그합니다.
  • 계층적 계획 – SKU 수준에서 예측한 다음, 카테고리 또는 총 판매 수준으로 조정합니다.
  • 연구 및 교육 – 통합 API 덕분에 새로운 시계열 아키텍처를 빠르게 프로토타이핑할 수 있습니다.

설치

# 권장: 새로운 Python 3.11+ 환경 (conda/venv/virtualenv)
pip install darts   # 모든 핵심 종속성 가져오기

GPU/TPU 지원 또는 간소화된 설치를 위해서는 저장소의 전체 INSTALL.md를 참조하세요.


더 알아보기


TL;DR

Darts는 시계열 예측 및 이상 감지를 위한 프로덕션 준비된 Pythonic 툴박스입니다. 고전 통계 방법과 최신 딥러닝 모델을 단일 scikit-learn 유사 인터페이스로 통합하고, 다변량 및 다중 시계열 학습을 지원하며, 확률적 출력을 제공하고, 인기 있는 ML 도구(PyTorch Lightning, MLflow)와 통합됩니다. 여러 라이브러리를 전환하지 않고 시계열 데이터를 신뢰할 수 있는 예측으로 전환해야 하는 모든 사람에게 이상적입니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트