機器學習系列22:異常檢測

  • 2019 年 10 月 7 日
  • 筆記

現在有一個網站,為了防止該網站被人惡意攻擊,你採取了以下措施。給每個用戶建立用戶畫像,記錄他的一些操作,例如:打字速度,瀏覽時間,點擊網頁次數等等。。。可以將這些特徵建立一個模型,讓它有一個閾值,當低於這個閾值時,就可能是有人在惡意攻擊你的網站,這時候你就要小心了。就像下圖,如果超出藍圈,那這個數據就有可能發生了異常:

那麼這個模型是怎麼建立出來的呢?用到的是異常檢測演算法(Anomanly detection)。異常檢測演算法是用高斯正態分布推導出來的,方法很簡單,就是將每個特徵的高斯正態分布值相乘,得到的結果與閾值相比較,若大於這個閾值,就認為是沒有異常的。

◆◆

一個完整的異常檢測的流程大致如下:

◆◆

1.對於無標籤的樣本選取特徵;

2.每個特徵根據公式計算出高斯分布中所需要的參數 μ 和 σ^2;

3.畫出高斯分布的影像;

4.將交叉驗證集中的數據根據是否異常打上標籤;

5.在交叉驗證集中根據 F 值選擇閾值;

6.閾值選好後,將每個特徵的高斯正態分布值相乘,並與閾值進行比較,若小於閾值,則為異常數據。

◆◆

異常檢測與監督學習的比較

◆◆

當正樣本(出錯的樣本)很少時,我們就需要用到異常檢測法,而正負樣本都很多時,我們就需要用監督學習