首页 > 代码库 > 第二次毕业设计任务书(KDD数据研究)
第二次毕业设计任务书(KDD数据研究)
1、周计划表
时间 | 计划任务 | 完成情况 |
3.9-3.16 | 初步分析了KDD数据,并用程序实现初步处理 | 50% |
3.17-3.24 | 了解matlab下的神经网络编程,尝试使用工具包完成简单的功能实现 |
|
3.24-3.31 | 对数据进行再次分析处理,根据输出结果筛选出有用的属性值,并对matlab做架构思考 |
2、本周完成情况
研究KDD数据:
参考网址KDD CUP 99网页,了解41个属性值,并下载源文件决定使用其中的10%样本数据37万条数据作为训练数据(后期可能会思考删除某些属性和对文件条目进行随机筛选,否则源数据将跑死内存)
2、处理脚本分析:
替换文本中字符的部分脚本:
import fileinput
import sys
print len(sys.argv)
for i in range(1,len(sys.argv)):
print i , sys.argv[i]
filename=sys.argv[i]
print filename
for line in fileinput.input(filename,backup=‘.bak‘,inplace=1):
print line.rstrip().replace(‘tcp‘,‘1‘).replace(‘udp‘,‘2‘).replace(‘icmp‘,‘3‘)
2、将文本转变成matlab可识别的xls文件脚本
xlsxPath = os.path.join(os.path.dirname(path),
os.path.splitext(os.path.basename(path))[0] + ‘.xlsx‘)
workbook = xlsxwriter.Workbook(xlsxPath)
BUFSIZE = 1024
EXCEL_ROWS = 1040000
EXCEL_COLS = 16384
FIELD_SEPARATOR = ‘\t‘
with open(path, ‘r‘) as f:
nrows, total_rows, sheet_num = 0, 0, 0
lines = f.readlines(BUFSIZE)
while lines:
for line in lines:
if (total_rows % EXCEL_ROWS == 0) :
worksheet = workbook.add_worksheet(name = ‘sheet‘ + str(sheet_num))
nrows = 0
sheet_num = sheet_num + 1
values = line.split(FIELD_SEPARATOR)
cols_num = EXCEL_COLS if len(values) > EXCEL_COLS else len(values)
for ncol in xrange(cols_num):
worksheet.write(nrows, ncol, values[ncol])
nrows = nrows + 1
total_rows = total_rows + 1
lines = f.readlines(BUFSIZE)
workbook.close()
所有的源文件放在我的百度网盘
链接:http://pan.baidu.com/s/1o7H43Iq 密码:tdzk
3、对于数据源的分析理解:
对于入侵数据,根据之前经验的认识是这样的:
黑客入侵行为是一段时间内的一个或者多个主机对于目标机器的危险探测访问
KDD 99中所记录的数据是研究者通过一定的筛选方式累加出一段时间的异常行为次数,通过这样一定数量的访问动作猜测出非法行为
举例:
probe 可能探测简单的是网段内主机和主机IP的探测,必然跟随连串的IP数字和端口的递增(减)变化,如下参数都是可能作为判断probe的条件,srv_count. 过去两秒内,与当前连接具有相同服务的连接数,连续,[0, 511]。而这不是简单的抓包可以实现的,必须基于大量的数据源。而KDD99数据已经完成了最初的源数据洗练。
本周心得:
大学多学学课外的东西,视野宽阔挺好的
第二次毕业设计任务书(KDD数据研究)