【數據挖掘】ISCX2012數據集分析


使用語言:R

背景介紹:

ISCX2012數據集是目前使用比較廣泛的入侵檢測數據集,較於KDD99,該數據集的內容更新,數據樣本量更大。本次實驗中,我們將使用數據挖掘課程中介紹的知識,對ISCX2012數據集進行分析。

題目說明:

1)已知ISCX數據集中,Jun14這天發生了DoS攻擊,現要求使用決策樹方法對該天的數據進行處理,並驗證決策樹模型的准確率、精度和召回率

由於XML文檔不方便數據處理,將其導入為excel數據表

將該數據表導入到Rstudio中

1 install.packages("openxlsx")
2 library(openxlsx)
3 x<-read.xlsx("F:\\Testbed.xlsx")

得到結果

由於要處理的數據集中,只有totalSourceBytes,totalDestinationBytes,totalDestinationPackets,totalSourcePackets這四個列的對象為數據格式,因此把這四個數據作為分類標准,使用R語言中自帶的決策樹函數rpart對數據集進行分類,首先為了分類方便,將原數據集的上述屬性列及label列提取出來到一個新矩陣s,對s進行操作:

1 library(rpart)
2 s_tree = rpart(V5 ~ ., data = s)
3 print(s_tree)
4 plot(s_tree)
5 text(s_tree)

所得結果如下:

 

 

由於畫出的樹狀圖過於密集,我們對print產生的節點文本信息進行分析。產生的結果中,以405) totalSourcePackets< 2.5  204  19 Normal (0.0931372549 0.9068627451) *節點為例,totalSourcePackets< 2.5為分類標准,204為該節點的總數據量,19為該分類標准下判斷錯誤的數據個數,Normal為決策樹建模完成后該節點值被認為的label,(0.0931372549 0.9068627451)分別為誤判率與准確率。下面計算該決策樹模型的准率率,精度和召回率。以下計算中以Normal類為正類,由上述決策樹模型獲取數據TP(正類判斷正確)=166765,TN(負類判斷正確)=2862,FP(負類誤判為正類)=914,FN(正類誤判為負類)=839

根據准確率公式Accuracy=(TP+TN)/(TP+TN+FP+FN)計算准確率為98.977%

根據精度公式Precision=TP/(TP+FP)計算精度為99.455%

根據召回率公式Recall=TP/(TP+FN)計算召回率為99.500%

2)實際數據集中,由於其具有的樣本量很大和高維特性,我們在處理時需要先對數據進行處理,現要求對於ISCX數據集中Jun14這一天的數據,使用數據預處理方法,達到該目的。需要明確使用方法前后數據體量的變化,並分析通過預處理后的數據在使用決策樹方法進行訓練時,對模型准確率的影響。

首先使用數據降維預處理方式對數據集進行處理。(以下使用PCR方法)

先對四個列做主成分分析:

1 s.pr<-princomp(~totalSourceBytes+totalDestinationPackets+totalDestinationBytes+totalSourcePackets, data=s, cor=T)
2 summary(s.pr, loadings=TRUE)

 

 

由於Comp.1+Comp.2對主成分的差異比例貢獻超過99%,因此可以用Comp.1,Comp.2兩個維度的數據來表示原始數據,可得公式

Comp.1=-0.507*totalSourceBytes-0.571*totalDestinationPackets-0.307*totalDestinationBytes-0.568*totalSourcePackets      ①

Comp.2=0.475*totalSourceBytes-0.107*totalDestinationPackets-0.861*totalDestinationBytes+0.148* totalSourcePackets      ②

將公式①,②帶入原數據表,進行計算並生成新的數據表,原數據表的四維數據降維成二維數據,代碼如下:

1 Comp.1=-0.507*s$totalSourceBytes-0.571*s$totalDestinationPackets-0.307*s$totalDestinationBytes-0.568*s$totalSourcePackets
2 Comp.2=0.475*s$totalSourceBytes-0.107*s$totalDestinationPackets-0.861*s$totalDestinationBytes+0.148*s$totalSourcePackets
3 q=s[,1:3]
4 q[,1]=Comp.1
5 q[,2]=Comp.2
6 q[,3]=s[,5]
7 colnames(q) <- c("Comp.1","Comp.2","Label")

生成新表

 

在數據降維后形成的數據表q上建立新的樹模型:

1 q_tree = rpart(Label ~ ., data = q)
2 print(q_tree)
3 plot(q_tree)
4 text(q_tree)

 

 

按照1中的方法,計算准確率,新的決策樹模型中各參數指標為:

TP=167006,TN=2091,FP=1685,FN=598

根據准確率公式Accuracy=(TP+TN)/(TP+TN+FP+FN)計算准確率為98.668%

1中計算准確率為98.977%,本決策樹模型中,在原始數據降維之后,准確率幾乎沒有影響。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM