1. 程式人生 > >斯坦福大學機器學習筆記——異常檢測演算法(高斯分佈、多元高斯分佈、異常檢測演算法)

斯坦福大學機器學習筆記——異常檢測演算法(高斯分佈、多元高斯分佈、異常檢測演算法)

異常檢測問題介紹:
異常檢測演算法主要用於無監督學習問題,但從某種角度看它又類似於一種有監督學習的問題,下面我們從一個例子中簡單介紹一下什麼是異常檢測問題。
比如我們有一個飛機引擎製造商,對於一個新造出的飛機引擎我們想判斷這個引擎是不是異常的。
假如我們有兩個飛機引擎的特徵:1)引擎運轉時產生的熱量;2)引擎的震動強度。我們得到了一個數據集:x1,x2,...,xm,繪製的關於特徵的資料分佈如下圖所示:
這裡寫圖片描述
這裡的每個叉都是上述的無標籤的樣本。
異常檢測的問題可以定義如下:對於給定的資料集x1,x2,...,xm,我們假使資料集是正常的,我們希望知道新的資料xtest是不是異常的,即這個資料不屬於改組資料集的機率如何。我們所構建的模型應該能夠根據預測資料的位置告訴我們其屬於這一組資料的可能性p

(x)
這種方法稱為密度估計,表示式如下:
這裡寫圖片描述
其中,p(x)代表新來的樣本x屬於這一組資料的可能性。值得注意的是,我們假設資料集中的樣本是正常的,也就是說對於我們原來的資料集,正常的樣本應該佔據很大的比例,這樣用異常檢測的效果才會很好。
異常檢測的其他應用:
1.一些生產物件的異常檢測(飛機引擎、家電等);
2.可以用來識別欺騙。檢測使用者是否被盜號(通過使用者的行為與之前行為的區別)。

高斯分佈:
通過上述例子的解析我們知道了什麼是異常檢測,同時我們知道了對於異常檢測演算法來說,一個關鍵的問題是我們怎麼對於給定的資料集進行密度估計得到p(x)。所以我們這一節介紹一種密度估計的方法——高斯分佈。
我們先簡單介紹一下什麼是高斯分佈,通常我們認為變數x

符合高斯分佈xN(μ,σ2),則其概率密度為:
這裡寫圖片描述
其中,μσ2(引數估計問題)可以通過下式獲得:
這裡寫圖片描述
對於上式,在不同μσ2p(x)的形式如下:
這裡寫圖片描述
值得注意的是:機器學習中求取方差時,我們除以m而不是像統計學中那樣除以(m-1),其實對於除以m還是(m-1),當資料集的數量很大時,區別不是很大,但是機器學習領域的人都是習慣使用m。

異常檢測演算法:
下面我們結合異常檢測問題以及高斯分佈,給出異常檢測演算法的形式:
對於給定的資料集x(1),x(2),...,x(m),每一個樣本x(i)Rn,假設x服從高斯分佈,即x1N(μ1,σ21)x2N(μ2,σ22),..

.,xnN(μn,σ2n),我們對每一個特徵(這裡選擇的特徵是與異常具有相關屬性的特徵)計算μjσ2j
這裡寫圖片描述
獲得均值和方差之後,對於給定的一個新的樣本我們根據模型計算p(x)
這裡寫圖片描述
其中n為特徵的數量。我們將p(x)=ϵ作為判定邊界,當p(x)<ϵ則判斷為該測試樣本為異常樣本;當p(x)>ϵ則判斷該測試樣本為正常樣本。
以兩個特徵為例,看一下演算法實現的形式:
這裡寫圖片描述
上述的圓圈對應的是判定邊界,不同的圓圈大小對應的不同的ϵ值,對於測試樣本來說,如果測試樣本的位置在圓圈內部為正常樣本,在圓圈外部為異常樣本。
對應的三維圖表示形式如下,其中z軸為對應的特徵取值的密度估計p(x)
這裡寫圖片描述
z軸的值高於圓圈對應的值為正常樣本,低於圓圈對應的值為異常樣本。

