API ВЕГА
English
Пакет
Агенты
Метаданные
Тестирование
Сообщество

О skforecast-ai

Ассистент для прогнозирования, который объясняет свои решения. Передайте skforecast-ai временной ряд: он проанализирует данные, выберет модель по детерминированным правилам, проверит её и вернёт прогноз вместе со скриптом для skforecast, который этот прогноз построил. Каждое решение основано на понятном правиле, одинаковые данные всегда дают одинаковый результат, а скрипт запускается самостоятельно с обычным skforecast. При желании LLM может объяснить каждое решение, но не принимает их.

Установка

pip install skforecast-ai

Слой LLM необязателен. Чтобы использовать его, установите дополнительный набор компонентов ([bedrock] для AWS Bedrock):

pip install "skforecast-ai[llm]"

Требуется Python версии 3.10 или новее. Другие варианты описаны в руководстве по установке; инструкции по установке из исходного кода приведены в руководстве для участников.

Быстрый пример

Попробуйте без установки: в руководстве Ваш первый прогноз показан полный путь от данных до проверенного прогноза в Google Colab — API key не требуется.

from skforecast_ai import ForecastingAssistant
from skforecast.datasets import load_demo_dataset

# Download demo dataset (monthly)
data = load_demo_dataset(verbose=False)

# Profile the data, plan the model, generate the script and run it,
# evaluated on the last 12 months. No LLM needed.
assistant = ForecastingAssistant()
result = assistant.forecast(data=data, target="y", steps=12, test_size=12)

result.predictions.head()
#                 pred
# 2007-07-01  0.851486
# 2007-08-01  1.048000
# 2007-09-01  0.998147
# 2007-10-01  1.147577
# 2007-11-01  1.110845

result.metrics
#   series       MAE       MSE      MASE      MAPE
# 0      y  0.078442  0.008933  0.802828  0.088608

print(result.code)  # the skforecast script that produced this result

Этот вызов выбрал ForecasterRecursive с оценивателем Ridge, подобрал лаги и признаки временного окна, а затем запустил скрипт, который возвращает result.code. В result.profile и result.plan содержатся все принятые решения и соответствующие правила. Уберите test_size, чтобы обучить модель на всех данных и спрогнозировать следующие 12 месяцев.

Тот же процесс из терминала

# End-to-end forecast
skforecast-ai forecast data.csv --target y --date-column date --steps 12

# Only the standalone script, without running it
skforecast-ai forecast-code data.csv --target y --date-column date --steps 12 --output forecast.py

CLI охватывает весь процесс, включая ask() и запросы для refine_plan() и create_cv(). Подробнее — в разделе Работа с CLI.

Узнайте, почему (необязательная LLM)

# pip install "skforecast-ai[llm]"
assistant = ForecastingAssistant(llm="openai:gpt-5.5")

answer = assistant.ask(
    "Is the MASE good, and why was this estimator chosen?",
    context=result,
)

ask() анализирует переданный объект и объясняет его, опираясь на навыки агента skforecast. Результат при этом не меняется. Сам набор данных никуда не отправляется: в ответ передаются только прогнозы и метрики результата, о чём выводится предупреждение. Настройка провайдеров, учётных данных и локальных моделей описана в разделе Настройка LLM.

Использование из агента для программирования (MCP server)

В Claude Code установите сервер и его навык как плагин:

/plugin marketplace add skforecast/skforecast-ai
/plugin install skforecast-ai@skforecast-ai

Затем задайте вопрос обычным языком: «Спрогнозируй следующие 12 месяцев для data/sales.csv и расскажи, насколько точен прогноз». Агент использует языковую модель и вызывает skforecast-ai как набор инструментов. Все решения по-прежнему принимаются по тем же детерминированным правилам, каждый результат сопровождается породившим его скриптом, а ответы не содержат строк ваших данных. Инструкции по настройке Cursor, VS Code, Codex и Claude Desktop приведены в разделе MCP server для агентов программирования.

