使用Python進(jìn)行異常檢測(cè)的解決方案
如圖所示,我們沒(méi)有太多異常數(shù)據(jù),所以,如果我們從75%的值開始,會(huì)是比較好的結(jié)果,但為了安全起見(jiàn),我會(huì)從平均值開始。所以我們將從平均值和更低的概率范圍開始檢查這個(gè)范圍內(nèi)每個(gè)概率的f1分?jǐn)?shù)。首先,定義一個(gè)函數(shù)來(lái)計(jì)算真正例、假正例和假反例:def tpfpfn(ep):
tp, fp, fn = 0, 0, 0
for i in range(len(y)):
if p[i] <= ep and y[i][0] == 1:
tp += 1
elif p[i] <= ep and y[i][0] == 0:
fp += 1
elif p[i] > ep and y[i][0] == 1:
fn += 1
return tp, fp, fn
列出低于或等于平均概率的概率。eps = [i for i in p if i <= p.mean()]
檢查一下列表的長(zhǎng)度len(eps)
輸出:133
根據(jù)前面討論的公式定義一個(gè)計(jì)算f1分?jǐn)?shù)的函數(shù):def f1(ep):
tp, fp, fn = tpfpfn(ep)
prec = tp/(tp + fp)
rec = tp/(tp + fn)
f1 = 2*prec*rec/(prec + rec)
return f1
所有函數(shù)都準(zhǔn)備好了!現(xiàn)在計(jì)算所有epsilon和我們之前選擇的概率值范圍的f1分?jǐn)?shù)。f = []
for i in eps:
f.a(chǎn)ppend(f1(i))
f
輸出:[0.14285714285714285,
0.14035087719298248,
0.1927710843373494,
0.1568627450980392,
0.208955223880597,
0.41379310344827586,
0.15517241379310345,
0.28571428571428575,
0.19444444444444445,
0.5217391304347826,
0.19718309859154928,
0.19753086419753085,
0.29268292682926833,
0.14545454545454545,
這是f分?jǐn)?shù)表的一部分,它的長(zhǎng)度是133。f分?jǐn)?shù)通常在0到1之間,其中f1得分越高越好,所以,我們需要從剛才計(jì)算的f分?jǐn)?shù)列表中取f的最高分?jǐn)?shù),F(xiàn)在,使用“argmax”函數(shù)來(lái)確定f分?jǐn)?shù)值最大值的索引。np.a(chǎn)rray(f).a(chǎn)rgmax()
輸出:131
現(xiàn)在用這個(gè)索引來(lái)得到閾值概率。e = eps[131]
e
輸出:6.107184445968581e-05
找出異常實(shí)例現(xiàn)在我們有了臨界概率,可以從中找出我們訓(xùn)練數(shù)據(jù)的標(biāo)簽了。如果概率值小于或等于該閾值,則數(shù)據(jù)為異常數(shù)據(jù),否則為正常數(shù)據(jù)。我們將正常數(shù)據(jù)和異常數(shù)據(jù)分別表示為0和1,label = []
for i in range(len(df)):
if p[i] <= e:
label.a(chǎn)ppend(1)
else:
label.a(chǎn)ppend(0)
label
輸出:[0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
這是標(biāo)簽列表的一部分。我將在上面的訓(xùn)練數(shù)據(jù)集中添加此標(biāo)簽:df['label'] = np.a(chǎn)rray(label)
df.head()
我在標(biāo)簽為1的地方用紅色繪制數(shù)據(jù),在標(biāo)簽為0的地方用黑色繪制,得到以下結(jié)果。
我們可以看到紅色的數(shù)據(jù)明顯是異常值。結(jié)論本文我們一步一步地解釋了開發(fā)異常檢測(cè)算法的整個(gè)過(guò)程,如果你通過(guò)閱讀本文無(wú)法理解算法的過(guò)程,建議你運(yùn)行每一段代碼來(lái)加強(qiáng)理解。

發(fā)表評(píng)論
請(qǐng)輸入評(píng)論內(nèi)容...
請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字
圖片新聞
-
機(jī)器人奧運(yùn)會(huì)戰(zhàn)報(bào):宇樹機(jī)器人摘下首金,天工Ultra搶走首位“百米飛人”
-
存儲(chǔ)圈掐架!江波龍起訴佰維,索賠121萬(wàn)
-
長(zhǎng)安汽車母公司突然更名:從“中國(guó)長(zhǎng)安”到“辰致科技”
-
豆包前負(fù)責(zé)人喬木出軌BP后續(xù):均被辭退
-
字節(jié)AI Lab負(fù)責(zé)人李航卸任后返聘,Seed進(jìn)入調(diào)整期
-
員工持股爆雷?廣汽埃安緊急回應(yīng)
-
中國(guó)“智造”背后的「關(guān)鍵力量」
-
小米汽車研發(fā)中心重磅落地,寶馬家門口“搶人”
最新活動(dòng)更多
-
即日-9.1立即下載>> 【限時(shí)下載】ADI中國(guó)三十周年感恩回饋助力企業(yè)升級(jí)!
-
即日-9.14點(diǎn)擊進(jìn)入 >> 【限時(shí)福利】TE 2025國(guó)際物聯(lián)網(wǎng)展·深圳站
-
10月23日立即報(bào)名>> Works With 開發(fā)者大會(huì)深圳站
-
11月27日立即報(bào)名>> 【工程師系列】汽車電子技術(shù)在線大會(huì)
-
精彩回顧立即查看>> 【在線研討會(huì)】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 【在線會(huì)議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
推薦專題
- 1 傳魏建軍與賈躍亭合作,長(zhǎng)城汽車出海美國(guó)
- 2 黃仁勛:與雷軍長(zhǎng)期合作,共探AI智駕
- 3 阿里首位程序員,“掃地僧”多隆已離職
- 4 先進(jìn)算力新選擇 | 2025華為算力場(chǎng)景發(fā)布會(huì)暨北京xPN伙伴大會(huì)成功舉辦
- 5 2025年第一支10倍股,來(lái)了!
- 6 清華跑出具身智能獨(dú)角獸:給機(jī)器人安上眼睛和大腦,融資近20億
- 7 清庫(kù)存?曝英偉達(dá)H20供應(yīng)有限,且沒(méi)有復(fù)產(chǎn)計(jì)劃
- 8 特朗普要求英特爾首位華人 CEO 辭職
- 9 具身智能機(jī)器人量產(chǎn)前夜,標(biāo)準(zhǔn)機(jī)腦正在成型
- 10 共探合作新機(jī)遇!江門市新會(huì)區(qū)(深圳)“AI + 機(jī)器人” 產(chǎn)業(yè)對(duì)接會(huì)成功舉辦