異常檢測3 常見方法分類

2021-09-28 14:00:02 字數 1297 閱讀 5668

基於線性分析

基於時空

基於相似性分析

基於偏差

高維方法

其他往往只對單獨緯度進行研究,使用上有很大的侷限性

對異常資料和正常資料進行不同的分布假設,並用em演算法擬合資料。侷限性在於假設往往和實際有較大出入,效果一般

在低緯度上分析資料間的相關性。比如pca,factor analysis等。但是壓縮或找到低維嵌入後,資料的可解釋性下降。

o點單獨看來的情況下是正常點,但是考慮到臨近點後是異常點

如k近鄰為原型的

如local outlier factor(lof)

先把人分群,然後把明顯跟大夥兒不同的小群體去掉,那這部分小群體就是異常點。利用聚類檢測異常點的方法是丟棄遠離其他簇的小簇[3]

這種方法的思想是考慮到異常值跟整個資料集通常的特性(general characteristics)不一致,認為異常值是離中心最遠的點,當移除這些點時,整個資料集某個特徵的方差就會減小。比如一種模型的方法是定義乙個smooth factor,它表示的就是當某條資料從整體裡移除時,方差(variance)降低多少,一般來說,異常值降低的值會大於正常值。[2]

在高維下做異常檢測會出現以下問題:

隨著維度的增加,各個點距離的區分度是很小的;

資料很稀疏,幾乎所有的點都是離群點;

鄰近的概念變得沒有意義。

針對以上的問題,解決方案如下:

取樣更魯棒的距離函式,並且在full-dimensional找異常點;

在原始子空間的特徵空間裡找異常點。

基於角度的方法往往在高維空間裡會很有效。通常來說如果點o是異常點的話,那麼它與其它點的角度都差不多,如果不是異常點,它與其它點的角度就多種多樣。[2]

isolation forest

feature bagging

參考資料:

[1]機器學習門下,有哪些在工業界應用較多,前景較好的小方向? - 微調的回答 - 知乎

[2]資料探勘中常見的「異常檢測」演算法有哪些? - 尼古丁布的回答 - 知乎

[3]資料探勘中常見的「異常檢測」演算法有哪些? - 恆仔的回答 - 知乎

陣列常見方法分類

concat 連線兩個或更多的陣列,並返回結果。every 檢測陣列元素的每個元素是否都符合條件。some 檢測陣列元素中是否有元素符合指定條件。filter 檢測陣列元素,並返回符合條件所有元素的陣列。indexof 搜尋陣列中的元素,並返回它所在的位置。join 把陣列的所有元素放入乙個字串。t...

Java Collection常見方法

collection的常見方法 1 新增 boolean add object obj 新增單個物件 boolean addall collection coll 新增集合 2 刪除 boolean remove object obj 刪除單個物件 boolean removeall collect...

Java Set常見方法

set 元素不能重複,無序。set介面中的方法和collection一致 hashset 內部資料結構是雜湊表,是不同步的。雜湊表確定元素是否相同 1 判斷的是兩個元素的雜湊值是否相同,如果相同再判斷兩個物件的內容是否相同。2 判斷雜湊值相同,其實判斷的是物件的hashcode的方法,判斷內容相同,...