MLのセンサーからの時系列データの使用


8

小さなサイドプロジェクトについて次のデータがあります。それは、洗濯機/乾燥機の上に座っている加速度計からのものであり、マシンがいつ終了したかを教えてください。

データ

xは入力データ(1つの値としてのx / y / z移動)、yはラベルのオン/オフ

y = 1とy = 0のx値は重複しているため、xとローリング3分のウィンドウをSVMの入力として使用することを考えていました。

xyz60=res.xyz.resample("60S").max()
X["x"]=xyz60
X["max3"]=xyz60.rolling(window=3, min_periods=1).max()

データ

これはこの種の問題に対する良いアプローチですか?より良い結果をもたらす可能性のある代替案はありますか?


3分のローリングウィンドウによって、3分のウィンドウからの入力を使用することを意味しますか?time = 1、2、3次にtime = 2、3、4に移動し、ラベル0/1を取得します。ウィンドウごとにオフ/オン?
StatsSorceress 2017年

@StatsSorceress基本的にはい-x値が重複しているため、ウィンドウを使用しています(更新済み)
laktak

回答:


7

加速度の測定に使用される時系列データがあります。マシンが通常の状態(OFF)と異常な状態(ON)のときに識別するもの。この問題を解決するには、異常検出アルゴリズムを使用します。しかし、この問題に対処する方法はたくさんあります。

データの準備

y=0S

S={s0,s1,...,sn}

ss

si=13k=i2ixk

xi2

y=1

これで、1クラスのデータセット(純粋なアノムレイ検出)でアルゴリズムをトレーニングするかどうかを選択できます。偏ったデータセット(異常検出)またはバランスのとれたデータセット。データセットのバランスは、データセット内の2つのクラス間の比率です。2クラス分類器の完全なデータセットは1:1です。各クラスに属するデータの50%。大量の電力を無駄にしたくない場合は、データセットに偏りがあるようです。

データセット内のインスタンスとして隣接するサンプルを分割し続けることを妨げるものは何もないことに注意してください。例えば:

xi xi1 xi2yi

これにより、現在取得されているサンプルに対して定義されている特定の出力用の3次元入力スペースが作成されます。


バイアスされたデータセット


簡単なソリューション

sy=0sy=1

s^y=1

sy=0y=1y=1

でもファンシーになりたい!

この正確なタスクを実行するために使用できる他の多くのテクニックがあります。

  • k最近傍
  • ニューラルネットワーク
  • 線形回帰
  • SVM

簡単に言えば、ほとんどすべての機械学習アルゴリズムがこの目的に適しています。それは、あなたが利用できるデータの量とその分布に依存します。


本当にSVMを使いたい


y

from sklearn import svm

X = [[0, 0, 0], [1, 1, 1], ..., [1, 0, 1]] 
y = [0, 1, ..., 1]
clf = svm.SVC()
clf.fit(X, y)  

これはモデルをトレーニングします。次に、新しいサンプルの結果を予測します。

clf.predict([[2., 2., 1]])

特定の事柄についてさらに情報が必要な場合はお知らせください。
JahKnows、2017年

1
詳細な回答の+
1-

「データの準備」に代わるものはありますか?私は古い方法とあなたの方法を3と5の入力値でテストしましたが、yが変わると常に「エッジ」で問題が発生します(1/1/1/1 /ではなくy 1/0/1/0/1のように) 1)。
laktak 2017年

端に?どういう意味かわかりません。詳しく説明していただけますか?
JahKnows 2017年

たとえば、マシンがオフになると、yは1から0にジャンプして複数回戻ることができます。終わりの時間の代わりに、私はいくつかを得ます。開始時間と終了時間だけに関心がありますが、もっと良い方法はありますか?
laktak 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.