**精品導航:http://www.nitaomei.com
2改進的基於密度的離群資料探勘idbom
上述的基於密度的離群資料探勘演算法能夠較好地挖掘出資料集中的離群資料,該演算法的平均執行時間複雜度為o(n2)(n為資料集中包含的資料物件數目)。它主要是通過對資料集中每個資料物件進行判斷,如果它的鄰域內某乙個資料物件是乙個核心物件,即它包含在某乙個核心物件的鄰域內,該資料物件就不是離群資料,否則是離群資料。從離群資料的特徵來看,離群資料往往是比較稀疏的、在資料集中所佔比例比較小的資料因此,上述演算法對每個資料及其鄰域內的資料進行相關判斷,顯然效率就比較低下。
定理1如果乙個資料物件是核心物件,那麼該資料的鄰域內的資料都不是離群資料。
證明假設存在乙個資料集d,c為d中關於ε和minpts的核心資料物件,cε—set為c的ε—鄰域集,那麼對cε—set中的任意乙個資料物件p,都有d(c,p)≤ε,即從核心資料物件c出發,可以直接密度到達資料物件p,由定義5可知,資料物件p不是離群資料物件。
定理2某個資料物件是離群資料是其ε—鄰域內資料物件的個數少於minpts個的充分條件。
證明設存在乙個資料集d,o為d中關於ε和minpts的離群資料物件,oε—set為o的ε—鄰域集,由定義5可知,|oε—set|≤minpts;假設在資料集的邊緣存在乙個資料物件q∈|qεset|≤minpts, c為資料集中乙個核心資料物件,且有q∈cε—set,根據定義5可知q不是離群資料物件。
基於上述定理,我們不對資料集中每個資料物件的鄰域內判斷是否存在乙個核心資料物件,而是只判斷鄰域內資料物件個數少於minpts個的資料物件的鄰域內是否存在核心資料物件。如果某乙個資料物件p是核心資料物件則將其及其鄰域內的資料物件打上暫不運算的標籤及非離群資料的標籤;反之按下述方式處理其鄰域內的資料物件:若p的鄰域和某個核心資料物件c的鄰域資料物件交集不為空,那麼判斷這些交集中的資料物件是否存在核心資料物件,若存在則p不是離群資料。如果和任何核心資料物件的ε鄰域交集為空或交集內不含核心資料物件則p就是離群資料物件。改進的演算法描述如下:
3演算法測試
這裡對基於密度的離群資料探勘演算法進行了測試,演算法是用matlab實現的,實驗的環境是一台p4 2.93g、記憶體1gb的計算機,通過對網路中心的某資料集進行測試,在ε=50和minpts=3的條件下,共挖掘出3個離群資料,經過檢測,其中兩個離群點是由病毒造成的網路不正常,另外乙個是由於乙個實驗室進行網路對拷傳送廣播報文引起的網路堵塞造成的。其中優化後的演算法的運算時間是優化前的三分之一。在運算的過程中發現,ε和minpts取值不同,挖掘出的離群資料的個數也可能不同,這說明了基於密度的離群資料探勘演算法對輸入引數有一定的敏感性。
一種基於密度峰值的聚類演算法
2014年science刊發了一篇標題為clustering by fast search and find of density peaks的文章,文章中介紹了一種基於密度峰值的聚類演算法。傳統的聚類演算法k means,通常不適用於非球形的簇。這裡所謂的球形簇是根據k means演算法基本原理得...
一種基於mget的資料持久辦法
專案中需要一部分資料常駐於redis中,但是要求資料冷卻下來之後自動掉出記憶體,所以使用了如下的方法 材料php,mget,sql 的 in 首先方法體開頭迴圈傳入的陣列引數list,拼接成redis中的key,存放於新陣列userlist中,然後呼叫mget userlist 獲得結果settin...
桌面軟體底層日誌的一種改進設計
為此需要改變原來的以文字檔案充當日誌檔案的做法,改用sqlite資料庫檔案來充當日誌檔案。採用sqlite資料庫檔案充當日誌檔案,一是可以只採用乙個日誌檔案,二是可以開發相關的日誌分析工具。特別是在並行處理系統中,日誌是一種重要的除錯手段。基於資料庫的分析工具毫無疑問要比基於文字檔案的分析工具更為強...