開發和評價一個異常檢測演算法:
上述我們討論異常檢測演算法的實現方式,但是我們怎麼對該演算法進行評估呢?其實我們評價的方式類似於有監督方法的評估,雖然異常檢測演算法是一種無監督學習的演算法,但是評估我們可以從一些帶標籤的資料入手,具體的評估方式如下:
我們從帶標籤的資料入手,用其中一部分正常資料用於構建訓練集,然後使用剩下的正常樣本和異常樣本混合的資料構建交叉驗證集和測試集。其中的比例分配為將正常資料的60%用於訓練,構建訓練集;用20%的正常資料和50%的異常資料構建交叉驗證集;用20%的正常資料和50%的異常資料構建測試集。
評價的具體實現方法如下:
1. 根據訓練集資料,估計出特徵的均值和方差,然後構建出概率密度估計函式P(x)
2. 對交叉驗證集,我們嘗試不同的ϵ值作為閾值,並預測資料是否異常,根據F1值或者查準率與查全率的比例選擇最佳的閾值ϵ
3. 選出最佳的ϵ後,針對測試集進行預測,計算異常檢測演算法的F1值或者查準率與查全率之比。

異常檢測演算法與監督學習演算法的比較:
下面我們來比較一下異常檢測演算法和監督學習演算法:
1. 對於異常檢測演算法來說,訓練集中只有非常少量的正向類(異常資料),存在著大量的負向類(正常資料),即存在著資料類別的明顯偏斜;而對於監督學習演算法同時擁有大量的正向類和負向類樣本。
2. 對於異常檢測演算法來說,異常可能會有很多種類,但是我們只需判斷出異常即可,想要判斷出異常的種類,對於只有少量的正向類樣本的異常檢測演算法來說非常困難;對於有監督的演算法,由於存在著大量的正向類樣本,可以對正向類進一步的劃分型別。
3. 對於異常檢測演算法來說,可以判斷出未來不同的異常,也就是隻要是異常,異常檢測演算法就可以判斷出;但是對於有監督學習來說,對於未來不可知的異常,它是無法分類的。也就是說,對於異常檢測演算法,未來遇到的異常可能與已經掌握的異常非常的不同;對於有監督學習演算法來說,未來遇到的正向類樣本可能與訓練集中的非常近似。
上述異常檢測演算法的不同之處,也就確定了什麼時候我們使用異常檢測演算法,什麼時候我們使用有監督學習的演算法。

特徵的選擇:
對於異常檢測演算法,我們使用的特徵是至關重要的,下面我們討論一下怎麼選擇特徵。
1. 對於異常檢測演算法來說,我們假設特徵服從高斯分佈,所以我們在進行異常檢測之前,可以先畫出樣本的直方圖(matlab使用hist命令),如果資料滿足高斯分佈,這可以直接得出p(x),如果不滿足高斯分佈(也能夠工作,只是調整之後效果會更好),可以將資料進行調整,使其滿足高斯分佈。調整的策略一般為:取對數(x=log(x+c)c是一個實數)、取冪次(x=xcc是一個0~1的數)等方法。
2. 使用誤差分析的方法調整特徵或者增加特徵。誤差一般來自於一些異常的資料具有較高的p(x)值,我們可以分析那些被演算法錯誤預測為正常的資料,觀察能否找出一些問題。我們可能能從問題中發現我們需要增加的一些新的特徵,增加這些新的特徵後獲得的新演算法能夠幫助我們更好地進行異常檢測。
3. 我們也可以將一些相關的特徵進行組合,來獲得一些新的更好的特徵(異常資料的該特徵的值異常的大或者異常的小)。

多元高斯分佈:
上述我們使用高斯分佈建立的異常檢測演算法,有一個假設前提,那就是不同特徵之間是不相關的。如果我們有兩個相關的特徵,而且這兩個特徵的值域範圍比較寬,這種情況下,上述建立的高斯分佈模型不能很好的識別異常資料。這時候我們需要建立多元高斯分佈模型的異常檢測演算法以實現很好的異常檢測。
下面簡單的介紹一下多元高斯分佈:
在一般的高斯分佈模型中,我們計算p(x)的方法為通過分別計算每個特徵的概率值p(xj)然後將其累乘,從而得到最終的p(x)。而對於多元高斯分佈模型來說,我們將構建特徵的協方差矩陣,用所有的特徵一起計算p(x)
計算過程如下:
1. 計算所有特徵的均值,均值的計算方法過程如下:
這裡寫圖片描述

