网络流量入侵检测数据集CIC-IDS-数据集预处理.pdf
- 文档编号:14660281
- 上传时间:2023-06-25
- 格式:PDF
- 页数:3
- 大小:114.24KB
网络流量入侵检测数据集CIC-IDS-数据集预处理.pdf
《网络流量入侵检测数据集CIC-IDS-数据集预处理.pdf》由会员分享,可在线阅读,更多相关《网络流量入侵检测数据集CIC-IDS-数据集预处理.pdf(3页珍藏版)》请在冰点文库上搜索。
【络流量侵检测数据集】CIC-IDS-2017数据集预处理络流量侵检测数据集CIC-IDS-2017数据预处理CIC-IDS-2017数据集包含良性和最新的常见攻击,类似真实世界数据(PCAPs)。
它的数据采集截2017年77(星期五)下午5时,共计5天。
星期是正常的天,只包括正常的流量。
实现的攻击包括暴FTP、暴SSH、DoS、Heartbleed、Web攻击、渗透、僵络和DDoS。
他们分别于周、周三、周四和周五上午和下午被执下载数据集CIC-IDS-2017侵检测数据集,包含以下8个CSV件:
可以于机器学习的训练1.Friday-WorkingHours-Afternoon-DDos.pcap_ISCX.csv2.Friday-WorkingHours-Afternoon-PortScan.pcap_ISCX.csv3.Friday-WorkingHours-Morning.pcap_ISCX.csv4.Monday-WorkingHours.pcap_ISCX.csv5.Thursday-WorkingHours-Afternoon-Infilteration.pcap_ISCX.csv6.Thursday-WorkingHours-Morning-WebAttacks.pcap_ISCX7.Tuesday-WorkingHours.pcap_ISC8.Wednesday-workingHours.pcap_ISCX1.去掉特征importpandasaspdfile_path=rE:
CIC-IDS-2017Friday-WorkingHours-Morning.pcap_ISCX.csvdata=pd.read_csv(file_path,header=None)print(data)data2=data.drop(0,axis=0)print(data2)data2.to_csv(E:
CIC-IDS-2017Friday1-WorkingHours-Morning.pcap_ISCX.csv,sep=,header=False,index=False)2.本转化为数值importnumpyasnpimportpandasaspdimportcsvgloballabel_list#label_list为全局变量#在编写程序的时候,如果想为个在函数外的变量重新赋值,并且这个变量会作于许多函数中时,就需要告诉python这个变量的作域是全局变量。
此时global语句就可以变成这个任务,也就是说没有global语句的情况下,是不能修改全局变量的。
#定义数据预处理函数defpreHandel_data():
source_file=E:
CIC-IDS-2017Friday1-WorkingHours-Morning.pcap_ISCX.csv#源件handled_file=E:
CIC-IDS-2017Friday2-WorkingHours-Morning.pcap_ISCX.csv#处理后的件data_file=open(handled_file,w,newline=)#python中添加newline=这参数使写的件没有多余的空#W打开个件只于写。
如果该件不存在,创建新件。
#r以只读式打开件。
件的指针将会放在件的开头。
这是默认模式。
withopen(source_file,r)asdata_source:
#只读式打开源件csv_reader=csv.reader(data_source)#读取源件#返回个reader对象,该对象将遍历csv件中的。
从csv件中读取的每都作为字符串列表返回。
csv_writer=csv.writer(data_file)#写件count=0#记录数据的数,初始化为0forrowincsv_reader:
#读取csv中每为个listtemp_line=np.array(row)#将每数据存temp_line数组#temp_line1=handleProtocol(row)#数组的第列为handprotocal函数处理后的值#temp_line2=handleService(row)#temp_line3=handleFlag(row)temp_line78=handleLabel(row)csv_writer.writerow(temp_line)#将转换后的件存csv_write中count+=1#输出每数据中所修改后的状态#print(count,status:
temp_line1,temp_line2,temp_line3,temp_line78)print(count,status:
temp_line78)data_file.close()#关闭处理后的件deffind_index(x,y):
#x表数组元素,y表数组元素的索引returniforiinrange(len(y)ifyi=x#从0开始遍历到结束,如果这列有对对应的字符串,返回对应的数字表#定义将源件中攻击类型转换成数字标识的函数(训练集中共出现了22个攻击类型,剩下的17种只在测试集中出现)defhandleLabel(input):
globallabel_list#在函数内部使全局变量并修改它ifinput78inlabel_list:
returnfind_index(input78,label_list)0else:
label_list.append(input78)returnfind_index(input78,label_list)0if_name_=_main_:
globallabel_list#声明个全局变量的列表并初始化为空label_list=preHandel_data()3.删除的缺失值所在importnumpyasnpimportpandasaspd#读取数据,将空值形式的缺失值转换为可识别的类型fromnumpyimportNaNdata=pd.read_csv(E:
CIC-IDS-2017Friday2-WorkingHours-Morning.pcap_ISCX.csv,encoding=GBK)print(np.isnan(data).any()data1=data.dropna(axis=0)print(data1)data1.to_csv(E:
CIC-IDS-2017Friday3-WorkingHours-Morning.pcap_ISCX.csv,sep=,header=False,index=False)4.删除标签列,得到训练所特征集importpandasaspdfile_path=rE:
CIC-IDS-2017Friday3-WorkingHours-Morning.pcap_ISCX.csvdata=pd.read_csv(file_path,header=None)print(data)data2=data.drop(78,axis=1)print(data2)data2.to_csv(E:
CIC-IDS-2017Friday4-WorkingHours-Morning.pcap_ISCX.csv,sep=,header=False,index=False)5.对特征数据进归化importnumpyasnpimportcsvdata=np.loadtxt(open(E:
CIC-IDS-2017Friday4-WorkingHours-Morning.pcap_ISCX.csv,rb),delimiter=,skiprows=0)mmax=np.max(data,axis=0)mmin=np.min(data,axis=0)foriinrange(len(mmax):
ifmmaxi=mmini:
mmaxi+=0.000001#avoidgettingdevidedby0data1=(data-mmin)/(mmax-mmin)#最最规范化print(data1)withopen(E:
CIC-IDS-2017Friday5-WorkingHours-Morning.pcap_ISCX.csv,w+,newline=)ascsvfile:
writer=csv.writer(csvfile)#写多writerowswriter.writerows(data1)6.对标签列进独热编码fromnumpyimportarrayfromnumpyimportargmaxfromsklearn.preprocessingimportLabelEncoderimportpandasaspdimportnumpyasnpfromsklearn.preprocessingimportOneHotEncoderdf=pd.read_csv(E:
CIC-IDS-2017Friday3-WorkingHours-Morning.pcap_ISCX.csv,header=None,index_col=None)col=df.iloc:
78#所有,第79列arrs=col.values#返回由这列构成的表#输出结果print(arrs)data=np.array(arrs)values=array(data)print(values)#integerencodelabel_encoder=LabelEncoder()integer_encoded=label_encoder.fit_transform(values)print(integer_encoded)data3=pd.DataFrame(integer_encoded)#header:
原第的索引,index:
原第列的索引data3.to_csv(E:
CIC-IDS-2017Friday6-WorkingHours-Morning.pcap_ISCX.csv,header=None,index=0)#binaryencodeonehot_encoder=OneHotEncoder(sparse=False)integer_encoded=integer_encoded.reshape(len(integer_encoded),1)onehot_encoded=onehot_encoder.fit_transform(integer_encoded)print(onehot_encoded)data4=pd.DataFrame(onehot_encoded)#header:
原第的索引,index:
原第列的索引data4.to_csv(E:
CIC-IDS-2017Friday7-WorkingHours-Morning.pcap_ISCX.csv,header=None,index=0)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网络流量 入侵 检测 数据 CIC IDS 预处理