Volver a actualizaciones
Nuevo releaseSep 6, 2026

darts v0.47.0

Una librería de Python fácil de usar para la previsión y detección de anomalías en series temporales.

Compartir

Series Temporales Fáciles en Python

darts


PyPI version Conda Version Supported versions Docker Image Version (latest by date) GitHub Release Date GitHub Workflow Status Downloads Downloads codecov Code style: black Join the chat at https://gitter.im/u8darts/darts

Darts es una biblioteca de Python para el pronóstico y la detección de anomalías en series temporales de forma sencilla. Contiene una variedad de modelos, desde clásicos como ARIMA hasta redes neuronales profundas. Todos los modelos de pronóstico se pueden usar de la misma manera, utilizando las funciones fit() y predict(), de forma similar a scikit-learn. La biblioteca también facilita el backtesting de modelos, la combinación de las predicciones de varios modelos y la consideración de datos externos. Darts admite tanto series temporales y modelos univariantes como multivariantes. Los modelos basados en ML se pueden entrenar con conjuntos de datos potencialmente grandes que contienen múltiples series temporales, y algunos de los modelos ofrecen un amplio soporte para el pronóstico probabilístico.

Darts también ofrece amplias capacidades de detección de anomalías. Por ejemplo, es trivial aplicar modelos PyOD sobre series temporales para obtener puntuaciones de anomalía, o envolver cualquiera de los modelos de pronóstico o filtrado de Darts para obtener modelos de detección de anomalías completamente funcionales.

Documentación

Introducciones de Alto Nivel

Artículos sobre Temas Seleccionados

Instalación Rápida

Recomendamos configurar primero un entorno de Python limpio para tu proyecto con Python 3.11+ usando tu herramienta favorita (conda, venv, virtualenv con o sin virtualenvwrapper).

Una vez que tu entorno esté configurado, puedes instalar darts usando pip:

pip install darts

Para más detalles, puedes consultar nuestras instrucciones de instalación.

Ejemplo de Uso

Pronóstico

Crea un objeto TimeSeries a partir de un DataFrame de Pandas y divídelo en series de entrenamiento/validación:

import pandas as pd
from darts import TimeSeries

# Read a pandas DataFrame
df = pd.read_csv("AirPassengers.csv", delimiter=",")

# Create a TimeSeries, specifying the time and value columns
series = TimeSeries.from_dataframe(df, "Month", "#Passengers")

# Set aside the last 36 months as a validation series
train, val = series[:-36], series[-36:]

Ajuste un modelo de suavizado exponencial y realice una predicción (probabilística) sobre la duración de la serie de validación:

from darts.models import ExponentialSmoothing

model = ExponentialSmoothing()
model.fit(train)
prediction = model.predict(len(val), num_samples=1000)

Representa la mediana, los percentiles 5 y 95:

import matplotlib.pyplot as plt

series.plot()
prediction.plot(label="forecast", low_quantile=0.05, high_quantile=0.95)
plt.legend()
ejemplo de pronóstico de darts

Detección de anomalías

Carga una serie multivariante, recórtala, conserva 2 componentes, divide los conjuntos de entrenamiento y validación:

from darts.datasets import ETTh2Dataset

series = ETTh2Dataset().load()[:10000][["MUFL", "LULL"]]
train, val = series.split_before(0.6)

Construye un scorer de anomalías k-means, entrénalo con el conjunto de entrenamiento y úsalo en el conjunto de validación para obtener puntuaciones de anomalía:

from darts.ad import KMeansScorer

scorer = KMeansScorer(k=2, window=5)
scorer.fit(train)
anom_score = scorer.score(val)

Construye un detector de anomalías binario y entrénalo con las puntuaciones de entrenamiento, luego úsalo con las puntuaciones de validación para obtener una clasificación binaria de anomalías:

from darts.ad import QuantileDetector

detector = QuantileDetector(high_quantile=0.99)
detector.fit(scorer.score(train))
binary_anom = detector.detect(anom_score)

Trazar (desplazando y escalando algunas de las series para que todo aparezca en la misma figura):

import matplotlib.pyplot as plt

series.plot()
(anom_score / 2. - 100).plot(label="computed anomaly score", c="orangered", lw=3)
(binary_anom * 45 - 150).plot(label="detected binary anomaly", lw=4)
ejemplo de detección de anomalías de darts

Características

  • Modelos de Pronóstico: Una gran colección de modelos de pronóstico tanto para tareas de regresión como de clasificación; desde modelos estadísticos (como ARIMA) hasta modelos de aprendizaje profundo (como N-BEATS). Consulte los modelos de pronóstico a continuación.

Categorías