Ниже описан реальный сеанс Claude Code с сервером и его навыком — сокращённый пример проверки агента skforecast-ai 0.4.0. Первые три вызова объединены в одну строку, а многоточие обозначает каждое сокращение в ответе или сообщении. В полной записи сеанса показаны все вызовы, сообщения агента и его ответ целиком.

В VS Code эта кнопка добавляет сервер и запрашивает путь к каталогу с вашими данными (для работы требуется uv).

Возможности

Детерминированный механизм

  • Профилирование данных: определение частоты, пропусков, экзогенных и категориальных переменных, а также значимых лагов на основе частичной автокорреляции.

  • План с правилом для каждого решения: выбор прогнозирующей модели и оценивателя, лагов, признаков временного окна и календарных признаков, интервала прогнозирования, метрики и кросс-валидации.

  • Вы видите именно тот код, который был запущен: forecast() и backtest() выполняют тот же скрипт, который возвращают forecast_code() и backtest_code(). Его можно изучить, включить в систему контроля версий или запустить с обычным skforecast.

  • Выбор модели с помощью compare(): каждый кандидат проходит бэктестирование на одних и тех же данных и с одинаковой кросс-валидацией, а ранжирование выполняется обычной сортировкой по метрике. Для отдельного временного ряда вместе с кандидатами оценивается сезонный наивный базовый прогноз. Так можно увидеть, превосходит ли модель простейший разумный вариант прогноза.

  • Воспроизводимость: одинаковые входные данные всегда дают одинаковый профиль, план, скрипт и прогнозы.

  • Python или терминал: CLI запускает тот же процесс для CSV-файла или URL.

  • Агенты для программирования: MCP server предоставляет Claude Code, Cursor и другим MCP-клиентам инструменты для работы с тем же процессом, а навык помогает им правильно этими инструментами пользоваться. Ответы не содержат строк ваших данных.

Механизм выбирает среди прогнозирующих моделей skforecast: рекурсивных и прямых, для нескольких временных рядов и многомерных данных, статистических (ARIMA) и основанных на фундаментальных моделях.

Необязательный слой LLM

  • Объясняет прогноз, бэктест, сравнение, план или скрипт простым языком с помощью ask(), а также отвечает на общие вопросы о прогнозировании.

  • Уточняет лаги и признаки временного окна с учётом ваших знаний предметной области с помощью refine_plan(prompt=...).

  • Преобразует описание сценария развёртывания в стратегию бэктестирования с помощью create_cv(prompt=...).

  • Проверяет результат до запуска: каждый ответ LLM проверяется моделью Pydantic. Если ответ не прошёл проверку, вы получите детерминированный результат и предупреждение.

  • Поддерживает разных провайдеров через pydantic-ai: OpenAI, Anthropic, Google, Groq, AWS Bedrock, Ollama для локальных моделей и любые конечные точки, совместимые с OpenAI.

Методы

Все методы, кроме ask(), работают без LLM. Запрос всегда задаётся явно: данные не отправляются в LLM, если вы сами об этом не попросите.

МетодНазначениеLLM
profile()Анализирует данные и рекомендует прогнозирующую модель и оценивательнет
plan()Составляет план: лаги, признаки временного окна и календарные признаки, интервал, метриканет
refine_plan()Изменяет план с помощью явных переопределений или аргумента promptнеобязательно
create_cv()Создаёт стратегию кросс-валидации или преобразует аргумент prompt в такую стратегиюнеобязательно
forecast(), forecast_code()Строит прогноз или возвращает скрипт для него без запусканет
backtest(), backtest_code()Запускает бэктест или возвращает скрипт для него без запусканет
compare()Выполняет бэктестирование нескольких конфигураций и ранжирует ихнет
ask()Объясняет профиль, план, скрипт или результат либо отвечает на вопростребуется

Как это работает

