chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用MATLAB進行異常檢測(下)

MATLAB ? 來源:MATLAB ? 作者:MATLAB ? 2022-11-24 10:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在使用 MATLAB 進行異常檢測(上)中,我們探討了什么是異常值,簡單的一維數(shù)據(jù)異常檢測問題,針對高維數(shù)據(jù)的有監(jiān)督異常檢測方法。 在(下)篇中,我們將和大家一起探討無監(jiān)督異常檢測。

沒有標簽怎么辦?試試無監(jiān)督異常檢測

參考文檔頁面:Unsupervised Anomaly Detection[1]

對于沒有標簽信息的多變量樣本數(shù)據(jù),在MATLAB 可以使用以下方法檢測異常值:

· 馬氏距離 (Mahalanobis Distance):

如果數(shù)據(jù)符合多變量正態(tài)分布,可使用樣本到數(shù)據(jù)集分布中心的馬氏距離檢測異常。利用穩(wěn)健協(xié)方差估計robustcov[2]函數(shù)計算馬氏距離,進行離群值檢測。

· 局部離群因子 (Local Outlier Factor, LOF):

基于觀測點和鄰近樣本之間的相對密度檢測異常點。利用 lof[3] 函數(shù)可以創(chuàng)建 LocalOutlierFactor 對象,針對訓(xùn)練數(shù)據(jù),直接返回檢測結(jié)果。

· 孤立森林 (Isolation forest):

通過一組孤立樹模型,將異常值和正常數(shù)據(jù)點隔離。利用 iforest[4] 函數(shù),創(chuàng)建 IsolationForest 對象,針對訓(xùn)練數(shù)據(jù),直接返回檢測結(jié)果。

· 單類支持向量機 (One Class SVM):

在無監(jiān)督條件下,訓(xùn)練支持向量機模型,在變換后的高維空間,將數(shù)據(jù)點和原點分離。利用 ocsvm[5] 函數(shù)創(chuàng)建OneClassSVM 對象,針對訓(xùn)練數(shù)據(jù),直接返回檢測結(jié)果。

針對測試數(shù)據(jù)進行異常檢測時,使用第一種方法的具體檢測步驟將在下文中通過示例說明,如果使用另外三種算法,可以直接調(diào)用檢測模型的對象函數(shù) isanomaly()。

具體實現(xiàn)方式

1.利用馬氏距離檢測異常值

【定義】馬氏距離:一種衡量樣本和數(shù)據(jù)集分布間相似度的尺度無關(guān)的度量指標,例如y到中值點的距離是d2=(y-μ)Σ-1(y-μ)',其中Σ是多維隨機變量的協(xié)方差矩陣,μ為樣本均值。在MATLAB中可通過pdist2函數(shù)計算:

d = pdist2(feat,mean(feat),"mahalanobis");

馬氏距離可以理解為是對歐式距離的一種修正,假設(shè),下圖中藍色點和黃色點離樣本均值的歐式距離相近,但是由于樣本整體分布沿 f(x)=x 的方向分布(變量之間具有相關(guān)性),藍色點更有可能是數(shù)據(jù)集中的點,對應(yīng)的馬氏距離更小,而黃色點更有可能是離群值,對應(yīng)馬氏距離也更大。因此,設(shè)定一個合理的閾值,可以劃分異常樣本和正常樣本。

312cde4c-6b18-11ed-8abf-dac502259ad0.png

計算馬氏距離,首先需要估計 Σ(sig) 和 μ(mu) 。極大似然估計(Maximum Likelihood Estimation, MLE)對數(shù)據(jù)中的異常值非常敏感,需要采取一種穩(wěn)健的協(xié)方差估計方法,抵抗數(shù)據(jù)集中存在的異常觀測數(shù)據(jù)。當數(shù)據(jù)中存在異常值時,協(xié)方差行列式偏大。使用最小協(xié)方差行列式估計 (Minimum Covariance Determinant, MCD),從 n 個數(shù)據(jù)樣本中,最多選取h個觀測值,找到協(xié)方差行列式最小的一組觀測子集,計算其平均值和協(xié)方差,作為估計量。robustcov 函數(shù)提供了 FAST-MCD、OGK 和 Olive-Hawkins 三種算法供選擇。假設(shè)訓(xùn)練數(shù)據(jù)集中,異常占比為 0.9%:

