roadroller変化点検出ChangeFinderのインストール&動かしてみた1こんばんは、ロードローラーです。今日は変化点検出を試したので紹介します。IoTでデータを取得できる場面は広がりました。異常?」を定義できずに悩んでいるようです。そんな状況で私が注目したのが変化点検出のChangeFinder。これは「具体的にはわからないけど何かしら変化があった。」という瞬間を検出をする処理です。閾値処理のように高周波な変化やノイズに反応しにくく、傾向の変化を捉えるので、サンプルデータを入手しにくく定義困難な異常の検出に向いています。私が実行した環境はUbuntu14.04です。以下を実行すればOKです。changefinderが、しかし、これだけでは動かないこともあります。だいたいこのあたりを追加すれば動きます。(うろ覚えでスイマセン。matplotlibサンプルソースと実行結果ガウス分布で疑似的にデータを作り出してChangeFinderするサンプルがよく公開されてます。ソースと実行結果は以下の通り。ax.twinx()ax2.plot(data,'r')plt.show()赤色がデータ値、青色がChangeFinder結果。データ値(赤色)の高周波な変動には反応せず、元となるガウス分布が変化しときにChangeFinder(青色)が反応しているのがわかります。いった「そもそものデータ発生源の傾向変化」は単純な閾値処理では検出できません。手持ちのデータに適用してみたこれだけじゃ面白くないので適当に採取したデータにChangeFinderを実行してみました。csvファイルを読み込んで実行するようにpythonプログラムを少々変更しています。'Noise')plt.subplots_adjust(hspace=0.7,bottom=0.2)plt.show()対象データは、とある楽曲演奏時のdB値を加工したものです。イントロ⇒メロ⇒サビといった雰囲気の変化を「やかましさの傾向変化」でキャッチできないかなという実験です。07:00:00と22:00:00にサビで盛り上がる場面がくるのですが、捉えられているといえば捉えられてる・・・か??ここから先はChangeFinderの3パラメータ調節が必要そうですね。このあたりはまた次回に調べてみます。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。京都の某メーカーにて機械学習・IoT・ビッグデータを扱う。