相關推薦

斯坦福大學機器學習筆記——異常檢測演算法分佈多元分佈異常檢測演算法

異常檢測問題介紹: 異常檢測演算法主要用於無監督學習問題,但從某種角度看它又類似於一種有監督學習的問題,下面我們從一個例子中簡單介紹一下什麼是異常檢測問題。 比如我們有一個飛機引擎製造商,對於一個新造出的飛機引擎我們想判斷這個引擎是不是異常的。 假如我們有

斯坦福大學機器學習筆記——聚類k-均值聚類演算法損失函式初始化聚類數目的選擇

上面的部落格的演算法都是有監督學習的演算法,即對於每個資料我們都有該資料對應的標籤,資料集的形式如下: 而今天我們學習的演算法是一種無監督學習的演算法——聚類,該演算法中的每個資料沒有標籤,資料集的形式如下: K-均值聚類 k-均值聚類是一種最常見

斯坦福大學機器學習筆記——推薦系統協同過濾低秩分解推薦系統

這個部落格讓我們來討論一下推薦系統,首先我們來討論一下為什麼學習推薦系統: 1. 推薦系統是機器學習中的一個重要應用,它已經用於很多企業中,比如淘寶、今日頭條、亞馬遜等。它們會根據你的瀏覽記錄,當你再

Machine LearningStanford| 斯坦福大學機器學習筆記--第一週1.監督學習與無監督學習的介紹

以上例子中,總共有兩個特徵,即病人年齡和腫瘤大小。在別的ML問題中,經常會用到更多特徵,別人在研究這個問題時, 通常使用如下這些特徵:比如腫瘤的厚度,腫瘤細胞大小和形狀的一致性等等。 真正對於一些學習問題,用到的不只是三五個特徵,經常要用到無數多個特徵,非常多的屬性。所以,你的學習演算法要利用很多的屬性或特徵

斯坦福大學機器學習筆記——正則化的邏輯迴歸模型

在上面部落格中我們討論了正則化的線性迴歸模型,下面我們來討論一下正則化的邏輯迴歸模型。 前面我們講述了兩種常用於邏輯迴歸的方法: 基於梯度下降法的邏輯迴歸模型 基於高階優化的邏輯迴歸模型 基於

斯坦福大學機器學習筆記——多變數的線性迴歸以及梯度下降法注意事項內有程式碼

在前面部落格中介紹了單變數線性迴歸的實現過程,本文將介紹多變數線性迴歸演算法。 兩者的對比如下: 1.資料方面的差異: 單變數線性迴歸資料: 多變數線性迴歸資料: 對於單變數線性迴歸來說,只有一個特徵(房子的大小),而對於多變數線性特徵迴歸特徵

斯坦福大學機器學習筆記——單變數的線性迴歸以及損失函式和梯度下降法包含程式碼

迴歸問題: 所謂的迴歸問題就是給定的資料集,且每個資料集中的每個樣例都有其正確的答案,通過給定的資料集進行擬合,找到一條能夠最好代表該資料集的曲線,然後對於給定的一個樣本,能夠預測出該樣本的答案(對於迴歸問題來說,最終的輸出結果是一個連續的數值)。比如

Machine LearningStanford| 斯坦福大學機器學習筆記--第二週1.多元線性迴歸及多元線性迴歸的梯度下降

一.Multivariate Linear regression(多元線性迴歸) 現在起將開始介紹一種新的更為有效的線性迴歸形式。這種形式適用於多個變數或者多特徵量的情況。 在之前學習過的線性迴歸中

斯坦福大學機器學習筆記——特徵和多項式迴歸以及正規方程

我們可以舉一個例子來引入多項式迴歸: 比如我們之前遇到的房價問題,對於房價的影響我們假設有兩個特徵,一個是房子的寬度x1,另外一個是房子的長度x2,這針對房價的估測我們可以建立下面形式的假設: hθ

斯坦福大學機器學習筆記——邏輯迴歸高階優化以及多分類問題

