2017-07-06 83 views
0

我的時間一定時間與時間戳跟蹤多個信號和關聯他們像以下:異常檢測用機器學習沒有標籤

t0 1 10 2 0 1 0 ... 
t1 1 10 2 0 1 0 ... 
t2 3 0 9 7 1 1 ... // pressed a button to change the mode 
t3 3 0 9 7 1 1 ... 
t4 3 0 8 7 1 1 ... // pressed button to adjust a certain characterstic like temperature (signal 3) 

其中T0是夯實郵票,1是用於信號的值1,信號2的值等等。

在該特定時間段內捕獲的數據應視爲正常情況。現在應該從正常情況下檢測重要的推導。有了重要的推導,我並不是說一個信號值就會變成一個在追蹤階段沒有看到的值,而是很多值相互之間沒有變化的值。我不想硬編碼規則,因爲將來可能會添加或刪除更多的信號,並且可能會實施其他信號值的其他「修改」。

這可以通過某種機器學習算法來實現嗎?如果發生小的推導,我希望該算法首先將其視爲對訓練集的小改動,如果將來出現多次,則應該「學習」。主要目標是檢測更大的變化/異常。

我希望我能解釋我的問題足夠詳細。提前致謝。

回答

1

你可以在你的特徵空間中計算最近的鄰居,並設置一個閾值,它允許遠離你的測試點,而不是一個異常。

比方說,你在你的「一定的時間」有100個價值觀

讓你用一個100維特徵空間與你的訓練數據(其中不包含異常)

如果你得到一個您要測試的新數據集,您計算(k)最近鄰居(s)並計算您的特徵空間中的(例如歐幾里得)距離。

如果該距離大於某個閾值,這是一個異常。 爲了優化你需要做的是找到一個好的k值和一個好的閾值。例如。通過網格搜索。

(1)請注意,如果您的數據具有固定的起點和終點,那麼類似這樣的事情可能只會有效。否則,你將需要大量的數據,甚至比它表現不佳。

(2)注意應該值得嘗試爲您在問題中提到的每個「模式」創建一個自己的探測器。