| Пакет | |
| Агенты | |
| Метаданные | |
| Тестирование | |
| Сообщество |
О 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-клиентов |
| Справочник API | ForecastingAssistant, его результаты, схемы и 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. Использование этого товарного знака, его логотипа или любых связанных с ним элементов фирменного стиля без прямого согласия владельца строго запрещено.