問題の背景: 私は、IT監視スペースで見つかったログファイルに似たログファイルを含むプロジェクトに取り組んでいます(ITスペースを最もよく理解しています)。これらのログファイルは時系列データであり、さまざまなパラメーターの数百/数千の行に編成されています。各パラメーターは数値(浮動)であり、各時点に重要な値またはエラー値があります。私の仕事は、異常検出(スパイク、フォール、一部のパラメーターが同期していない異常なパターン、奇妙な1次/ 2次などの派生動作など)のためにログファイルを監視することです。
同様の課題で、SplunkとPrelertを試しましたが、現在はオープンソースのオプションを検討しています。
制約: よく知っているのでPythonに限定しています。Rへの切り替えと関連する学習曲線を遅らせたいと思っています。R(または他の言語/ソフトウェア)に対する圧倒的なサポートがないように思われない限り、このタスクのためにPythonに固執したいと思います。
また、私は今のところWindows環境で作業しています。Windowsで小さなログファイルをサンドボックス化し続けたいのですが、必要に応じてLinux環境に移行できます。
リソース: 結果として行き止まりで以下をチェックアウトしました。
Pythonや不正検出のための機械学習アルゴリズムを実装するためのR。ここの情報は役立ちますが、残念ながら、適切なパッケージを見つけるのに苦労しています:
Twitterの「AnomalyDetection」はRにあり、Pythonに固執したいと思います。さらに、Pythonポートの特異性は、Windows環境での実装で問題を引き起こすようです。
私の次の試みであるSkylineは、(GitHubの問題から)ほぼ廃止されたようです。オンラインがあまりサポートされていないように思えるので、私はこれについて深く掘り下げていません。
scikit-learn私はまだ調査中ですが、これははるかにマニュアルのようです。草むらのアプローチは私には問題ありませんが、学習ツールの私のバックグラウンドは弱いので、Splunk + Prelertに似たアルゴリズムのような技術的側面のブラックボックスのようなものが欲しいです。
問題の定義と質問: パッケージまたはライブラリを介してPythonの時系列ログファイルからの異常検出プロセスを自動化するのに役立つオープンソースソフトウェアを探しています。
- そのようなことは、当面のタスクを支援するために存在しますか、それとも私の心の中に想像上のものがありますか?
- 背景の基礎や概念など、目標を達成するための具体的な手順を誰でも支援できますか?
- これは、尋ねるのに最適なStackExchangeコミュニティですか、それともStats、Math、またはSecurityまたはStackoverflowがより良いオプションですか?
EDIT [2015年7月23日] に最新のアップデートがありますpyculiarityをしているように見える固定 Windows環境のために!私はまだ確認していませんが、コミュニティにとって別の便利なツールになるはずです。
編集[2016-01-19] マイナーアップデート。これに取り組む時間はありませんでしたが、特定の詳細な研究を続ける前に、この問題の基礎を理解するために一歩後退しています。たとえば、私が取っている2つの具体的な手順は次のとおりです。
異常検出のためのWikipedia記事[ https://en.wikipedia.org/wiki/Anomaly_detection ] から始めて、完全に理解し、[ https://などの他のリンクされたWikipedia記事の概念階層を上下に移動しますen.wikipedia.org/wiki/K-nearest_neighbors_algorithm ]、その後に、[ https://en.wikipedia.org/wiki/Machine_learning ]。
Chandola et al 2009 "Anomaly Detection:A Survey" [ http://www-users.cs.umn.edu/~banerjee/papers/09/anomaly.pdf ]およびHodge et al 2004 によって行われたすばらしい調査でのテクニックの調査「異常値検出方法の調査」[ http://eprints.whiterose.ac.uk/767/1/hodgevj4.pdf ]。
概念がよく理解されたら(実用的な側面を開発するために、おもちゃの例を試してみたい)、どのオープンソースPythonツールが私の問題により適しているかを理解したいと思っています。