В skforecast-ai есть два способа начать работу, основанных на одном механизме. Быстрый путь позволяет получить прогноз или провести бэктест одним вызовом — от передачи данных до результата. Пошаговый путь возвращает промежуточные объекты (профиль, план, кросс-валидацию), чтобы вы могли изучить их, изменить или уточнить с помощью LLM до запуска. Оба пути поддерживают прогнозирование и бэктестирование, compare() выбирает лучшую конфигурацию по измеренной эффективности, а ask() объясняет любой объект на каждом этапе.

Подробнее — в разделах Агентное прогнозирование и Пошаговое агентное прогнозирование.

Документация

Полная документация доступна на сайте https://ai.skforecast.org.

Документация
Быстрый стартУстановите skforecast-ai, выполните первый прогноз и задайте вопрос ассистенту
Агентное прогнозированиеКраткий путь: анализ данных, прогнозирование, бэктестирование, сравнение результатов и вопросы ассистенту
Пошаговое руководствоОписание промежуточных объектов и способов их изменения
Настройка LLMПровайдеры, учётные данные, локальные модели и передаваемые данные
Работа с CLIТот же процесс из командной строки
MCP-сервер для программирующих агентовТот же процесс в виде инструментов для Claude Code, Cursor и других MCP-клиентов
Справочник APIForecastingAssistant, его результаты, схемы и CLI
История выпусковИзменения в каждой версии

Часть семейства skforecast

  • skforecast: библиотека прогнозирования, на которой работает каждый прогноз в skforecast-ai. Машинное обучение, статистические и базовые модели, бэктестирование и настройка.

  • Skforecast Studio: приложение без кода для визуального создания моделей прогнозирования, которое генерирует готовый к использованию в production код Python.

Участие в проекте

Мы приветствуем сообщения об ошибках, предложения по новым функциям, код, тесты и документацию. Чтобы начать, создайте задачу в разделе GitHub Issues или ознакомьтесь с руководством по участию и кодексом поведения.

skforecast-ai создан и поддерживается Joaquín Amat Rodrigo и Javier Escobar Ortiz при участии всех, кто внёс вклад в проект (о проекте).

Цитирование

Если вы используете skforecast-ai в научной публикации, укажите версию, которую использовали: для каждой версии на Zenodo доступны отдельный DOI и готовые варианты цитирования. Чтобы сослаться на skforecast-ai в целом, используйте DOI, который всегда ведёт на последний выпуск.

APA:

Amat Rodrigo, J., & Escobar Ortiz, J. skforecast-ai [Computer software]. https://doi.org/10.5281/zenodo.21338159

BibTeX:

@software{skforecast-ai,
  author  = {Amat Rodrigo, Joaquin and Escobar Ortiz, Javier},
  title   = {skforecast-ai},
  license = {Apache-2.0},
  url     = {https://ai.skforecast.org/},
  doi     = {10.5281/zenodo.21338159}
}

Метаданные для цитирования также доступны в файле CITATION.cff (кнопка GitHub «Cite this repository»).

Спонсорство и финансирование

skforecast-ai разрабатывает команда skforecast. skforecast — бесплатное программное обеспечение с открытым исходным кодом, которое поддерживают Sovereign Tech Fund и организации-спонсоры. Если ваша компания использует skforecast или skforecast-ai, ознакомьтесь с разделом Спонсорство и финансирование: там описаны уровни спонсорства, соглашения о поддержке, финансирование разработки функций и обучение.

Частные лица могут поддержать проект через Open Collective, Buy Me a Coffee, GitHub Sponsors (Joaquín Amat Rodrigo, Javier Escobar Ortiz) или PayPal.

Лицензия

Программное обеспечение skforecast-ai: Apache License 2.0. Базовый движок skforecast распространяется по отдельной лицензии BSD-3-Clause License.

Документация skforecast-ai: CC BY-NC-SA 4.0

Товарный знак: товарный знак skforecast зарегистрирован в Ведомстве Европейского союза по интеллектуальной собственности (EUIPO), номер заявки — 019109684. Использование этого товарного знака, его логотипа или любых связанных с ним элементов фирменного стиля без прямого согласия владельца строго запрещено.