質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1774閲覧

多変量の時系列データにおける異常検知(教師なし)を実現するpythonのライブラリはありますか?

shinjukuzame

総合スコア12

scikit-learn

scikit-learnは、Pythonで使用できるオープンソースプロジェクトの機械学習用ライブラリです。多くの機械学習アルゴリズムが実装されていますが、どのアルゴリズムも同じような書き方で利用できます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/05/07 02:14

編集2020/05/07 04:03

多変量の時系列データにおける異常検知(教師なし)を実現するライブラリはありますか?

現在、サーバの障害検知の一環としてCPU/メモリ/ディスクIO等を入力データとした異常検知(変化点検出もしくは異常部位検出)を検討しています。

Webを検索すると、さまざまな実装例が出てくるのですが、心電図データの1変量の事例が多く、多変量の時系列データの事例が少なく困っております。

私の調べ方の問題かもしれませんが、多変量の場合、Rの実装例が多くヒットします。
当方、Rの経験がないため途方に暮れております。

時系列データにおける異常検知を実施するにあたって

  • 変化点検出もしくは異常部位検出
  • 教師なし
  • Pythonで実行可能
  • 1変数ではなく多変量での分析が可能

なライブラリをご存じの方、教えていただけますでしょうか。

もしライブラリが存在するのであれば、
実装例等の記載のあるWebサイトや書籍、検証しやすいデータセット等 の情報があるととても助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

多変量と1変量は、基本的に同じ方法論が適用できるので、すでにみつけているものを応用する方向で検討してはいかがでしょうか。
応用の方向性は2パターンあります。1つは、各変量を独立して異常値検知し、どれか一つでも異常と判定されたら異常とするというものです。これなら、単変量の異常値検知を変量分実装すればいいので簡単ですもう1つは、多変量を統合してひとつの変量に置き換えてから1変量の異常値検知を適用するというものです。
どちらが有益かは試してみないとわからないので、いろいろと試行錯誤してみてください。

投稿2020/05/07 17:31

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shinjukuzame

2020/05/08 05:01

> もう1つは、多変量を統合してひとつの変量に置き換えてから1変量の異常値検知を適用する これについて、次元削減して1変量に(=目標次元数:1に削減)して分析する という理解でよろしいでしょうか。 これは確かに盲点でした。ありがとうございます! もう一つ、調べていてk-NNで異常検知する際に、ウィンドウの中に複数の変数を入れ込んでしまう https://stackoverflow.com/questions/48003185/sklearn-dimensionality-issues-found-array-with-dim-3-estimator-expected-2?rq=1 というのも調べたら見つかりました。(2次元データしか扱えないsklearnのK-NNで3次元以上の分析をする際のアプローチとして記載がありました) 多変量の時系列データにおける異常検知(教師なし)を実現するにあたって、もう少しほかの方のご意見も 確認したく、もう少し待たせてください。 R.Shigemori様にご提案いただいたアプローチ以外の方法をご存じの方、 いらっしゃれば 是非ご教示をお願いいたします。
R.Shigemori

2020/05/08 11:09

次元削減も選択肢のひとつです。一般的には多変量正規分布を仮定して平均ベクトルからの外れ具合を異常検知の指標とします。この外れ具合の計算方法は1変量正規分布のときと同じです。
R.Shigemori

2020/05/08 14:50

外れ具合の計算の際、各項目に相関が見られる場合はマハラノビス距離を使うほうがいいようです。マハラノビス距離を使った異常値検知の実装は以下にサンプルコードがありました。 https://qiita.com/shopetan/items/ceb7744facc21c3881d2
shinjukuzame

2020/05/11 05:21

コメントありがとうございます。 頂いた情報も活用し、勉強させていただきます。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問