はじめに
Katsは、Meta(旧Facebook)の研究チームによって開発されたオープンソースのツールキットで、時系列分析のために設計されています。Katsは、基本的な統計分析から高度な予測モデリング、異常検出、特徴抽出までの機能をカバーする、軽量で使いやすいフレームワークを提供します。データサイエンティストであれエンジニアであれ、Katsは時系列データをより効率的に処理し、洞察するのに役立ちます。幅広いモデルをサポートするだけでなく、豊富なチュートリアルとサンプルを提供し、ユーザーがすぐに使い始められるよう支援します。
機能一覧
- 時系列データ分析基本的な統計特性を理解し、分析する。
- 変化点検出時系列データの変化点を特定する。
- 異常検出時系列データから外れ値を検出する。
- トレンド予測将来のトレンドを予測するために複数のモデルを使用する。
- 特徴抽出と埋め込み時系列データから有用な特徴を抽出する。
- 多変量解析多変量時系列データの分析をサポート。
ヘルプの使用
設置プロセス
KatsはPyPIからインストールすることができます:
- ピップを更新した:
pip install --upgrade pip
- カツをインストールする:
pip install kats
- Katsの機能の一部だけが必要な場合は、ライトバージョンをインストールすることができます:
MINIMAL_KATS=1 pip install kats
使用ガイドライン
時系列データ分析
- 必要なライブラリとデータをインポートする:
import pandas as pd
from kats.consts import TimeSeriesData
from kats.models.prophet import ProphetModel, ProphetParams
# 读取数据
air_passengers_df = pd.read_csv("path/to/air_passengers.csv", header=0, names=["time", "passengers"])
air_passengers_ts = TimeSeriesData(air_passengers_df)
- 予測モデルの作成とトレーニング
params = ProphetParams(seasonality_mode='multiplicative')
model = ProphetModel(air_passengers_ts, params)
model.fit()
- 予想を立てよう:
forecast = model.predict(steps=30, freq="MS")
変化点検出
- 変化点検出アルゴリズムの導入
from kats.detectors.cusum_detection import CUSUMDetector
# 模拟时间序列数据
df_increase = pd.DataFrame({'time': pd.date_range('2019-01-01', '2019-03-01'), 'value': np.random.randn(60).cumsum()})
ts = TimeSeriesData(df_increase)
# 进行变化点检测
detector = CUSUMDetector(ts)
change_points = detector.detector()
異常検出
- 異常検知アルゴリズムをインポートする:
from kats.detectors.bocpd import BOCPDetector
# 使用模拟数据进行异常检测
detector = BOCPDetector(ts)
anomalies = detector.detector()
使用上の推奨事項
- データ前処理:時系列データがクリーンであることを確認し、欠損値や外れ値に対処して分析の精度を向上させる。
- モデルの選択:データの特性に応じて適切なモデルを選択します。katsはいくつかのモデルを提供しており、実験を通じて最適なモデルを見つけることができます。
- 視覚化:Katsのビルトイン視覚化機能を使用して、データのパターンやモデルのパフォーマンスを理解することができます。
- 性能評価:モデルを適用する前に、さまざまなモデルの性能を評価し、最適なハイパーパラメータを選択する。
よくある問題への対応
- インストールに関する問題:インストール中に依存関係の衝突が発生した場合は、仮想環境でのインストールを試すか、Katsの公式GitHubページのFAQを確認してください。
- データ形式の問題:データ形式がKatsが期待するものと異なる場合、エラーになることがあります。データのカラム名が正しく、データ型が必要なものであることを確認してください。
- パフォーマンスの問題:大規模なデータセットの場合、データのサンプリングを検討するか、より効率的なモデルを使用して計算時間を短縮する。