contaminationFraction = 0.09;
[sig,mu,mah,tf] = robustcov(feat, ...
  OutlierFraction=contaminationFraction);

如果數(shù)據(jù)符合正態(tài)分布的假設(shè),馬氏距離的平方值,將服從具有 Dim 個自由度的χ2分布,Dim 為原數(shù)據(jù)的維度。默認情況下,robustcov 函數(shù)假設(shè)數(shù)據(jù)符合多變量正態(tài)分布,并根據(jù)χ2分布的臨界值,將輸入樣本的 2.5% 作為異常值,如需調(diào)整異常值占比,可以使用 chi2inv 函數(shù),重新計算閾值:

mah_threshold = sqrt(chi2inv(1-contaminationFraction,Dim));
tf_robustcov = mah > mah_threshold;

利用pdist2函數(shù),計算測試集的馬氏距離后與閾值mah_threshold進行比較:

dTest = pdist2(featureTestNoLabels.Variables, ...
mean(featureTestNoLabels.Variables),"mahalanobis");
isanomalyTest = dTest > mah_threshold;
predTest = categorical(isanomalyTest, [1, 0], ["Anomaly", "Normal"]);

可視化檢測結(jié)果:

tiledlayout(3,1)
nexttile
gscatter(X(:,1),X(:,2),tf_robustcov,[],'ox',3)
xlabel('X1')
ylabel('X2')
legend({'正常','異常'})
title("訓(xùn)練樣本分類結(jié)果 (tSNE降維)")


nexttile
plot(d,mah,'o')
line([mah_threshold, mah_threshold], [0, 30], 'color', 'r')
line([0, 6], [mah_threshold, mah_threshold], 'color', 'r')
hold on
plot(d(tf), mah(tf), 'r+')
xlabel('Mahalanobis Distance')
ylabel('Robust Distance')
title('DD Plot')
hold off


nexttile
confusionchart(trueAnomaliesTest, predTest, ...
  Title="測試結(jié)果評估-混淆矩陣 (馬氏距離)", Normalization="row-normalized");
314d5cee-6b18-11ed-8abf-dac502259ad0.jpg ? ? ? ?

小結(jié)

·以上方法在高維數(shù)據(jù)上應(yīng)用效果不理想,可以看到,測試集中異常數(shù)據(jù)假陰率高。這個方法適用于數(shù)據(jù)符合或接近正態(tài)分布的情況,但是通常情況下,實際數(shù)據(jù)的分布規(guī)律難以預(yù)估。

2.局部離群因子

參考文檔頁面:Local outlier factor model for anomaly detection[6]

該算法通過計算樣本p和其周圍 k 個近鄰點的局部可達密度(local reachability density, lrd),即觀測樣本 p 到近鄰點的局部可達距離平均值的倒數(shù):

31833666-6b18-11ed-8abf-dac502259ad0.png

其中,為k近鄰集合,樣本p關(guān)于觀測點o的局部可達距離定義為:

319644e0-6b18-11ed-8abf-dac502259ad0.png

其中 dk(0)為觀測點到其近鄰的第k個最小距離, d(p,0) 為樣本 p 和觀測點 o 之間的距離,可參考下圖示意。

31b186c4-6b18-11ed-8abf-dac502259ad0.png

再根據(jù)p的局部可達密度與近鄰點的局部可達密度比值的平均值,量化每個樣本的離群程度,具體計算可參考以下公式:

31d2677c-6b18-11ed-8abf-dac502259ad0.png

Ird(·)為局部可達密度函數(shù),|Nk(p)|為近鄰數(shù)量。

