機器學習(Coursera吳恩達)(八 其他)

機器學習(Coursera吳恩達)(八 其他)

標籤(空格分隔): 機器學習


異常檢測(anomaly detection)

異常檢測問題:假設有一個新飛機,引擎有特徵變量xtest ,異常檢測就是我們希望制導這個新的飛機引擎是否有某種異常。
給定數據集x(1),x(2)x(3),...,x(m) ,假設數據集是正常的,我們希望制導新的數據xtest 是不是異常的,即測試數據不屬於該組數據的機率。
1異常檢測.png-84.9kB

這種方式稱爲密度估計,表達式如下:
if  p(x)<ϵ   anomaly;p(x)>ϵ   normal
欺詐檢測:x(i)=i
模型p(x) 是其屬於一組數據的可能性,通過p(x)<ϵ 檢測非正常用戶。
異常檢測主要是用來識別欺騙。

算法

對於給定的數據集x(1),x(2)x(3),...,x(m) ,我們要針對每一個特徵計算μδ2 的估計值。

μj=1mi=1mxj(i)

δj2=1mj=1m(x(i)μj)2

一旦我們獲得了均值和方差的估計值,給定新的一個訓練實例,根據模型計算p(x) .
p(x)<ϵ 爲異常。
2p.png-16kB

3p.png-68.5kB

數據集選擇

4數據集.png-121.1kB
還是要用F1選擇閾值。判斷查準率和查重率。

與監督學習對比

5對比.png-102.4kB

選擇特徵

對於異常檢測算法,我們使用的特徵是至關重要的.
異常檢測假設特徵服從高斯分佈,例如使用對數函數:x=log(x+c) ,其中c 爲非負數,或者x=xc , c爲0-1之間的一個分數。

目的是讓數據特徵更接近高斯分佈。

推薦系統

引入標記:
* nu 代表用戶數
* nm 代表電影書
* r(i,j) 如果用戶j給電影i評分,則爲1
* yi,j 用戶j給電影i的評分
* mj 用戶j評分過電影的綜述

基於內容

1基於內容.png-36.9kB

  • θ(j) 表示用戶j的參數。(Rn+1 )
  • x(i) 電影i的特徵
  • 用戶j和電影i,我們預測的評分爲(θ(j))Tx(i)
  • 代價函數針對用戶j:
    2代價函數.png-10.9kB

爲了學習所有用戶,要對所有用戶的代價函數求和:
3代價函數求和.png-13kB

然後對這個總的代價函數使用梯度下降法求最優解。
4梯度下降.png-48.8kB

協同過濾

現在,我們如果沒有對每一個電影都有評價,也就是沒有電影的特徵。因爲我們很難對每一個電影都設計合適的特徵,所以在我們擁有用戶評價的情況下,需要對每個電影學習特徵。
*協同過濾:是電影特徵與用戶參數協同學習。前提是我們不知道用戶的參數θ 也不知道電影的特徵x 。我們擁有的只有用戶對電影的評分。
修改優化目標:
5協同濾波優化目標.png-30.7kB

對代價函數求偏導數:(對θx 同時最小化)
6求偏導.png-52.3kB

算法步驟:
1. 初始x(1),x(2)x(3),...,x(nm);θ(1),θ(2)θ(3),...,θ(nu)
2. 使用梯度下降法最小化代價函數
3. 在訓練完之後,我們預測(θ(j))Tx(i) 爲用戶j對電影i的預測評分。

大規模學習算法

  1. 用學習曲線確定是否我們需要打大訓練集。
  2. 隨機梯度下降法
    直接用梯度下降,對大規模系統來說每一次迭代都需要對所有數據進行誤差進行累加,那麼一次的計算量就會特別大。所以要找更快捷的方法,適用於大規模學習。
    1隨機梯度下降.png-30.9kB
    2隨機梯度下降.png-104.4kB

  3. 小批量梯度下降(Mini-batch)
    3minibatch.png-97.2kB

  4. 隨機梯度下降收斂
    4收斂1.png-149.1kB

5收斂2.png-132.3kB

6收斂3.png-200.3kB

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章