shi先簡單說一下邏輯迴歸,其實會有很多人誤解,會將邏輯迴歸當成迴歸演算法,其實邏輯迴歸就是我們所說的分類問題,所謂的邏輯,一般我們說的邏輯就是邏輯0或者邏輯1,所以可以藉此理解。但是邏輯迴歸不僅僅只包括兩分類問題,它還包括多分類問題。 那麼能否使用線性迴歸的

斯坦福大學機器學習筆記——機器學習系統設計誤差分析查全率和查準率F1值

這次部落格我們主要討論機器學習系統設計的主要問題,以及怎樣巧妙的構建一個複雜的機器學習系統。 我們先用一個例子引入機器學習系統的設計: 以一個垃圾郵件分類器演算法為例: 對於該問題,我們首先要做的是怎樣選擇並且表達特徵向量x。我們可以選擇100個詞所構

斯坦福CS229機器學習筆記-Lecture8- SVM支援向量機 之核方法 + 軟間隔 + SMO 演算法

作者:teeyohuang 本文系原創,供交流學習使用,轉載請註明出處,謝謝 宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來           博文中部分圖片和公式都來源於CS229官方notes。      

吳恩達斯坦福大學機器學習 CS229 課程學習筆記

說到機器學習總繞不過幾個鼎鼎大名的人物,他們都創造了不少的機器學習資料,斯坦福吳恩達Andrew Ng的公開課CS229;Google李飛飛的CS231、周志華的、李航的《統計學習方法》、林軒田的《機器學習基石》、Peter Harringtond 的《機器學習實戰》、周志華

斯坦福大學機器學習——EM演算法求解混合模型

EM演算法(Expection-Maximizationalgorithm,EM)是一種迭代演算法,通過E步和M步兩大迭代步驟,每次迭代都使極大似然函式增加。但是,由於初始值的不同,可能會使似然函式陷入區域性最優。辜麗川老師和其夫人發表的論文:基於分裂EM演算法的GMM引數

斯坦福大學機器學習課程第二周筆記

線性 line bili tla oct linear 基礎語 大學 學習 簡記 軟件安裝 Octave matlab 多元線性回歸multiple linear regression 多元梯度下降 特征縮放feature scaling 學習速率learning

斯坦福2014機器學習筆記七----應用機器學習的建議

訓練集 image 是的 bsp 推斷 學習曲線 正則 偏差 wid 一、綱要   糾正較大誤差的方法   模型選擇問題之目標函數階數的選擇   模型選擇問題之正則化參數λ的選擇   學習曲線 二、內容詳述   1、糾正較大誤差的方法   當我們運用訓練好了的模型來做預測時

斯坦福大學機器學習第一課“引言(Introduction)”

一、機器學習概覽1)機器學習定義:機器學習是人工智慧的一個分支,目標是賦予機器一種新的能力。機器學習的應用很廣泛,例如大規模的資料探勘(網頁點選資料,醫療記錄等),無人駕駛飛機、汽車,手寫手別,大多數的自然語言處理任務,計算機視覺,推薦系統等。 機器學習有很多定義,廣為人知的有如下兩條: Arthur

斯坦福大學深度學習筆記:邏輯迴歸

z 邏輯迴歸(LOGISTIC REGRESSION)            Logistic regression (邏輯迴歸)是當前業界比較常用的機器學習方法,用於估計某種事物的可能性。之前在經典之作《數學之美》中也看到了它用於廣告預測,也就是根據某廣告被使用者點選的可

斯坦福大學深度學習筆記:神經網路

神經網路演算法在八十到九十年代被廣泛使用過, 20世紀90年代,各種各樣的淺層機器學習模型相繼被提出,例如支撐向量機(SVM,Support Vector Machines)、 Boosting、最大熵方法(如LR,Logistic Regression)等。但之後便使用的變少了。但最近又開始流行起來了,原

斯坦福大學機器學習——誤差理論Error Theory

一、偏倚(bias)和方差(variance) 在討論線性迴歸時,我們用一次線性函式對訓練樣本進行擬合(如圖1所示);然而,我們可以通過二次多項式函式對訓練樣本進行擬合(如圖2所示),函式對樣本的擬合程式看上去更“好”;當我們利用五次多項式函式對樣本進行擬合(如圖3所示),