因此,對于正常樣本,一般 LOF 值小于或接近 1,意味著其局部可達密度和近鄰點相近或更高,該樣本和鄰域內(nèi)的樣本同屬一個簇,當 LOF 值大于 1 時,則可能為異常值,利用 ContaminationFraction 參數(shù)可調(diào)整 LOF 的閾值。

[mdlLOF,tfLOF,scoresLOF] = lof(feat, ...
  ContaminationFraction=0.09, ...
  NumNeighbors=1000, Distance="mahalanobis");
[isanomalyLOF,~] = isanomaly(mdlLOF, featureTestNoLabels.Variables);
predLOF = categorical(isanomalyLOF, [1, 0], ["Anomaly", "Normal"]);

可視化檢測結(jié)果:

tiledlayout(3,1)
nexttile
gscatter(X(:,1),X(:,2),tfLOF,[],'ox',3)
xlabel('X1')
ylabel('X2')
legend({'正常','異常'})
title("訓(xùn)練樣本分類結(jié)果 (tSNE降維)")

隨機選取部分樣本,查看對應(yīng) LOF 值/異常得分

nexttile
idxes = randi(NumSamples,1,60);
scatter(X(idxes,1),X(idxes,2),5,'filled','MarkerFaceColor','k')
hold on
bubblechart(X(idxes,1),X(idxes,2),scoresLOF(idxes)/100, ...
'r','MarkerFaceAlpha',0);
legend({'數(shù)據(jù)點','異常得分'})
hold off
title("訓(xùn)練樣本異常得分分布")


nexttile
confusionchart(trueAnomaliesTest, predLOF, ...
  Title="測試結(jié)果評估-混淆矩陣 (LOF)", Normalization="row-normalized");
31e8681a-6b18-11ed-8abf-dac502259ad0.jpg ? ? ? ?

小結(jié)

·優(yōu)點:不受數(shù)據(jù)分布的影響,同時考慮了數(shù)據(jù)集的局部和全局屬性,比較適用于中等高維的數(shù)據(jù)集,針對示例數(shù)據(jù)集的預(yù)測準確度比較理想。

·使用限制:對近鄰參數(shù)較為敏感,由于需要計算數(shù)據(jù)集中任意兩個數(shù)據(jù)點的距離,算法的時間復(fù)雜度較高,在大規(guī)模數(shù)據(jù)集上效率偏低,適合小規(guī)模到中等規(guī)模的數(shù)值型數(shù)據(jù)。

3.孤立森林

參考文檔頁面:Anomaly Detection with Isolation Forest[7]

孤立森林算法中,集成了多個決策樹模型,訓(xùn)練時,每個決策樹對一個不放回采樣的數(shù)據(jù)子集進行分裂,以試圖將每一個觀測樣本劃分到一個對應(yīng)的葉節(jié)點上。假設(shè)異常點與其他正常數(shù)據(jù)差異較大,從根節(jié)點到對應(yīng)葉節(jié)點需要經(jīng)過的路徑長度(path length) 相對較短,對于每個樣本,將孤立森林中的多個決策樹路徑長度的平均值,定義為對應(yīng)樣本的異常得分(anomaly score)。

32067832-6b18-11ed-8abf-dac502259ad0.png

[mdlIF,tfIF,scoreTrainIF] = iforest(feat, ContaminationFraction=0.09);
[isanomalyIF,~] = isanomaly(mdlIF, featureTestNoLabels.Variables);
predIF = categorical(isanomalyIF, [1, 0], ["Anomaly", "Normal"]);

可視化檢測結(jié)果:

tiledlayout(3,1)
nexttile
gscatter(X(:,1),X(:,2),tfIF,[],'ox',3)
xlabel('X1')
ylabel('X2')
legend({'正常','異常'})
title("訓(xùn)練樣本分類結(jié)果 (tSNE降維)")


nexttile
histogram(scoreTrainIF)
xline(mdlIF.ScoreThreshold,"k-",join(["Threshold =" mdlIF.ScoreThreshold]))
title("訓(xùn)練樣本異常得分分布")


