吳恩達機器學習:異常檢測與協同過濾
阿新 • • 發佈:2019-01-22
這是吳恩達機器學習的最後一課,這次學習的內容是機器學習的常見應用,異常檢測與協同過濾。課程中介紹的異常檢測主要基於 正態分佈,用於檢測出偏離正常值的資料。而協同過濾是 推薦系統 的一部分,利用已有使用者的評分來給你推薦商品、視訊等。
點選 課程視訊 你就能不間斷地學習 Ng 的課程,關於課程作業的 Python 程式碼已經放到了 Github 上,點選 課程程式碼 就能去 Github 檢視( 無法訪問 Github 的話可以點選 Coding 檢視 ),程式碼中的錯誤和改進歡迎大家指出。
以下是 Ng 機器學習課程第八週的筆記。
異常檢測
通常使用異常檢測的情況是在一個含有正常和異常的資料集中,異常樣本數目遠小於正常樣本數目,使得無法從異常資料中提取有效的特徵。於是只能通過學習正常資料的分佈來識別異常資料。具體來說,我們通過資料學習一個概率模型 ,並通過一個閾值 來判斷資料是否異常。從直觀上來理解正常資料雖然由於誤差等原因有所偏離,但基本都還在一個區域範圍內,而異常資料則會離這個區域比較遠( 如下圖,紅圈裡的可以看做異常值 )。
演算法
在異常檢測中,假設特徵是相互獨立的而且服從正態分佈 ,所以:
然後我們只要通過資料計算 和 就可以得到
- 選擇有助於區分異常資料的特徵
- 分別計算 :
- 對於需要檢測異常的資料 計算 ,如果 則判斷為異常。
演算法在特徵比較多時計算效率比較高,而且在通常情況下即使特徵不獨立也能夠得到比較好的結果。如果特徵比較少並且特徵之間又相互關聯的情況,這時候我們可以使用 多元正態分佈
式中的