這是吳恩達機器學習的最後一課,此次學習的內容是機器學習的常見應用,異常檢測與協同過濾。課程中介紹的異常檢測主要基於 正態分佈,用於檢測出偏離正常值的數據。而協同過濾是 推薦系統 的一部分,利用已有用戶的評分來給你推薦商品、視頻等。git
點擊 課程視頻 你就能不間斷地學習 Ng 的課程,關於課程做業的 Python 代碼已經放到了 Github 上,點擊 課程代碼 就能去 Github 查看( 沒法訪問 Github 的話能夠點擊 Coding 查看 ),代碼中的錯誤和改進歡迎你們指出。github
如下是 Ng 機器學習課程第八週的筆記。算法
一般使用異常檢測的狀況是在一個含有正常和異常的數據集中,異常樣本數目遠小於正常樣本數目,使得沒法從異常數據中提取有效的特徵。因而只能經過學習正常數據的分佈來識別異常數據。具體來講,咱們經過數據學習一個機率模型 ,並經過一個閾值
來判斷數據是否異常。從直觀上來理解正常數據雖然因爲偏差等緣由有所偏離,但基本都還在一個區域範圍內,而異常數據則會離這個區域比較遠( 以下圖,紅圈裏的能夠看作異常值 )。機器學習
在異常檢測中,假設特徵是相互獨立的並且服從正態分佈 ,因此:ide
而後咱們只要經過數據計算 和
就能夠獲得
了,因而有以下算法:函數
- 選擇有助於區分異常數據的特徵
- 分別計算
:
- 對於須要檢測異常的數據
計算
,若是
則判斷爲異常。
算法在特徵比較多時計算效率比較高,並且在一般狀況下即便特徵不獨立也可以獲得比較好的結果。若是特徵比較少而且特徵之間又相互關聯的狀況,這時候咱們可使用 多元正態分佈 來做爲模型,此時 爲:學習
式中的 爲 協方差矩陣,在以前的課程筆記中有提到。.net
因爲咱們的數據有 偏斜類 的問題,因此須要用 查準率 和 召回率 的結合 指數來評價模型,並選取
取最大時對應的
做爲閾值。3d
假設咱們有 部影片,而且有
位用戶對於其中一些影片的評價
。cdn
預測的評分 ,值得注意的是
都是未知的,它們都是須要學習的變量。
肯定了學習模型,下一步就是要設定 代價函數。此次的 代價函數 和以前基本相同,不一樣的是在計算梯度的時候 都須要求。下面直接給出 代價函數:
經過簡單的求導能夠獲得梯度公式:
和以前的學習算法相同,咱們只須要實現 代價函數 的部分並計算梯度值,調用 minimize 函數來獲取最優解就能夠了。有了 的值,咱們就可以獲得預測的評分,經過評分高低就可以進行推薦啦。
吳恩達機器學習課程做爲對機器學習基本的瞭解仍是不錯的。可是課程的內容比較老,像 深度學習、強化學習 等內容都沒有涉及,缺少機率方面的視角,工程方面也只是提了一點點,這些也正是從此須要繼續學習的內容。 當駛向 機器學習之海 的時候,感受心中有一個方向很重要,即使它有多麼的不切實際。
So~,第八週的內容就是這些了,謝謝你們耐心閱讀。