nexttile
confusionchart(trueAnomaliesTest, predIF, ...
  Title="測試結(jié)果評估-混淆矩陣 (孤立森林)", Normalization="row-normalized");
32274300-6b18-11ed-8abf-dac502259ad0.jpg ? ? ? ?

小結(jié)

·優(yōu)點:適合高維表格數(shù)據(jù),不需要計算關(guān)于距離和密度的指標,具有線性時間復(fù)雜度,每個決策樹可獨立采樣,支持并行化處理來實現(xiàn)加速。

·使用限制:孤立森林適用于訓(xùn)練集和測試集中,正常樣本和異常樣本占比接近的情況,且異常樣本的特征與正常樣本差異很大。

4.單類支持向量機

參考文檔頁面:Fit one-class support vector machine (SVM) model for anomaly detection[8]

單類支持向量機,或無監(jiān)督支持向量機,構(gòu)建決策邊界,將訓(xùn)練集中的數(shù)據(jù)點盡可能劃分為一個類別,位于決策邊界之外的數(shù)據(jù)則為異常值。

策略是通過核函數(shù)將數(shù)據(jù)映射到新的高維特征空間,在數(shù)據(jù)與原點間構(gòu)建超平面(n 維平面)。因為,在低維空間中的非線性特征往往不是線性可分的,在擴展到高維空間后是可分的。在 MATLAB 中,一種實現(xiàn)方法是使用用于構(gòu)建標準的支持向量機分類模型的 fitcsvm 函數(shù)(MATLAB R2022b前),另一種實現(xiàn)方法是使用 ocsvm 函數(shù)(MATLAB R2022b 起)。

fitcsvm 函數(shù)的求解是基于 SVM 的對偶問題形式,需要求解每對樣本的格拉姆矩陣(Gram Matrix),相關(guān)示例可在 MATLAB 命令行輸入以下指令打開:

>> openExample('stats/DetectOutliersUsingSVMAndOneClassLearningExample')
3256a9f6-6b18-11ed-8abf-dac502259ad0.png

ocsvm 函數(shù)的求解則是基于 SVM 的原型問題形式,并使用高斯核進行一類學(xué)習(xí),以找到?jīng)Q策邊界,針對大規(guī)模數(shù)據(jù)集,求解效率更高。將 KernelScale 設(shè)為 "auto"以啟發(fā)式地選取合適核函數(shù)參數(shù)。

[mdlSVM,tfOCSVM,scoreTrainOCSVM] = ocsvm(feat, ...
    ContaminationFraction=0.09, ...
    StandardizeData=true,KernelScale="auto");
[isanomalyOCSVM,~] = isanomaly(mdlSVM, featureTestNoLabels.Variables);
predOCSVM = categorical(isanomalyOCSVM, [1, 0], ["Anomaly", "Normal"]);

可視化檢測結(jié)果:

tiledlayout(3,1)
nexttile
gscatter(X(:,1),X(:,2),tfOCSVM,[],'ox',3)
xlabel('X1')
ylabel('X2')
legend({'正常','異常'})
title("訓(xùn)練樣本分類結(jié)果 (tSNE降維)")


nexttile
histogram(scoreTrainOCSVM, Normalization="probability")
xline(mdlSVM.ScoreThreshold,"k-", ...
  join(["Threshold =" mdlSVM.ScoreThreshold]))
title("訓(xùn)練樣本異常得分分布")


nexttile
confusionchart(trueAnomaliesTest, predOCSVM,...
  Title="測試結(jié)果評估-混淆矩陣 (OCSVM)", Normalization="row-normalized");
3291374c-6b18-11ed-8abf-dac502259ad0.jpg ? ? ? ?

小結(jié)

·優(yōu)點:可以處理高維數(shù)據(jù),適合表格/結(jié)構(gòu)化數(shù)據(jù)。

