skforecast-ai について
skforecast-ai は、CSV データの時系列予測を行うツールです。決定的なルールでモデルを選び、予測を検証したうえで、その予測を生成した skforecast のスクリプトを返します。再現性のある結果が必要な利用者に適しています。オプションの LLM は判断内容を説明するだけで、判断は行いません。
主な機能
- 01頻度・欠損値・有意なラグを確認するデータ分析
- 02各判断にルールを持つ予測計画
- 03実行されたコードと一致するスクリプトの出力
- 04compare() によるバックテストベースのモデル比較
- 05LLM による結果の任意の説明機能
活用シーン
- 01CSV 形式の時系列データの予測
- 02コーディングエージェントからの予測パイプラインの実行
- 03生成されたスクリプトによる予測結果の確認
MCP 対応
MCP サーバーとして提供され、Claude Code や Cursor などの MCP クライアントに予測パイプラインをツールとして公開します。応答にはデータの行は含まれないと記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
| パッケージ | |
| エージェント | |
| メタ情報 | |
| テスト | |
| コミュニティ |
skforecast-aiについて
予測の過程も示す予測アシスタントです。 skforecast-aiに時系列データを渡すと、データの特性を分析し、決定論的なルールでモデルを選択して検証し、予測と、その予測を生成したskforecastスクリプトを返します。すべての判断は確認可能なルールに基づいており、同じデータには常に同じ結果が得られます。また、生成されたスクリプトは、skforecastだけで単独で実行できます。オプションのLLMは各判断を説明しますが、判断そのものは行いません。
毎時のシェアサイクル利用者数を36時間予測したLightGBMの結果です。保留した時間帯に対する80%予測区間と、指標を説明するask()の回答を示しています。ai.skforecast.orgのアニメーションから取得した、実際のskforecast-aiの出力です。
インストール
pip install skforecast-ai
LLM レイヤーはオプションです。使用する場合は、追加機能(AWS Bedrock の場合は [bedrock])をインストールしてください。
pip install "skforecast-ai[llm]"
Python 3.10 以降が必要です。その他のオプションについては、インストールガイドをご覧ください。ソースからインストールする場合は、コントリビューションガイドをご覧ください。
クイックサンプル
インストール不要で試せます。初めての予測では、データから検証済みの予測までを、API キーなしで Google Colab 上で実行できます。
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
この一度の呼び出しで、Ridge 推定器を使う ForecasterRecursive と、そのラグおよびウィンドウ特徴量が選択され、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 サーバー)
Claude Code では、サーバーとそのスキルをプラグインとしてインストールします。
/plugin marketplace add skforecast/skforecast-ai
/plugin install skforecast-ai@skforecast-ai
次に、自然な言葉で「data/sales.csv の次の 12 か月を予測して、精度を教えてください」と尋ねます。エージェントは言語モデルを使い、skforecast-ai をツールとして呼び出します。すべての判断は引き続き同じ決定論的なルールに基づき、すべての結果には、それを生成したスクリプトが付属します。また、応答にデータの行が含まれることはありません。Cursor、VS Code、Codex、Claude Desktop の設定については、コーディングエージェント向け MCP サーバーをご覧ください。
サーバーとそのスキルを使った Claude Code の実際のセッションです。skforecast-ai 0.4.0 のエージェントによる確認時の内容を抜粋しています。最初の 3 回の呼び出しでは 1 行が共有され、応答または回答の省略箇所はすべて省略記号で示されています。セッション全体では、すべての呼び出し、エージェントのすべてのメッセージ、および完全な回答を確認できます。
VS Code では、このボタンでサーバーを追加し、データがあるディレクトリを指定できます(uv が必要です)。
特長
決定論的なエンジン
- データプロファイリング:頻度、欠損値、外生変数とカテゴリ変数、および偏自己相関から得られる有意なラグを確認します。
- あらゆる判断にルールを設けた計画:予測器と推定器、ラグ、ウィンドウ特徴量とカレンダー特徴量、予測区間、指標、交差検証を設定します。
- 表示されるコードが実行されたコードです:
forecast()とbacktest()は、forecast_code()とbacktest_code()が返すものと同じスクリプトを実行します。内容を確認し、バージョン管理したり、skforecast だけで実行したりできます。 compare()によるモデル選択:各候補を同じデータと交差検証でバックテストし、指標をそのまま並べ替えて順位付けします。単一の系列では、季節ナイーブベースラインも候補と並べて順位付けされるため、モデルが最も単純で妥当な予測を上回るかどうかも確認できます。- 再現可能:同じ入力には、常に同じプロファイル、計画、スクリプト、予測が得られます。
- Python またはターミナル:CLI を使うと、CSV ファイルまたは URL から同じパイプラインを実行できます。
- コーディングエージェント:MCP サーバーを使うと、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 に送信されません。
| メソッド | 機能 | LLM |
|---|---|---|
profile() | データを調べ、予測器と推定器を推奨します | いいえ |
plan() | ラグ、ウィンドウ特徴量とカレンダー特徴量、予測区間、指標を含む計画を作成します | いいえ |
refine_plan() | 明示的な上書き設定、または prompt を使って計画を変更します | 任意 |
create_cv() | 交差検証戦略を作成するか、prompt をその戦略に変換します | 任意 |
forecast()、forecast_code() | 予測を実行するか、実行せずにスクリプトを返します | いいえ |
backtest()、backtest_code() | バックテストを実行するか、実行せずにスクリプトを返します | いいえ |
compare() | 複数の設定をバックテストし、順位付けします | いいえ |
ask() | プロファイル、計画、スクリプト、結果を説明するか、質問に回答します | 必須 |
仕組み
skforecast-ai には、同じエンジンを使う 2 つの利用方法があります。高速パスでは、1 回の呼び出しでデータから予測またはバックテストまで実行します。ステップごとのパスでは、中間オブジェクト(プロファイル、プラン、交差検証)がそれぞれ返されるため、実行前に内容を確認したり、変更したり、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:コード不要で視覚的に予測モデルを構築できるアプリケーションです。本番環境ですぐに使える Python コードを生成します。
貢献
バグ報告、機能リクエスト、コード、テスト、ドキュメントを歓迎します。まずはGitHub Issuesでイシューを作成するか、貢献ガイドと行動規範をお読みください。
skforecast-aiは、Joaquín Amat RodrigoとJavier Escobar Ortizが、貢献してくださったすべての方々とともに作成・保守しています(プロジェクトについて)。
引用
科学論文でskforecast-aiを使用する場合は、使用したバージョンを引用してください。各バージョンには固有のDOIがあり、Zenodoで引用情報をすぐに利用できます。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の「このリポジトリを引用」ボタン)。
スポンサーシップと資金提供
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は、出願番号019109684で欧州連合知的財産庁(EUIPO)に登録されています。所有者の明示的な同意がない限り、この商標、そのロゴ、または関連するビジュアルアイデンティティ要素を無断で使用することは固く禁じられています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。