# 机器学习及深度学习实现IDS✨
## 1、说明
- 本文档用来记录机器学习课程作业,完成机器学习及深度学习实现入侵检测。
- 数据集为UNSW_NB15官方数据集,42列特征,一列标签,二分类问题;
- 采用的方法为:① 特征处理;② Pearson过滤和随机森林特征选择;③ CNN训练
- 参考的文档为《基于深度神经网络的网络入侵检测技术》
[数据集官网:](https://research.unsw.edu.au/projects/unsw-nb15-dataset)
[数据集下载地址](https://cloudstor.aarnet.edu.au/plus/index.php/s/2DhnLGDdEECo4ys?path=%2FUNSW-NB15%20-%20CSV%20Files)
## 2、代码
运行代码前确保安装有sklearn包和Tensorflow以及keras,注意Tensorflow和keras的对应关系。
`pip install -r requirements.txt`安装环境依赖即可
代码的结构如下:
<img src="https://gitee.com/kkkcstx/kkkcs/raw/master/img/20220419092935.png" style="zoom: 67%;" />
`StrTonum.py`:将数值型特征转化为字符型,才能送入模型训练;
`Min-max`:对数据进行归一化处理,加快模型的训练;
`Balanced.py`:对正负样本个数进行平衡处理,参考论文中ADASYN算法;
`Pearson.py`:计算不同特征及之间的相关性系数;
`Find_feature.py`:随机森林进行特征选择;
`Pro_Testdata.py`:对测试数据进行处理,确保测试集和在训练集上筛选出的特征一致;
`CNN.py`:keras搭建CNN网络进行训练;
整个代码的运行流程按上述流程即可;
## 3、CNN的结构
CNN为自己搭建的网络,网络的结构如下:
两层conv,两层pool、两层全连接,以及Dropout。
<img src="https://gitee.com/kkkcstx/kkkcs/raw/master/img/20220419093337.png" style="zoom: 67%;" />
## 4、效果
通过特征选择以及平衡正负样本个数,最终CNN在测试集上的准确率为89%
`train`:
![](https://gitee.com/kkkcstx/kkkcs/raw/master/img/20220419093554.png)
`test`:
![](https://gitee.com/kkkcstx/kkkcs/raw/master/img/20220419093937.png)
## 5、Later
未完待续!
生瓜蛋子
- 粉丝: 3927
- 资源: 7441
最新资源
- 基于51单片机LCD1602显示的一个万年历+可调时钟(含原理图)
- Day-06 Vue222222222
- OREO:离线增强型大型语言模型多步推理优化方法
- iClient3D for Cesium 加载shp数据并拉伸为白模
- flowable-demo-master
- 大模型的稀疏激活方法及其高效推理应用研究:基于dReLU激活函数
- au2024_113102-1.zip
- 大规模语言模型在不同NLP任务中的提示工程技术综述
- 廖鹏盛 - 时代进行曲.zip
- 土地利用/土地覆盖数据(蚌埠市)
- Matlab实现VMD-TCN-BiLSTM变分模态分解结合时间卷积双向长短期记忆神经网络多变量光伏功率时间序列预测(含完整的程序,GUI设计和代码详解)
- LLM-Select: Feature Selection with Large Language Models
- Matlab实现RP-LSTM-Attention递归图优化长短期记忆神经网络注意力机制的数据分类预测(含完整的程序,GUI设计和代码详解)
- Another Redis Desktop软件
- 鲸鱼优化算法(WOA)文章复现:《改进鲸鱼优化算法在机械臂时间最优轨迹规划的应用-赵晶》 策略为:Tent混沌初始化种群+非线性权重改进位置更新+非线性概率转-IWOA 复现内容包
- 页岩油四性潜力层判识工具
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