·使用限制:分類變量需要先轉(zhuǎn)換為虛擬變量(啞變量,Dummy Variable),ocsvm函數(shù)中可定義相關(guān)參數(shù)CategoricalPredictors ,以自動進行轉(zhuǎn)換。

結(jié)果對比

在該數(shù)據(jù)集的離群值檢測問題中,孤立森林、局部離群因子與單類支持向量機的結(jié)果比較接近,各自的準確度都比較理想,預(yù)測結(jié)果的重合度也超過了90%:

mean((predIF==predLOF) & (predLOF==predOCSVM))

ans = 0.9325

利用馬氏距離/穩(wěn)健協(xié)方差估計的方法,結(jié)果不理想,與其他三個算法的結(jié)果差異較大:

mean((predIF==predLOF) & (predLOF==predOCSVM) & (predOCSVM==predTest))

ans = 0.6196

綜上,各個方法的適用范圍不一,或是有特定的使用條件,在使用時需要多加留意,例如馬氏距離適合符合正態(tài)分布假設(shè)的數(shù)據(jù)集,孤立森林適用于處理正常樣本和異常樣本差異較大的情況,各個算法計算復(fù)雜度有些許區(qū)別,可以根據(jù)實際情況選擇合適的方法。

關(guān)鍵點回顧

·在處理異常檢測問題時,首先需要充分了解您的數(shù)據(jù)

·如果您有足夠的標注數(shù)據(jù)(包括異常),可使用有監(jiān)督學(xué)習(xí)方法進行異常檢測

·如果您的數(shù)據(jù)大部分都是正常數(shù)據(jù),或者異常數(shù)據(jù)難以獲取或標記,則可以考慮使用無監(jiān)督的異常檢測方法

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    189

    文章

    3001

    瀏覽量

    233946
  • 異常檢測
    +關(guān)注

    關(guān)注

    1

    文章

    43

    瀏覽量

    9844
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8500

    瀏覽量

    134503

原文標題:機器學(xué)習(xí)應(yīng)用 | 使用 MATLAB 進行異常檢測(下)

