无监督学习:异常检测与剔除(局部异常因子法 SVM异常检测器)
生活随笔
收集整理的這篇文章主要介紹了
无监督学习:异常检测与剔除(局部异常因子法 SVM异常检测器)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.前言
前面介紹的都是有監督學習的回歸和分類算法。有監督學習是指對輸入和輸出都有成對出現的訓練樣本{(xi,yi)}。在這里,主要介紹在沒有輸出信息時,只利用輸入樣本{xi}的信息進行無監督學習的方法。本篇博客重點討論刪除樣本{xi}中包含異常值的方法。 異常值檢測,是指找出給定的輸入樣本{xi}中包含的異常值的問題。雖然再有監督回歸和有監督分類里面我們也研究了對異常值具有較高魯棒性的學習法,但是當樣本中包含較多異常值的時候,先除去異常值在進行學習的方法,一般會更有效。 如果是給定了帶有正常值和異常值標簽的數據,異常檢測就可以看做是有監督學習的分類問題。但是異常值的種類繁多,一般而言,要想從商量的異常數據中訓練出有效的、可以區分正常和異常數據的分類器是很困難的。 下面開始討論兩種無監督的異常檢測方法,一種是局部異常因子法,另一種是支持向量機異常檢測器。此外也會介紹通過在訓練集{xi}之上附加正常樣本集{x'i},進行更高精度的異常檢測的"弱監督異常檢測法"。2.局部異常因子
局部異常因子,是指對偏離大部分數據的異常數據進行檢測的方法。 首先,從x到x'的可達距離定義如下:RD=Reachability distance.xk表示的是訓練樣本xi中距離x第k近的樣本。從x到x`的可達距離是指,從x到x`的直線距離為||x-x'||.如果x'比xk距離x更近,那么直接使用||x-xk||的值表示。使用這個可達距離,x的局部可達密度可由下式加以定義:
LRD=Local Reachability Density.x的局部可達密度,是從xi到x的可達距離平均值的倒數。當x的訓練樣本密度值很高的時候,局部可達密度的值也比較大。 應用這個局部可達密度,x的局部異常因子可有下式加以定義:
LOF=Local Outlier Factor.LOF(x)的值越大,x的異常度就越大。LOFk(x)是xi的局部可大密度的平均值與x的局部可達密度的比。當xi的周圍的密度比較高而x周圍的密度比較低的時候,局部異常因子就會比較大,x就會被看作異常值被對待。 下面是一個局部異常因子的實例。顯而易見,偏離大部分正常值的數據點具有較高的異常值:
各個樣本周圍圓的半徑,與樣本的局部異常因子的值成正比 圓的半徑越大,其樣本越傾向于異常值 局部異常因子,是遵循預先指定的規則(偏離大部分正常值的數據被認為異常值),尋找異常值的無監督方法。所以,如果事先指定的規則與我們的期望不相符,就不能找到正確的異常值。雖然通過改變近鄰數k的值也可以在某種程度上對異常檢測做出調整。但是對于無監督學習而言,由于通常不會給定有關異常值得任何信息,所以近鄰數k的取值一直是一個非常難得的問題。另外,為了尋找k近鄰樣本,需要計算所有n個訓練樣本間的距離并進行分組,當n非常大的時候,計算負荷也會相應的增加,這也是我們必須考慮的問題。
3.支持向量機異常檢測
在無監督學習的異常檢測中引入學習要素,即為支持向量機異常檢測器。 支持向量機異常檢測器會求出幾乎包含所有訓練樣本xi的超球,并肩沒有包含在超球內的訓練樣本看做是異常值。具體而言,就是通過求解下屬的最優化問題來求得超球的球心c和半徑R:支持向量機異常檢測器
這樣就變成了與SVM類似的最優化問題。其拉格朗日函數如下所示:
一樣的。a和β就是我們常說的拉格朗日待定因子,該優化問題也就變成了拉格朗日對偶問題:
求偏導,置零可以得到最優條件:
這樣,拉格朗日對偶問題就可以通過下式表示:
這又是一個二次規劃問題(KKT最優化問題)。 其結論與SVM也是非常相似的:
- ai=0時,樣本xi位于超球的表面與內側;
- 0<ai<C時,樣本xi位于超球表面;(支持向量)
- ai=C時,樣本位于超球的表面或外側。
4.基于密度比的異常檢測
基于密度比估計的異常檢測,是靈活應用正常值得信息對異常值進行監測的方法,因此可以不用事先確定異常值的種類,直結合數據本身進行適宜的異常檢測。另外,通過把異常檢測問題轉化為密度比的計算問題。對基準KL進行交叉驗證,就可以通過客觀的方法確定基函數中包含的各個參數了。實際中還是很有價值的。總結
以上是生活随笔為你收集整理的无监督学习:异常检测与剔除(局部异常因子法 SVM异常检测器)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员谈谈我的职场观(三)
- 下一篇: 无监督学习:无监督降维