_時系列_データの異常検知のためのツールとデータセットのリスト。
すべてのリストはアルファベット順です。リスト内では、メンテナンスされていないプロジェクトよりもメンテナンスされているプロジェクトが優先されます。 リポジトリは、最新のコミットが1年以上前である場合、または作者によって明示的に記載されている場合、「メンテナンスされていない」と見なされます。
🎓 このコレクションが役に立ち、引用したい場合は、引用ポリシーに従ってください。
| 名前 | 言語 | 説明 | ライセンス | メンテナンス状況 |
|---|---|---|---|---|
| CuebookのCueObserve | Python3 | SQLデータウェアハウスとデータベースでの異常検知。 | Apache-2.0 | ✔️ |
| YahooのEGADS | Java | EGADSは、多くのユースケースに適用可能な多数の異常検知手法を単一のパッケージに含むライブラリで、依存関係はJavaのみである。 | GPL | ✔️ |
| AIStreamのflow-forecast | Python | 時系列予測、分類、異常検知のためのPyTorch深層学習ライブラリ(元々は洪水予測用)。 | GPL-3 | ✔️ |
| Hastic | Python + node.js | GrafanaベースのUIを備えた時系列データ用の異常検知ツール。 | GPL | ✔️ |
| ZillowのLuminaire | Python | Luminaireは、時系列データに対してML駆動の異常検知および予測ソリューションを提供するPythonパッケージである。 | Apache-2.0 | ✔️ |
| MIDAS | C++ | Microcluster-Based Detector of Anomalies in Edge Streamsの略であるMIDASは、エッジストリームから一定の時間とメモリでマイクロクラスター異常を検出する。 | Apache-2.0 | ✔️ |
| Orion | Python | Orionは教師なし時系列異常検知のために構築された機械学習ライブラリで、稀なパターンを特定して専門家によるレビューにフラグを付ける「検証済み」MLパイプライン(別名Orionパイプライン)を多数提供する。 | MIT | ✔️ |
| OutlierDetection.jl | Julia | Juliaによる高速、スケーラブル、柔軟な外れ値検出。 | MIT | ✔️ |
| PyOD | Python | PyODは、多変量データ内の外れ値オブジェクトを検出するための包括的かつスケーラブルなPythonツールキットである。 |
このセクションには、予測、一般的な時系列分析、ラベリングなど、異常検知に関連するタスクのための時系列ソフトウェアが含まれている。
NABは、ストリーミング・リアルタイムアプリケーションにおける異常検知アルゴリズムを評価するための新しいベンチマークである。50以上のラベル付きの実世界および人工の時系列データファイルと、リアルタイムアプリケーション向けに設計された新しいスコアリングメカニズムで構成されている。
このデータセットは、異常点がタグ付けされた実データおよび合成データの時系列で構成されている。外れ値や変化点を含むさまざまな異常タイプの検出精度をテストする。
SKAB(Skoltech Anomaly Benchmark)は、異常検知アルゴリズムを評価するために設計されている。このベンチマークには現在、30以上のデータセットと、アルゴリズム評価のためのPythonモジュールが含まれている。各データセットは、テストベッドに設置されたセンサーから収集された多変量時系列を表している。外れ値検出と変化点検出の問題を解く結果を評価するために、すべてのインスタンスにラベルが付けられている。
このデータセットは、グラウンドトゥルースラベル付きのインターネット企業の多くの実シナリオからのKPI(重要業績評価指標)時系列データで構成されている。より詳細な説明については、以下をクリック。
このデータセットは、グラウンドトゥルースラベル付きのインターネット企業の多くの実シナリオからのKPI(重要業績評価指標)時系列データで構成されている。KPIは、サービスKPIとマシンKPIの2つの大きなカテゴリに分類される。サービスKPIは、ページ応答時間、ページビュー、接続エラー数など、Webサービスの規模と品質を反映するパフォーマンスメトリクスである。マシンKPIは、CPU使用率、メモリ使用率、ディスクIO、ネットワークカードスループットなど、マシン(サーバー、ルーター、スイッチ)の健全性を反映するパフォーマンス指標である。
データセットの説明:
異常検知アルゴリズムをトレーニングするために、提供されるトレーニング用KPIデータを表1に示す。これには、KPI ID、タイムスタンプ、その時点のKPIの値、その時点が異常であるかどうか(ラベル)の4つの列が含まれる。
表1 トレーニング用KPIデータの例
このリポジトリを引用したい場合は、次のDOIを使用してください:
または次のBibTexを使用してください
@article{medico2020,
title={rob-med/awesome-TS-anomaly-detection},
DOI={10.5281/zenodo.3972944},
abstractNote={A collection of tools and datasets for anomaly detection on time-series data.},
publisher={Zenodo}, author={Roberto Medico}, year={2020}, month={Aug}}
| BSD 2-Clause |
| ✔️ |
| ruptures | Python | Rupturesはオフラインの変化点検出のためのPythonライブラリである。このパッケージは非定常信号の分析とセグメンテーションのための手法を提供する。 | BSD 2-Clause | ✔️ |
| EarthGeckoのSkyline | Python3 | Skylineは、数十万のメトリクスのパッシブモニタリングを可能にするために構築されたリアルタイム異常検知システムである。 | MIT | ✔️ |
| Expedia.comのAdaptive Alerting | Java | 自動モデル選択とフィッティングによるストリーミング異常検知。 | Apache-2.0 | ❌ |
| ArundoのADTK | Python | Anomaly Detection Toolkit(ADTK)は、教師なし/ルールベースの時系列異常検知のためのPythonパッケージである。 | MPL 2.0 | ❌ |
| TwitterのAnomalyDetection | R | AnomalyDetectionは、統計的な観点から、季節性と基礎となるトレンドが存在する場合に頑健な異常検知を行うためのオープンソースのRパッケージである。 | GPL | ❌ |
| LyticsのAnomalyzer | Go | Anomalyzerは、通常は時系列である数値入力の特定のセットに異常な挙動が含まれる確率を算出する一連の統計テストを実装している。 | Apache-2.0 | ❌ |
| banpei | Python | 時系列のための外れ値検出(ホテリング理論)と変化点検出(特異スペクトル変換)。 | MIT | ❌ |
| Ele.meのbanshee | Go | 周期的なメトリクスのための異常検知システム。 | MIT | ❌ |
| CAD | Python | ストリーミングデータ上のリアルタイム異常検知のための文脈的異常検知(2016年のNABコンペティションの受賞アルゴリズム)。 | AGPL | ❌ |
| Chaos Genius | Python | 外れ値/異常検知と根本原因分析のためのML駆動の分析エンジン。 | MIT | ❌ |
| Mentatのdatastream.io | Python | Python、Elasticsearch、Kibanaを使用したリアルタイム異常検知のためのオープンソースフレームワーク。 | Apache-2.0 | ❌ |
| DeepADoTS | Python | 時系列データの異常検知のための7つの深層学習ベースの手法の実装と評価。 | MIT | ❌ |
| Donut | Python | Donutは、変分オートエンコーダに基づく季節性KPIのための教師なし異常検知アルゴリズムである。 | - | ❌ |
| LoudML | Python | Loud MLはTensorFlow上に構築されたオープンソースの時系列推論エンジンである。データの予測、外れ値の検出、将来の知識を使用したプロセスの自動化に役立つ。 | MIT | ❌ |
| Linkedinのluminol | Python | Luminolは時系列データ分析のための軽量なPythonライブラリである。サポートする2つの主要機能は異常検知と相関分析である。異常の考えられる原因を調査するために使用できる。 | Apache-2.0 | ❌ |
| NumentaのNupic | C++ | Numenta Platform for Intelligent Computingは、階層的一時記憶(HTM)の実装である。 | AGPL | ❌ |
| oddstream | R | oddstream(Outlier Detection in Data Streams)は、大規模なストリーミング時系列データのコレクション内の異常な系列を早期に検出するためのリアルタイムサポートを提供する。 | GPL-3 | ❌ |
| PyOdds | Python | PyODDSは、データベースサポート付きの外れ値検出のためのエンドツーエンドのPythonシステムである。PyODDSは静的データと時系列データの両方をサポートする外れ値検出アルゴリズムを提供する。 | MIT | ❌ |
| PySAD | Python | PySADは、さまざまなオンラインモデルと実験のための完全なツールセットを備えたストリーミング異常検知フレームワークである。 | BSD 3-Clause | ❌ |
| rrcf | Python | ストリーム上の異常検知のためのRobust Random Cut Forestアルゴリズムの実装。 | MIT | ❌ |
| NetflixのSurus | Java | Robust Anomaly Detection(RAD)- Robust PCAの実装。 | Apache-2.0 | ❌ |
| NASAのTelemanom | Python | LSTMを使用して多変量時系列データの異常を検出するためのフレームワーク。Mars Science LaboratoryおよびSMAPミッションの宇宙船異常データと実験が含まれている。 | custom | ❌ |
| 名前 | 言語 | 説明 | ライセンス | メンテナンス状況 |
|---|
| darts | Python | dartsは、時系列の簡単な操作と予測のためのPythonライブラリである。ARIMAのような古典的なモデルからニューラルネットワークまで、さまざまなモデルが含まれている。 | Apache-2.0 | ✔️ |
| ETNA | Python | etnaは、時間的データ構造を常に念頭に置いた時系列予測と分析のためのPythonライブラリである。EDAおよび検証メソッドとともに、統一されたインターフェースを持つさまざまな予測モデルが含まれている。 | Apache-2.0 | ✔️ |
| AmazonのGluonTS | Python | GluonTSは、MXNetを中心に構築された確率的時系列モデリングのためのPythonツールキットである。GluonTSは、時系列データセットの読み込みと反復処理のためのユーティリティ、トレーニング可能な最先端モデル、独自モデルを定義するためのビルディングブロックを提供する。 | Apache-2.0 | ✔️ |
| pmdarima | Python | Rの_auto.arima_をscikit-learnフレンドリーなインターフェースで移植したもの。 | MIT | ✔️ |
| FacebookのProphet | Python/R | Prophetは時系列データを予測するための手順である。年次・週次の季節性と祝日に非線形トレンドをフィットさせる加法モデルに基づいている。 | BSD | ✔️ |
| PyFlux | Python | このライブラリは、最新の時系列モデルの豊富なラインナップと、これらのモデルに適用できる柔軟な推論オプション(頻度論的およびベイズ的)を備えている。 | BSD 3-Clause | ❌ |
| 名前 | 言語 | 説明 | ライセンス | メンテナンス状況 |
|---|
| FacebookのKats | Python | Katsは、検出、予測、特徴抽出/埋め込み、多変量分析などを含む時系列分析のワンストップショップを提供することを目指している。 | MIT | ✔️ |
| MatrixProfile | Python | マトリックスプロファイルアルゴリズムを利用した時系列データマイニングタスクを誰でも利用できるようにするPython 3ライブラリ。 | Apache-2.0 | ✔️ |
| SalesforceのMerlion | Python | Merlion:時系列インテリジェンスのための機械学習フレームワーク。ARIMAを含む複数のモデルをサポート。 | BSD 3-Clause | ✔️ |
| SaxPy | Python | SAXの一般的な実装と、異常検知のためのHOTSAX。 | GPLv2.0 | ✔️ |
| sktime | Python | 時系列を用いた機械学習のための統合フレームワーク。複数の学習問題に対する時系列モデルを構築、チューニング、検証するための専門的な時系列アルゴリズムとscikit-learn互換のツールを提供する。 | BSD 3-Clause | ✔️ |
| sktime-dl | Python | sktimeのためのTensorflow/Kerasによる深層学習の拡張パッケージ。 | BSD 3-Clause | ✔️ |
| Squey | C++ | すべての外れ値を表示しながら時系列の詳細な探索を可能にする可視化ソフトウェア。 | MIT | ✔️ |
| Tigramite | Python | Tigramiteは因果時系列分析のためのPythonパッケージである。高次元の時系列データセットから因果グラフを効率的に再構築し、得られた因果依存関係をモデル化して、因果媒介分析や予測分析に利用できる。 | GPLv3.0 | ✔️ |
| tsflex | Python | tsflexは、柔軟かつ効率的な特徴抽出・処理のための時系列ツールキットである。このパッケージは、多変量で不規則にサンプリングされた系列データに対するストライドウィンドウ特徴抽出をサポートする。 | MIT | ✔️ |
| tslearn | Python | tslearnは時系列分析のための機械学習ツールを提供するPythonパッケージである。このパッケージはscikit-learn、numpy、scipyライブラリ上に構築されている。 | BSD 2-Clause | ✔️ |
| seglearn | Python | Seglearnは時系列またはシーケンスの機械学習のためのPythonパッケージである。セグメンテーション、特徴抽出、特徴処理、最終推定器のための統合パイプラインを提供する。 | BSD 3-Clause | ❌ |
| 名前 | 言語 | 説明 | ライセンス | メンテナンス状況 |
|---|
| BaiduのCurve | Python | Curveは、時系列データ上の異常にラベルを付けるのに役立つオープンソースツールである。 | Apache-2.0 | ❌ |
| MicrosoftのTaganomaly | R(Docker化されたWebアプリ) | 時系列データにタグを付けるためのシンプルなツール。単変量データと多変量データの両方に対応し、TwitterのAnomalyDetectionパッケージを使用した参照用異常予測を提供する。 | MIT | ❌ |
| KPI ID | タイムスタンプ | 値 | ラベル |
|---|
| 0 | 1503831000 | 10.8 | 0 |
| 0 | 1503831060 | 12.3 | 1 |
| ... | ... | ... | ... |
異常検知アルゴリズムを評価するために、提供されるテスト用KPIデータを表2に示す。これには、KPI ID、タイムスタンプ、その時点のKPIに対応する値の3つの列が含まれる。
表2 テスト用KPIデータの例
| KPI ID | タイムスタンプ | 値 |
|---|---|---|
| 0 | 1503831000 | 10.8 |
| 0 | 1503831060 | 12.3 |
| ... | ... | ... |