文章出處:【微信號:MATLAB,微信公眾號:MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    機器學(xué)習(xí)異常檢測實戰(zhàn):用Isolation Forest快速構(gòu)建無標簽異常檢測系統(tǒng)

    算法進行異常檢測,并結(jié)合LightGBM作為主分類器,構(gòu)建完整的欺詐檢測系統(tǒng)。文章詳細闡述了從無監(jiān)督異常
    的頭像 發(fā)表于 06-24 11:40 ?610次閱讀
    機器學(xué)習(xí)<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>實戰(zhàn):用Isolation Forest快速構(gòu)建無標簽<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>系統(tǒng)

    matlab2009載地址

    作為一個標準的管理異常來處理。MATLAB R2009b新版本中,產(chǎn)品模塊進行了一些調(diào)整,MATLAB Builder for COM的功能集成到M
    發(fā)表于 03-22 18:10

    如何使用部分異常觀測數(shù)據(jù)進行異常檢測

    使用部分異常觀測數(shù)據(jù)進行異常檢測(翻譯自 Anomaly Detection with Partially Observed Anomalies)
    發(fā)表于 04-26 14:37

    如何利用MATLAB和Simulink進行S模式檢測和解碼?

    如何利用MATLAB和Simulink進行S模式檢測和解碼?
    發(fā)表于 05-18 07:17

    如何利用MATLAB和Simulink去進行S模式檢測和解碼?

    如何利用MATLAB和Simulink去進行S模式檢測和解碼?
    發(fā)表于 05-20 06:31

    基于密集人群的異常實時檢測

    在密集人群場景,針對現(xiàn)有異常檢測算法在實時性和適用性方面的不足,提出了一種基于光流特征和卡爾曼濾波的實時檢測方法。該方法首先提取圖像的全局光流強度作為運動特征;然后對全局光流值
    發(fā)表于 12-18 15:02 ?0次下載

    檢測域劃分的虛擬機異常檢測算法

    虛擬機的正常運行是支撐云平臺服務(wù)的重要條件,由于云平臺下虛擬機存在數(shù)量規(guī)模大、運行環(huán)境隨時間動態(tài)變化的特點,管理系統(tǒng)難以針對每個虛擬機進行訓(xùn)練數(shù)據(jù)采集以及統(tǒng)計模型的訓(xùn)練。為了提高在上述環(huán)境異常
    發(fā)表于 12-20 09:48 ?0次下載

    密度偏倚抽樣的局部距離異常檢測算法

    異常檢測是數(shù)據(jù)挖掘的重要研究領(lǐng)域,當前基于距離或者最近鄰概念的異常數(shù)據(jù)檢測方法,在進行海量高維數(shù)據(jù)異常
    發(fā)表于 12-25 14:11 ?0次下載

    如何進行雙側(cè)空間窗的異常檢測詳細方法概述

    針對現(xiàn)有異常檢測方法難以解釋異常屬性的問題,本文提出基于雙側(cè)空間窗的異常檢測方法。首先,在前景檢測
    發(fā)表于 01-11 15:17 ?3次下載
    如何<b class='flag-5'>進行</b>雙側(cè)空間窗的<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>詳細方法概述

    什么是異常檢測_異常檢測的實用方法

    異常檢測是一個發(fā)現(xiàn)“少數(shù)派”的過程,由于它們與大多數(shù)數(shù)據(jù)不一樣而引起我們的注意。在幾個典型場景中,異常數(shù)據(jù)能為我們關(guān)聯(lián)到一些潛在的問題,如銀行欺詐行為、藥品問題、結(jié)構(gòu)缺陷、設(shè)備故障等。這些關(guān)聯(lián)關(guān)系能幫助我們挑出哪些點可能是
    的頭像 發(fā)表于 06-29 09:25 ?1.9w次閱讀

    使用MATLAB進行線性編程

    使用MATLAB進行線性編程方法。
    發(fā)表于 05-27 09:29 ?0次下載

    如何選擇異常檢測算法

    異常檢測(也稱為離群點檢測)是檢測異常實例的任務(wù),異常實例與常規(guī)實例非常不同。這些實例稱為
    的頭像 發(fā)表于 10-25 09:15 ?1955次閱讀

    使用MATLAB進行異常檢測(上)

    異常檢測任務(wù),指的是檢測偏離期望行為的事件或模式,可以是簡單地檢測數(shù)值型數(shù)據(jù)中,是否存在遠超出正常取值范圍的離群值,也可以是借助相對復(fù)雜的機器學(xué)習(xí)算法識別數(shù)據(jù)中隱藏的
    的頭像 發(fā)表于 11-17 10:32 ?4191次閱讀

    采用基于時間序列的日志異常檢測算法應(yīng)用

    新增、時段新增、時段突增、時段突降等多種異常。 然而,在實際中,日志指標時序數(shù)據(jù)并不都具有周期性,或具有其他分布特征,因此僅根據(jù)周期性進行異常檢測會導(dǎo)致誤報率高、準確率低等問題。因此如
    的頭像 發(fā)表于 12-09 10:47 ?2092次閱讀

    哈工大提出Myriad:利用視覺專家進行工業(yè)異常檢測的大型多模態(tài)模型

    最近,大型多模態(tài)(即視覺和語言)模型(LMM)在圖像描述、視覺理解、視覺推理等多種視覺任務(wù)上表現(xiàn)出了卓越的感知能力,使其成為更易于理解的異常檢測的有競爭力的潛在選擇。然而,現(xiàn)有的通用 LMM 中缺乏有關(guān)異常
    的頭像 發(fā)表于 11-21 16:08 ?3132次閱讀
    哈工大提出Myriad:利用視覺專家<b class='flag-5'>進行</b>工業(yè)<b class='flag-5'>異常</b><b class='flag-5'>檢測</b>的大型多模態(tài)模型