異常檢測 OCSVM與混合高斯分布

2021-10-09 17:55:12 字數 924 閱讀 9998

20200924 -

前面的文章《孤立森林的簡要記錄》中描述了孤立森林的簡單原理,而且之前也簡單測試過這種方法的效能,只不過最終沒有得到非常好的效果。本篇文章中記錄一下另外兩種方法。

一般來說,異常檢測是一種無監督的學習方法,當然也可以轉化為監督學習,但是我個人感覺轉化的方式不好,原因主要是你需要將異常進行標記,但是異常應該很難標記,特別是數量比較少的情況下。所以本文記錄兩種無監督的方法:一類svm和混合高斯分布。

關於具體原理部分可以參考文章[1],文中介紹了兩種ocsvm的原理。其中一種就是利用最小化半徑的方式來實現,另外一種還需要進一步學習。另種方式的名字分別是v-svm和svdd。文章[4]也簡單介紹了這部分的原理。

文章[2]中介紹了利用kdd99實驗ocsvm的過程。這裡的乙個問題,我個人任務就是在學習過程中,它顯式地使用了訓練資料中異常點的比例來作為模型訓練的引數。雖然這種方法最後取得了不錯的效果,但是普通情況下,你怎麼會知道異常點的比例呢,這個內容可能需要更多的**或者文章來論證了。

利用高斯分布來擬合資料分布是一種比較常見的異常檢測方法,特別是在一維的模型下更為容易理解。假設某個資料分布產生於高斯分布,那麼在擬合完成之後,測試過程中,只需要檢視某些點的概率,通過閾值的方式來確定其是否使異常點。

文章[3]中使用了一種混合高斯模型的方法,通過這種方法可以檢視各個點屬於各個高斯分布的概率,然後來判定。不過擬合過程暫時不清楚,直接呼叫了庫。

[1]introduction to one-class support vector machines

[2]unsupervised machine learning with one-class support vector machines

[3]anomaly detection in python with gaussian mixture models.

[4]one class svm(oc-svm)

混合高斯運動檢測筆記

include include include include opencv2 video background segm.hpp include opencv2 legacy blobtrack.hpp include opencv2 legacy legacy.hpp include openc...

資料異常檢測(多元高斯模型)

import numpy as np import matplotlib.pyplot as plt from scipy.io import loadmat data loadmat data ex8data1.mat x data x x val data x val y val data y ...

高斯混合模型與EM演算法

對於高斯混合模型是幹什麼的呢?它解決什麼樣的問題呢?它常用在非監督學習中,意思就是我們的訓練樣本集合只有資料,沒有標籤。它用來解決這樣的問題 我們有一堆的訓練樣本,這些樣本可以一共分為k類,用z i 表示。但是具體樣本屬於哪類我們並不知道,現在我們需要建立乙個模型來描述這個訓練樣本的分布。這時,我們...