<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          揭開KPI異常檢測(cè)頂級(jí)AI模型面紗(2)

          共 4774字,需瀏覽 10分鐘

           ·

          2020-12-08 13:39

          團(tuán)隊(duì)名稱:sh


          01


          賽題介紹



          1.1? ?賽題描述
          核心網(wǎng)在整個(gè)移動(dòng)運(yùn)營(yíng)商網(wǎng)絡(luò)中占據(jù)著舉足輕重的地位,一旦故障,會(huì)對(duì)全網(wǎng)的服務(wù)質(zhì)量影響很大。需要及時(shí)快速發(fā)現(xiàn)核心網(wǎng)的風(fēng)險(xiǎn),在影響范圍擴(kuò)大之前及時(shí)消除故障。
          關(guān)鍵性能指標(biāo)(KPI),反映了網(wǎng)絡(luò)性能和質(zhì)量。對(duì)KPI進(jìn)行檢測(cè),能夠及時(shí)發(fā)現(xiàn)網(wǎng)絡(luò)質(zhì)量劣化風(fēng)險(xiǎn)。目前KPI異常檢測(cè)指的是通過算法分析KPI的時(shí)間序列數(shù)據(jù),判斷其是否出現(xiàn)異常行為。

          ?這里存在幾個(gè)難點(diǎn):

          1

          異常發(fā)生的頻率很低,網(wǎng)元數(shù)據(jù)很少發(fā)生故障,因此可供分析的異常數(shù)據(jù)很少。

          2

          異常種類多,核心網(wǎng)網(wǎng)元數(shù)據(jù)多,故障發(fā)生的類型也多種多樣,導(dǎo)致了異常種類也多種多樣。

          3

          KPI曲線的多樣性,KPI曲線表現(xiàn)為周期型的,有穩(wěn)定型的,也有不穩(wěn)定型的

          針對(duì)以上難點(diǎn),為了提高核心網(wǎng)網(wǎng)元數(shù)據(jù)的異常檢測(cè)算法的準(zhǔn)確率和召回率,主辦方將在比賽中提供某運(yùn)營(yíng)商的KPI真實(shí)數(shù)據(jù),采樣間隔為1小時(shí)。參賽選手需要根據(jù)歷史數(shù)據(jù)異常標(biāo)簽數(shù)據(jù)(訓(xùn)練數(shù)據(jù)集),訓(xùn)練模型并檢測(cè)后續(xù)一段時(shí)間內(nèi)各KPI(測(cè)試數(shù)據(jù)集)中的異常。

          1.2? ?數(shù)據(jù)介紹
          本次比賽提供兩份數(shù)據(jù),其中一份包含標(biāo)簽列,另一份不包含標(biāo)簽,分別為phase1_train.csv(帶標(biāo)簽), phase1_test.csv(不帶標(biāo)簽)。包含標(biāo)簽的數(shù)據(jù)有參賽選手自行劃分為訓(xùn)練集,驗(yàn)證集和測(cè)試集,不包含標(biāo)簽的數(shù)據(jù)需要用戶采用訓(xùn)練好的模型進(jìn)行檢測(cè)輸出對(duì)應(yīng)標(biāo)簽并提交,phase1_train.csv 和 phase1_test.csv 文件格式(結(jié)構(gòu)化字段)說明:

          1.3? ?評(píng)價(jià)指標(biāo)
          1)、相關(guān)定義:
          TP(True Positive): 真實(shí)為 1,預(yù)測(cè)也為 1;
          FN(False Negative): 真實(shí)為 1,預(yù)測(cè)為 0 ;
          FP(False Positive): 真實(shí)為 0,預(yù)測(cè)為 1;
          TN(True Negative): 真實(shí)為 0,預(yù)測(cè)也為 0。
          2)、按以下公式計(jì)算參賽者的成績(jī)?cè)u(píng)分,依據(jù)準(zhǔn)確率(公式 1)和召回率(公式 2),計(jì)算 F1-score(公式 3),最后按照 F1-score 對(duì)所有參賽者進(jìn)行排序。
          P = TP/(TP+FP) (公式 1)
          R = TP/(TP+FN) (公式 2)
          F1-score = 2*P*R/(P+R)(公式 3)


          02


          數(shù)據(jù)理解



          2.1? 關(guān)于kpi_id和采樣時(shí)間

          給定的數(shù)據(jù)一共包含20種不同的kpi_id:

          每個(gè)kpi_id的value序列采樣時(shí)間和數(shù)據(jù)量都是一致的,并且測(cè)試集的時(shí)間緊跟在訓(xùn)練集后面,這為我們處理這種基于時(shí)間序列的數(shù)據(jù)提供了很大的便利,測(cè)試集數(shù)據(jù)可以直接拼接到訓(xùn)練集后面。
          具體的,訓(xùn)練集和測(cè)試集的采樣時(shí)間都是一個(gè)小時(shí),訓(xùn)練集數(shù)據(jù)的時(shí)間范圍為:‘2019-08-01 00:00:00’到'2019-09-22 23:00:00',共20*1272 = 25440條數(shù)據(jù);測(cè)試集數(shù)據(jù)的時(shí)間范圍為:'2019-09-23 00:00:00'到'2019-09-29 23:00:00',共20*168 = 3360條數(shù)據(jù)。

          2.2? ?關(guān)于標(biāo)簽
          在某個(gè)采樣時(shí)間下,標(biāo)簽值為0代表KPI正常,標(biāo)簽值為1代表KPI異常。經(jīng)過統(tǒng)計(jì),標(biāo)簽均值為0.01517,即正樣本比例約為1.5%。
          因此,這里有兩種解題思路,一種是當(dāng)做時(shí)間序列異常檢測(cè)問題,另一種是直接預(yù)測(cè)標(biāo)簽,也就是當(dāng)做樣本分布不均衡的二分類問題

          2.3? ?關(guān)于時(shí)間序列值value
          直接統(tǒng)計(jì)value數(shù)值的分布情況:
          可以看出絕大多數(shù)value的數(shù)值分布0-3000的范圍內(nèi)。但是,絕不能簡(jiǎn)單根據(jù)value的數(shù)值分布來建模,而忽視各kpi_id的具體情況。不同的kpi_id對(duì)應(yīng)的value序列往往具有不同的特性,下面兩張圖可以很直觀地體現(xiàn)這種差異:
          針對(duì)第一種情況,我們用肉眼就能很輕易地判斷出異常點(diǎn),這種情況往往通過聚類算法(例如GMM),或者基于統(tǒng)計(jì)分布的異常檢測(cè)算法(例如3-sigma和box-plot)就能夠較好地檢測(cè)出異常點(diǎn),這樣的方法基于數(shù)值的統(tǒng)計(jì)分布規(guī)律,不需要使用時(shí)間信息。
          針對(duì)第二種情況,value序列體現(xiàn)出周期變化的規(guī)律,異常值往往來自于序列的周期變化規(guī)律遭到破壞。(上面的圖如果太小,下面給出了異常點(diǎn)附近的局部放大圖)
          對(duì)于這種周期變化的情況,可以考慮采用基于傳統(tǒng)的時(shí)間序列異常檢測(cè)方法。時(shí)間序列異常檢測(cè)算法中,對(duì)于有趨勢(shì)項(xiàng)或周期項(xiàng)的,可以采用經(jīng)典的時(shí)序分解模型(例如Holt-winter、STL等);對(duì)于平穩(wěn)的時(shí)間序列,可以采用ARIMA算法(序列不平穩(wěn)的情況下也可以采用一些方法將其轉(zhuǎn)化為平穩(wěn)序列);對(duì)于其他時(shí)間序列,可以采用機(jī)器學(xué)習(xí)或深度學(xué)習(xí)模型等。

          針對(duì)目標(biāo)序列的情況,我首先嘗試了相對(duì)簡(jiǎn)單的指數(shù)平滑模型(由于其具有周期性,所以采用三指數(shù)平滑,即Holt-winter算法)。另外,對(duì)于時(shí)序數(shù)據(jù),由于數(shù)據(jù)間存在時(shí)間依賴性,所以交叉驗(yàn)證時(shí),隨機(jī)劃分?jǐn)?shù)據(jù)集會(huì)破壞序列的時(shí)間結(jié)構(gòu),需要采用滾動(dòng)交叉驗(yàn)證進(jìn)行參數(shù)選擇。

          經(jīng)過嘗試,傳統(tǒng)的時(shí)間序列異常檢測(cè)算法能夠達(dá)到一定的效果,但是當(dāng)我使用了比賽大殺器xgboost模型后,發(fā)現(xiàn)前面的方法瞬間變得“不香”了。本質(zhì)上來說,傳統(tǒng)的時(shí)間序列預(yù)測(cè)模型還都是線性模型,而對(duì)于xgboost(包括后來加上的LR模型),可以自己構(gòu)造大量的非線性特征,因此效果自然好了許多。另外,我最后采用的是基于二分類的方式來對(duì)標(biāo)簽進(jìn)行預(yù)測(cè)。

          下面主要介紹構(gòu)造特征過程中的做法。


          03


          特征工程



          3.1? ?提取時(shí)間信息
          賽題中提供的數(shù)據(jù)是一個(gè)時(shí)間戳,但是時(shí)間戳只是一個(gè)具有相對(duì)大小的數(shù)值而已,我們可以提取出其中的“Hour”和“Day”信息,進(jìn)一步還可以得到某一天是周幾,是否周末等信息。

          3.2? ?onehot編碼
          kpi_id屬于類別特征,上一個(gè)過程提取得到的“Hour”和“Day”也是,這些類別特征可以進(jìn)行onehot編碼,onehot編碼主要是用于LR模型的輸入。

          3.3.? ?value處理成標(biāo)準(zhǔn)形式
          首先統(tǒng)計(jì)歷史中值和標(biāo)準(zhǔn)差。這里采用中值而非均值是因?yàn)楫惓V祵?duì)均值的統(tǒng)計(jì)會(huì)造成較大的影響;標(biāo)準(zhǔn)差是逐天統(tǒng)計(jì),之后取中值而非均值,同樣是為了減輕異常值的影響。
          Value可以有幾種標(biāo)準(zhǔn)化的方式,比如:
          1、除以中值或者減去中值,保留各kpi_id標(biāo)準(zhǔn)差的相對(duì)大小關(guān)系
          2、減去中值,除以標(biāo)準(zhǔn)差,各kpi_id有統(tǒng)一的評(píng)估標(biāo)準(zhǔn)

          3.4? ?對(duì)標(biāo)準(zhǔn)形式的value離散化
          離散化的目的是對(duì)特征進(jìn)行非線性處理,并且可以把連續(xù)型特征轉(zhuǎn)化為類別型特征,便于采用類別特征的處理方式進(jìn)一步加工。分桶數(shù)目可以選取多種,以此創(chuàng)造足夠多的非線性特征。
          經(jīng)過測(cè)試,按照分位數(shù)進(jìn)行分桶具有較好的效果,分桶數(shù)目一共設(shè)置了四種:20,50,100和200。

          3.5? ?對(duì)標(biāo)準(zhǔn)化形式的value進(jìn)行其他處理
          主要是一些常見的做法,比如一階二階差分,和前一小時(shí)、歷史中值的差值/比值等,前一小時(shí)或者前幾天的中值也都可以添加進(jìn)來作為當(dāng)前樣本的特征。
          對(duì)上述重要特征再進(jìn)行分桶操作。

          3.6? ?滑動(dòng)窗口特征
          滑動(dòng)窗口可以創(chuàng)造出大量的特征,主要的可選參數(shù)和方法有:
          1、滑動(dòng)窗口長(zhǎng)度;
          2、窗口內(nèi)的統(tǒng)計(jì)量:最大值、最小值、均值、中值、方差,甚至三階矩和四階矩(偏度和峰度)等
          3、同比或者環(huán)比
          滑動(dòng)窗口得到的重要特征可以進(jìn)一步處理以獲得更多的交叉特征,比如減法、除法、分桶、聚合等。

          3.7? ?fft特征
          計(jì)算諧波大小,位置等,希望以此衡量周期性強(qiáng)弱(這里發(fā)現(xiàn)效果不是太明顯)。

          3.8? ?模型前一個(gè)時(shí)刻的預(yù)測(cè)值
          在分析數(shù)據(jù)中發(fā)現(xiàn)(如下圖所示),對(duì)于某些kpi_id,若前一小時(shí)異常,那么下一個(gè)小時(shí)也有較大的概率也為異常,即當(dāng)前時(shí)刻數(shù)值的異常概率和下一時(shí)刻數(shù)值的異常概率具有關(guān)聯(lián)性,因此一些模型對(duì)前一小時(shí)的預(yù)測(cè)值(異常概率)可以作為其他模型當(dāng)前小時(shí)的樣本的特征,這一特征依然可以進(jìn)行離散化等操作。

          3.9? ?Target Encoding
          對(duì)于上面得到的重要類別特征,可以進(jìn)行目標(biāo)編碼。目標(biāo)編碼可以理解為統(tǒng)計(jì)每一種類別的概率分布信息,即用類別對(duì)應(yīng)的標(biāo)簽的期望代替原始的類別特征。這樣的特征和標(biāo)簽具有很強(qiáng)的相關(guān)性,因此具有較大的標(biāo)簽泄露風(fēng)險(xiǎn),那么就容易導(dǎo)致過擬合。但如果處理得好,目標(biāo)編碼得到的特征一般都是強(qiáng)特征。
          這里采用的方案是通過K折target encoding來抑制過擬合問題。

          3.10? 特征篩選
          1、基于特征相關(guān)性
          這里需要篩選出與標(biāo)簽相關(guān)程度較大的特征。而特征之間相關(guān)性較大的則需要適當(dāng)刪除,減少對(duì)模型的干擾。

          2、基于樹模型輸出的特征重要性

          3、手工篩選
          手工篩選特征主要針對(duì)解釋性較好的LR模型,不僅可以篩選特征,還可以調(diào)整特征權(quán)重,后面的模型選擇部分也會(huì)提到相關(guān)內(nèi)容。


          04


          模型和方案選擇



          4.1? ?基于boosting的樹模型
          有了特征之后首先嘗試的當(dāng)然是基于boosting的樹模型,我主要嘗試了xgboost、catboost和lightGBM三種模型,根據(jù)最終模型的表現(xiàn)情況,采用了lightGBM模型。
          另外,選擇了兩組特征作為lightGBM模型的輸入,得到了lgb_pred1和lgb_pred2兩個(gè)預(yù)測(cè)結(jié)果,選擇不同的特征能夠讓模型具有不同的關(guān)注點(diǎn),同時(shí),這兩個(gè)預(yù)測(cè)結(jié)果也具有相對(duì)獨(dú)立的誤差分布,最終融合之后也會(huì)有較好的效果。

          4.2? ?邏輯回歸
          采用邏輯回歸模型主要基于如下兩點(diǎn)考慮:
          1、具有較好的可解釋性,方便手工選擇特征或者調(diào)整權(quán)重;
          2、用于重點(diǎn)關(guān)注lightGBM模型表現(xiàn)不佳的地方。
          在交叉驗(yàn)證的過程中,可以得到訓(xùn)練集的預(yù)測(cè)結(jié)果,進(jìn)一步可以查看當(dāng)前模型在什么情況下預(yù)測(cè)效果不佳。下圖是某一次lightGBM模型的預(yù)測(cè)結(jié)果,黃色的星星是真實(shí)異常點(diǎn),綠色的圈圈是預(yù)測(cè)的異常點(diǎn),說明lightGBM模型存在預(yù)測(cè)不準(zhǔn)的地方,那么可以重點(diǎn)關(guān)注這些點(diǎn),針對(duì)性的選擇特征,用于LR模型的訓(xùn)練和參數(shù)的調(diào)整,但是這種做法需要注意存在過擬合的風(fēng)險(xiǎn)。
          最后LR模型得到的預(yù)測(cè)結(jié)果為lr_pred。

          4.3? ?基于kpi_id之間的相似度
          在數(shù)據(jù)分析過程中發(fā)現(xiàn)了一個(gè)特點(diǎn):有些kpi_id之間具有較高的相似性:不僅曲線相似,它們還傾向于在同一個(gè)時(shí)刻發(fā)生異常(如下圖)。
          因此,可以考慮利用當(dāng)前時(shí)刻其他kpi_id的上述模型預(yù)測(cè)概率的加權(quán),來預(yù)測(cè)當(dāng)前時(shí)刻當(dāng)前kpi_id的異常概率,而不僅僅局限于對(duì)當(dāng)前kpi_id進(jìn)行建模。相似度度量方式主要有Jaccard系數(shù)、向量?jī)?nèi)積、余弦相似度、Pearson相關(guān)系數(shù)等。
          余弦相似度實(shí)際上是向量?jī)?nèi)積的歸一化形式,而Pearson相關(guān)系數(shù)則可以看成余弦相似度的去偏置(均值)形式。最后,我采用的相似度度量準(zhǔn)則是Pearson相關(guān)系數(shù),并加入了適當(dāng)?shù)氖止ば拚?,因?yàn)榛谙嗨贫鹊念A(yù)測(cè)效果,不同的kpi_id表現(xiàn)不盡相同。
          通過基于相似度的預(yù)測(cè),得到的預(yù)測(cè)結(jié)果為sim_pred。

          4.4模型融合
          最后四個(gè)結(jié)果(lgb_pred1、lgb_pred2、lr_pred、sim_pred)通過加權(quán)融合得到最終的預(yù)測(cè)結(jié)果。


          05


          總結(jié)和鳴謝



          (1)排行榜真的是焦慮源泉,不過有焦慮才有動(dòng)力;
          (2)另外,數(shù)據(jù)和特征才是王道,好的特征帶來的提分效果還是比較明顯的;
          (3)這里要感謝各位一起參賽的選手,從大家在微信群里的交流討論,以及思路和方案中學(xué)到了很多很多;
          (4)最后當(dāng)然要感謝主辦方,微信群內(nèi)的細(xì)致答疑、不定期拋出的學(xué)習(xí)資源、以及華為NAIE的服務(wù)資源等等,溫暖周到又貼心,點(diǎn)個(gè)大大的贊!


          加群交流學(xué)習(xí)

          ↓內(nèi)推、交流加小編

          瀏覽 180
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  精久久久久久久91 | 做爱小说视频免费观看网站 | 免看一级黄片 | 18禁全裸美女麻豆网站 | 成人性别视频影音先锋电影 |