吳瓊,李永飛
摘要:異常數(shù)據(jù)檢測(cè)的問(wèn)題近年來(lái)日益成為統(tǒng)計(jì)分析、機(jī)器學(xué)習(xí)、數(shù)據(jù)挖掘等諸多領(lǐng)域的研究熱點(diǎn)之一,異常數(shù)據(jù)檢測(cè)是實(shí)現(xiàn)數(shù)據(jù)質(zhì)量提升的一個(gè)關(guān)鍵。異常數(shù)據(jù)檢測(cè)中存在物聯(lián)網(wǎng)數(shù)據(jù)來(lái)源不可靠、異常數(shù)據(jù)檢測(cè)結(jié)果不穩(wěn)定和不準(zhǔn)確等問(wèn)題,實(shí)驗(yàn)采用基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)算法,通過(guò)python數(shù)據(jù)分析,采用真實(shí)的數(shù)據(jù)即白洋淀生態(tài)物聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行實(shí)驗(yàn)驗(yàn)證,對(duì)比幾種基于機(jī)器學(xué)習(xí)的異常檢測(cè)算法的異常檢測(cè)效果,采用真實(shí)數(shù)據(jù)具有一定的應(yīng)用意義。
關(guān)鍵詞:真實(shí)數(shù)據(jù);異常數(shù)據(jù)檢測(cè);聚類分析;K-means算法;DBSCAN算法
中圖分類號(hào):TP181? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)35-0007-03
1 概述
白洋淀是華北地區(qū)最大的濕地生態(tài)系統(tǒng)被稱為“華北之腎”,多年來(lái)由于上游生活污水和工業(yè)污水的排放、機(jī)械船只增多等因素,白洋淀水質(zhì)不斷惡化。自2017年4月1日起,白洋淀生態(tài)環(huán)境治理和保護(hù)攻堅(jiān)戰(zhàn)打響。修復(fù)白洋淀生態(tài)的關(guān)鍵在于水域環(huán)境,改善水域內(nèi)水體環(huán)境才能保障和恢復(fù)生物的多樣性。白洋淀的生態(tài)數(shù)據(jù)通過(guò)物聯(lián)網(wǎng)傳感器實(shí)時(shí)采集,為了保證白洋淀生態(tài)物聯(lián)網(wǎng)數(shù)據(jù)的真實(shí)性和可信性,需要對(duì)采集到的數(shù)據(jù)做出預(yù)處理。異常數(shù)據(jù)影響數(shù)據(jù)質(zhì)量,異常數(shù)據(jù)檢測(cè)能實(shí)現(xiàn)數(shù)據(jù)質(zhì)量的提升與潛在信息的挖掘。在當(dāng)前生態(tài)環(huán)境監(jiān)測(cè)中應(yīng)用物聯(lián)網(wǎng)技術(shù),建立自動(dòng)監(jiān)測(cè)站實(shí)現(xiàn)全天實(shí)時(shí)監(jiān)測(cè)。物聯(lián)網(wǎng)技術(shù)可以對(duì)數(shù)據(jù)信息精準(zhǔn)識(shí)別和快速傳遞,讓生態(tài)監(jiān)測(cè)的整個(gè)過(guò)程變得系統(tǒng)化和透明化。
異常數(shù)據(jù)檢測(cè)方法是通過(guò)統(tǒng)計(jì)分析、數(shù)據(jù)挖掘等技術(shù)來(lái)識(shí)別數(shù)據(jù)中的“異常點(diǎn)”,是指從數(shù)據(jù)中找出明顯與其他數(shù)據(jù)不同的數(shù)據(jù)。離群點(diǎn)檢測(cè)的概念最早由Hawkins在1980年提出,異常是指非隨機(jī)產(chǎn)生的不同于數(shù)據(jù)集其他數(shù)據(jù)的數(shù)據(jù)[1]。異常數(shù)據(jù)可能是噪聲,也可能是有價(jià)值的數(shù)據(jù)。異常數(shù)據(jù)檢測(cè)是數(shù)據(jù)挖掘應(yīng)用中的一項(xiàng)關(guān)鍵技術(shù),是指從數(shù)據(jù)集中找出與預(yù)期行為不符的模式。異常數(shù)據(jù)檢測(cè)對(duì)保障數(shù)據(jù)的可信性有重要作用,異常數(shù)據(jù)通常占比可能較小但可能蘊(yùn)含豐富的內(nèi)容。因此異常數(shù)據(jù)檢測(cè)方法具有重要的研究意義和實(shí)踐應(yīng)用,并且其對(duì)保障檢測(cè)數(shù)據(jù)可行性方面也有積極的作用。異常數(shù)據(jù)檢測(cè)作為數(shù)據(jù)分析的任務(wù)模塊之一,數(shù)據(jù)分析工作進(jìn)行異常數(shù)據(jù)檢測(cè)的價(jià)值在于及時(shí)發(fā)現(xiàn)異常,進(jìn)而準(zhǔn)確發(fā)出風(fēng)險(xiǎn)預(yù)警信息或以此科學(xué)有力的信息輔助分析決策者如何做好系統(tǒng)下一步風(fēng)險(xiǎn)決策。比如消除安全隱患、擴(kuò)展國(guó)內(nèi)市場(chǎng)份額、提高公司經(jīng)濟(jì)效益、生態(tài)環(huán)境監(jiān)測(cè)等。異常數(shù)據(jù)分析中涵蓋大量有用數(shù)據(jù)信息,是當(dāng)今數(shù)據(jù)科學(xué)前沿中一個(gè)廣泛研究的問(wèn)題。異常數(shù)據(jù)的檢測(cè)已逐漸成為數(shù)據(jù)挖掘等領(lǐng)域的熱點(diǎn)研究之一[2]。根據(jù)異常檢測(cè)面向的數(shù)據(jù)類型、研究領(lǐng)域等的不同,各種各樣的異常數(shù)據(jù)檢測(cè)方法不斷被提出和改進(jìn)。關(guān)于異常檢測(cè)領(lǐng)域的一個(gè)較為深入詳細(xì)的研究工作是 C. C. Aggarwal 等人做出來(lái)的。由于不同領(lǐng)域數(shù)據(jù)的差異性較大,根據(jù)其正、異常狀態(tài)情況。異常檢測(cè)方法為入侵攻擊檢測(cè)、欺詐交易檢測(cè)、故障檢測(cè)[3]、圖像處理、安全與監(jiān)控、文本數(shù)據(jù)異常數(shù)據(jù)檢測(cè)、傳感器網(wǎng)絡(luò)異常檢測(cè)、應(yīng)急管理、醫(yī)療公共衛(wèi)生、網(wǎng)絡(luò)信息安全等領(lǐng)域的應(yīng)用提供重要的參考依據(jù)[4]。
異常數(shù)據(jù)檢測(cè)方法一般分為基于統(tǒng)計(jì)學(xué)的、基于聚類的、基于距離的、基于密度的、基于分類的、基于預(yù)測(cè)的等等。異常數(shù)據(jù)檢測(cè)的應(yīng)用最早出現(xiàn)在統(tǒng)計(jì)學(xué)領(lǐng)域。基于統(tǒng)計(jì)學(xué)的異常檢測(cè)方法在處理異常數(shù)據(jù)時(shí),一般會(huì)構(gòu)建一個(gè)概率分布模型,并會(huì)計(jì)算數(shù)據(jù)對(duì)象符合該統(tǒng)計(jì)模型的概率,把概率較低的對(duì)象視為異常。基于統(tǒng)計(jì)學(xué)的檢測(cè)方法有無(wú)參數(shù)的代表直方圖和有參數(shù)的代表高斯模型等,該模型方法優(yōu)點(diǎn)是基于數(shù)據(jù)分布快速且精準(zhǔn)、魯棒性比較好,不足是需要預(yù)先假設(shè)數(shù)據(jù)的分布情況,而且通常不適用于高維的數(shù)據(jù)。隨著計(jì)算機(jī)科學(xué)及相關(guān)技術(shù)的更新?lián)Q代,計(jì)算機(jī)方向的專家和學(xué)者利用在數(shù)據(jù)管理方面的經(jīng)驗(yàn)可以對(duì)多種類型的數(shù)據(jù)進(jìn)行異常的分析,之后基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)方法逐漸成為一種趨勢(shì)?;跈C(jī)器學(xué)習(xí)的方法按照是否需要進(jìn)行人工標(biāo)記則可以分為無(wú)監(jiān)督模式、半監(jiān)督模式和有監(jiān)督模式。在有監(jiān)督的模式下需要有標(biāo)簽的數(shù)據(jù)作為支撐,而樣本標(biāo)簽的獲取具有很大的代價(jià)。在無(wú)監(jiān)督的模式不需要依賴任何標(biāo)簽,也不完全依賴完善的先驗(yàn)知識(shí),可以通過(guò)聚類分析等方法獲取邊界條件以檢測(cè)出異常值,因此無(wú)監(jiān)督模式在異常數(shù)據(jù)檢測(cè)領(lǐng)域里應(yīng)用會(huì)更加廣泛。目前基于聚類分析的異常檢測(cè)方法是異常檢測(cè)技術(shù)中最常用的一類方法[5]。
聚類算法的分析是數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)領(lǐng)域的重要研究課題之一,它是無(wú)監(jiān)督模式識(shí)別,可以根據(jù)數(shù)據(jù)的相似度把數(shù)據(jù)劃分為多個(gè)類或類簇[6]。在計(jì)算機(jī)學(xué)科的領(lǐng)域中,聚類算法是數(shù)據(jù)挖掘和人工智能應(yīng)用中不能或缺的研究基礎(chǔ),它起著不可或缺的作用。并且異常數(shù)據(jù)的檢測(cè)是聚類分析方法下的重要組成部分,用于檢測(cè)數(shù)據(jù)樣本中所有的異常點(diǎn)。異常點(diǎn)在聚類分析中表現(xiàn)為單個(gè)聚類簇,可以明顯區(qū)分出正常樣本和異常樣本。比如經(jīng)典的DBSCAN算法可以在聚類的同時(shí),也可以識(shí)別出異常數(shù)據(jù)?;趯S玫漠惓?shù)據(jù)檢測(cè)算法,這些算法不像基于聚類算法的異常點(diǎn)檢測(cè)只是一個(gè)附加項(xiàng),它們的目的是專門用來(lái)檢測(cè)異常數(shù)據(jù)的,主要的算法代表是One Class SVM算法和Isolation Forest算法?;诮彽姆椒òɑ诰嚯x和基于密度的方法,其代表算法有LOF算法和COF算法?;谧罱彽姆椒╗7]利用計(jì)算各數(shù)據(jù)實(shí)例之間的距離進(jìn)而實(shí)現(xiàn)對(duì)該數(shù)據(jù)實(shí)例的分析,當(dāng)結(jié)果中某個(gè)實(shí)例遠(yuǎn)離它的鄰居時(shí),則該實(shí)例被視為異常數(shù)據(jù)。這種類型的方法不依賴數(shù)據(jù)的任何先驗(yàn)知識(shí),但缺點(diǎn)是所設(shè)定的輸入?yún)?shù)對(duì)檢測(cè)結(jié)果則存在很大的影響,而且計(jì)算各數(shù)據(jù)實(shí)例之間距離的成本會(huì)比較大。基于密度的檢測(cè)方法是通過(guò)比較每個(gè)點(diǎn)和其鄰域點(diǎn)的密度來(lái)判斷該點(diǎn)是否為異常點(diǎn)。當(dāng)一個(gè)點(diǎn)與包圍其鄰居的密度不同時(shí),則為異常點(diǎn)。
2 基于機(jī)器學(xué)習(xí)的異常檢測(cè)算法
基于聚類的方法其代表算法有K-means算法和DBSCAN算法,采用距離、密度等信息,將相似度高的數(shù)據(jù)聚為一個(gè)簇,如果最終數(shù)據(jù)不屬于任何一個(gè)簇的離群點(diǎn),則視為異常[8]。K-means算法實(shí)現(xiàn)比較簡(jiǎn)單、聚類效果也不錯(cuò),不需要數(shù)據(jù)標(biāo)簽和先驗(yàn)知識(shí)。基于密度的方法其常用的算法主要有LOF算法和COF算法,可以依據(jù)異常的程度給一個(gè)定量的值,具有較好的魯棒性。還有其他基于專用的異常檢測(cè)方法主要有One Class SVM算法,它是無(wú)監(jiān)督不需要標(biāo)記訓(xùn)練集和輸出標(biāo)簽,適合用于解決極度不平衡的數(shù)據(jù);還有Isolation Forest算法具有線性時(shí)間復(fù)雜度,處理異常數(shù)據(jù)快速且準(zhǔn)確,并且可以滿足實(shí)時(shí)性的要求。表1介紹了基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)算法。
3 算法實(shí)現(xiàn)及結(jié)果分析
3.1數(shù)據(jù)來(lái)源
為了驗(yàn)證基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)算法的有效性,采用真實(shí)的數(shù)據(jù)即白洋淀物聯(lián)網(wǎng)生態(tài)監(jiān)測(cè)數(shù)據(jù)。該數(shù)據(jù)集包括溫度、COD、葉綠素等元素,本實(shí)驗(yàn)數(shù)據(jù)分析是采用靜態(tài)數(shù)據(jù)即走航數(shù)據(jù),該數(shù)據(jù)用excel表格存儲(chǔ)。以數(shù)據(jù)本身特征為研究對(duì)象,研究物聯(lián)網(wǎng)數(shù)據(jù)的基本特征即可變性、真實(shí)性、復(fù)雜性等。
3.2數(shù)據(jù)預(yù)處理
異常數(shù)據(jù)檢測(cè)可以保證物聯(lián)網(wǎng)數(shù)據(jù)的可信性和完整性。異常數(shù)據(jù)檢測(cè)算法是建立在數(shù)據(jù)特征上的,因此研究數(shù)據(jù)特征具有重要作用。首先為了避免數(shù)據(jù)受到不必要的干擾,要正確的、真實(shí)的、完全的代表實(shí)際數(shù)據(jù)發(fā)生的方式收集、記錄、報(bào)告和保存數(shù)據(jù)。其次由于采集到的數(shù)據(jù)本身存在噪聲、不一致、不可靠等問(wèn)題,因此首先對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,然后進(jìn)行下一步的數(shù)據(jù)分析處理,最后再選擇合適的異常數(shù)據(jù)檢測(cè)算法。實(shí)驗(yàn)中對(duì)原始數(shù)據(jù)進(jìn)行預(yù)處理,然后對(duì)5200多條數(shù)據(jù)樣本做數(shù)據(jù)分析,采用基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)算法對(duì)白洋淀生態(tài)數(shù)據(jù)集進(jìn)行多次異常數(shù)據(jù)檢測(cè)[9]。
3.3異常數(shù)據(jù)檢測(cè)流程
異常數(shù)據(jù)檢測(cè)的基本流程是數(shù)據(jù)采集、依據(jù)物聯(lián)網(wǎng)數(shù)據(jù)特征進(jìn)行數(shù)據(jù)預(yù)處理、再進(jìn)行異常數(shù)據(jù)檢測(cè)、最后進(jìn)行異常數(shù)據(jù)判斷。異常數(shù)據(jù)檢測(cè)流程圖如圖1所示。
3.4實(shí)驗(yàn)環(huán)境
實(shí)驗(yàn)硬件環(huán)境:CPU是Intel(R)Core(TM)i5-6200U @2.30GHz,內(nèi)存為8GB,操作系統(tǒng)是Windows10。實(shí)驗(yàn)采用真實(shí)數(shù)據(jù)即白洋淀生態(tài)物聯(lián)網(wǎng)數(shù)據(jù)集。
實(shí)驗(yàn)軟件環(huán)境:編程采用Python語(yǔ)言,仿真軟件環(huán)境為Pycharm,采用Sklearn機(jī)器學(xué)習(xí)框架下實(shí)現(xiàn)異常數(shù)據(jù)檢測(cè)算法。
3.5實(shí)驗(yàn)過(guò)程及結(jié)果分析
實(shí)驗(yàn)采用數(shù)據(jù)預(yù)處理方法得到的5200多條數(shù)據(jù)樣本。選取白洋淀物聯(lián)網(wǎng)生態(tài)數(shù)據(jù)中的兩列即“溫度”和“COD”兩個(gè)字段,利用基于聚類的、基于密度和基于其他專用異常數(shù)據(jù)檢測(cè)算法共三類算法做異常數(shù)據(jù)檢測(cè)工作。
數(shù)據(jù)可視化展示采用PCA降維方法,通過(guò)PCA降維后,用二維坐標(biāo)展示異常數(shù)據(jù)結(jié)果分布圖。采用DBSCAN算法進(jìn)行異常數(shù)據(jù)算法使用數(shù)據(jù)中“溫度”和“COD”兩個(gè)字段,每個(gè)字段選取500條數(shù)據(jù),結(jié)果異常數(shù)據(jù)量為21個(gè),DBSCAN算法異常數(shù)據(jù)結(jié)果分布如圖2所示。
采用K-means算法進(jìn)行異常數(shù)據(jù)算法是使用數(shù)據(jù)中“溫度”和“COD”兩個(gè)字段,每個(gè)字段選取500條數(shù)據(jù),結(jié)果異常數(shù)據(jù)量為101個(gè),K-means算法異常數(shù)據(jù)結(jié)果分布如圖3所示。
通過(guò)實(shí)驗(yàn)同樣的數(shù)據(jù)集采用的算法不同異常數(shù)據(jù)檢測(cè)的結(jié)果也不同,同一種算法選取數(shù)據(jù)量不同則異常數(shù)據(jù)量占比也不同,具體算法實(shí)現(xiàn)結(jié)果表2所示。
4 結(jié)論
1)通過(guò)算法實(shí)現(xiàn),同樣的數(shù)據(jù)集采用不同的算法異常數(shù)據(jù)檢測(cè)的結(jié)果也不同,同一種算法選取數(shù)據(jù)量不同則異常數(shù)據(jù)量的占比不同。為了異常數(shù)據(jù)檢測(cè)的結(jié)果更準(zhǔn)確,可以對(duì)比幾種算法的結(jié)果最終在確定異常數(shù)據(jù)情況。一個(gè)思路是在基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)中沒有一種算法適合所有的情況,可以考慮采用基于集成學(xué)習(xí)的思路,把各個(gè)算法看成學(xué)習(xí)器,采用投票的方式來(lái)判斷數(shù)據(jù)是否屬于異常。另一個(gè)思路是改進(jìn)算法,比如K-means算法屬于隨機(jī)選取的初始聚類中心點(diǎn),因此會(huì)導(dǎo)致聚類結(jié)果不穩(wěn)定,影響異常數(shù)據(jù)檢測(cè)的結(jié)果。改進(jìn)初始聚類中心選取的方法可以提高聚類結(jié)果的穩(wěn)定性方向出發(fā),比如處理聚類中心點(diǎn)的可以引入“最大最小思想”到算法中,避免陷入局部最小。
2)在數(shù)據(jù)處理模型中聚類分析法具有較為廣泛的應(yīng)用場(chǎng)景,但在產(chǎn)生海量數(shù)據(jù)時(shí)存在計(jì)算速度較慢的問(wèn)題。因此在當(dāng)前大數(shù)據(jù)背景下,需要考慮對(duì)基于機(jī)器學(xué)習(xí)的異常數(shù)據(jù)檢測(cè)算法進(jìn)行改進(jìn)優(yōu)化,進(jìn)而提高在異常數(shù)據(jù)檢測(cè)中的優(yōu)勢(shì)。物聯(lián)網(wǎng)監(jiān)測(cè)所產(chǎn)生的海量實(shí)時(shí)數(shù)據(jù),已經(jīng)對(duì)傳統(tǒng)異常數(shù)據(jù)檢測(cè)方法帶來(lái)了新的挑戰(zhàn)。實(shí)時(shí)的異常檢測(cè)開始成為一種趨勢(shì),對(duì)于工業(yè)生產(chǎn)安全、醫(yī)療技術(shù)發(fā)展、網(wǎng)絡(luò)入侵、實(shí)現(xiàn)數(shù)據(jù)預(yù)測(cè)等領(lǐng)域?qū)崟r(shí)的異常檢測(cè)有著重要的意義,可以避免發(fā)生意外和減少經(jīng)濟(jì)損失。
參考文獻(xiàn):
[1] 孟海東,孫新軍,宋宇辰.基于數(shù)據(jù)場(chǎng)的改進(jìn)LOF算法[J].計(jì)算機(jī)工程與應(yīng)用,2019,55(3):154-158.
[2] 蔣華,武堯,王鑫,等.改進(jìn)K均值聚類的海洋數(shù)據(jù)異常檢測(cè)算法研究[J].計(jì)算機(jī)科學(xué),2019,46(7):211-216.
[3] 馬速良,武亦文,李建林,等.聚類分析架構(gòu)下基于遺傳算法的電池異常數(shù)據(jù)檢測(cè)方法[J/OL].電網(wǎng)技術(shù):1-11[2022-12-06].DOI:10.13335/j.1000-3673.pst.2021.1871.
[4] 李科心,李靜,邵佳煒,等.多層次序列集成的高維數(shù)值型異常檢測(cè)[J].計(jì)算機(jī)與現(xiàn)代化,2020(6):73-82.
[5] 盧夢(mèng)茹,周昌軍,劉華文,等.基于二階近鄰的異常檢測(cè)[J/OL].計(jì)算機(jī)系統(tǒng)應(yīng)用:1-10[2022-12-06].DOI:10.15888/j.cnki.csa.008968.
[6] Breunig M M,Kriegel H P,Ng R T,et al.Lof[J].ACM SIGMOD Record,2000,29(2):93-104.
[7] Branch J W,Giannella C,Szymanski B,et al.In-network outlier detection in wireless sensor networks[J].Knowledge and Information Systems,2013,34(1):23-54.
[8] 祁超帥,何文思,焦毅,等.無(wú)人機(jī)飛行數(shù)據(jù)異常檢測(cè)算法綜述[J/OL].計(jì)算機(jī)應(yīng)用,2022:1-11.(2022-11-28).https://kns.cnki.net/kcms/detail/51.1307.tp.20221125.0927.002.html.
[9] 丁衛(wèi)東.基于聚類分析的異常數(shù)據(jù)檢測(cè)[J].電子技術(shù)與軟件工程,2020(15):185-186.
【通聯(lián)編輯:唐一東】