基于主成分分析的支持向量机入侵检测系统

  • 学习目标:
  • 学习内容:
    • A. 数据集分析
    • B. 主成分分析 (PCA)--降维
    • C. 支持向量机 (SVM)
      • 核函数
      • 数据集预处理--转换
      • 数据集预处理 --特征缩放
      • 算法过程
      • 核函数对比
    • 总结
    • 不足
    • 参考论文

申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计4018字,阅读大概需要3分钟
更多学习内容, 欢迎关注我的个人公众号:不懂开发的程序猿

学习目标:

一、基于主成分分析的支持向量机入侵检测系统

学习内容:

本文针对Knowledge Discovery in Databases Cup’99(KDD)数据集评估了支持向量机(SVM)不同核的性能,并比较了检测精度、检测时间。通过采用将高维数据集缩减为低维数据集的主成分分析(PCA)来减少检测时间。本研究进行的实验表明,支持向量机的高斯径向基函数核具有较高的检测精度。

A. 数据集分析

数据集:KDD
整个 KDDCup‘99 数据集由 4,898,431 条记录组成,其中每条记录包含 41 个特征。我们仅使用 KDDdataset 的 10% 部分用于训练目的和整个 KDDdataset 用于测试。此外,10% KDDCup’99 数据包含 494,069 条记录(每条记录包含 41 个特征),并分为 4 种类型的攻击,探测、拒绝服务 (DOS)、用户到根 (U2R)、根到本地(R2L)

B. 主成分分析 (PCA)–降维

PCA 是通过消除包含最大计算成本的高维空间中不太重要的属性,从而将更有用和相关的属性投影到低维子空间中来实现的。让我们考虑一个长度为“m”且经过“n”次检查的向量,那么给定的数据集可以由矩阵 X 表示为
X(m∗n)=[X1,X2,X3,...,Xn](1)X_(m*n)=[X_1, X_2, X_3, ... , X_n] \tag{1} X(​m∗n)=[X1​,X2​,X3​,...,Xn​](1)
等式1表明 X 的每一列都是一个向量

等式2显示平均均值( μ )对于每个向量
μ=1nΣi−1nXij(2)\mu = \frac 1n \Sigma^n_{i-1}X_{ij} \tag{2} μ=n1​Σi−1n​Xij​(2)
给定向量与其均值的变化由称为偏差的度量给出,由公式3给出
Φ=Xi−μ(3)\Phi = X_i - \mu \tag{3} Φ=Xi​−μ(3)
两个变量之间的关系程度通过称为协方差的度量来衡量。如果协方差为正,则称这两个变量正相关,如果协方差为负,则称这两个变量负相关,如果协方差为零,则称数据不相关。所以从协方差矩阵中,我们可以实现数据的传播。协方差矩阵( Σ )构造如等式(4)中所示
∑=1n−1Σi=1nΦiΦiT=1n−1Σi=1n(Xi−μ)(Xi−μ)T(4)\sum = \frac1{n-1}\Sigma^n_{i=1}\Phi_i\Phi^T_i=\frac1{n-1}\Sigma^n_{i=1}(X_i-\mu)(X_i-\mu)^T \tag{4} ∑=n−11​Σi=1n​Φi​ΦiT​=n−11​Σi=1n​(Xi​−μ)(Xi​−μ)T(4)
矩阵的转置φ表示为φ^T ,通过计算通过奇异值分解 (SVD) 算法使用的特征向量,在协方差矩阵上执行 PCA 。SVD 定义为复数或实数矩阵 X 的因式分解,使得X= U**S**V,其中 U 和 V 是酉矩阵,即
UT‾∗U=U∗UT‾=I\overline {U^T}*U=U*\overline {U^T}=I UT∗U=U∗UT=I
I 是单位矩阵,S 是非负实数对角元素的矩形矩阵。为了将系统从 n 维减少到 k 维,我们从 U 中获取前 K 个向量(列)。

C. 支持向量机 (SVM)

支持向量机的目的是通过找到一个超平面来最大化两个类之间的分离边际。让输入输出数据格式如下
(x1,y1),...,(xn,yn),x∈Rm,y∈{+1,−1}(x_1,y_1), ... , (x_n,y_n),x\in R^m,y \in \{+1,-1\} (x1​,y1​),...,(xn​,yn​),x∈Rm,y∈{+1,−1}
(x 1 , y 1 ),……(x n , y n ) 是训练的数据集,其中每个x i是一个m维实向量,n代表样本数,y属于+1或-1,通过指示点 xi属于哪个类。在线性可分的情况下,超平面对数据集进行分类,如图所示

核函数

然而,在大多数情况下,数据不是线性可分的,很难找到超平面来对数据进行分类。所以为了解决这个问题,SVM 有不同的核函数。线性不可分问题可以通过选择合适的核函数来解决。应用内核技巧后得到的算法保持不变,除了线性内核 SVM 中的每个点积都被非线性内核函数替换。
主要的非线性 SVM 核函数是
1.径向基核函数:使用的典型径向基核是高斯核。
K(x,y)=exp(−γ∣∣x−y∣∣)2K(x,y)=exp(-\gamma||x-y||)^2 K(x,y)=exp(−γ∣∣x−y∣∣)2
其中 x 和 y 是输入向量。如果γ=σ^− 2那么这个核被称为高斯方差核σ^− 2

2.多项式核函数:计算两个向量之间的 d 次多项式核。两个向量之间的相似性由多项式核表示。
K(x,y)=(γ(xTy)+c0)dK(x,y)=(\gamma (x^Ty)+c_0)^d K(x,y)=(γ(xTy)+c0​)d
γ是斜率,d 是核度,C o是截距。如果内核被认为是同质的C 0 = 0.

数据集预处理–转换

KDDCup’99 数据的示例如图 2所示。转换后,系统将数据集中的文本词转换为数值,如图3所示. 例如,如果“Normal”被映射为 0,则攻击类型,系统使用表 3中提供的转换表将文本转换为数值。

数据集预处理 --特征缩放

转换后,数据集被归一化,使每个特征的数值在同一尺度下。在转换和规范化之后,数据集如图 4所示。进行缩放操作是为了降低复杂性,减少重叠并提高准确性。

算法过程

两个阶段中,PCA 应用于预处理数据集,以便将高维数据转换为低维数据。通过PCA对训练数据集进行降维后,通过支持向量机算法对预处理后的数据集进行训练,构建训练系统。一旦训练好的系统准备就绪,测试数据集就会被分类,以便在出现攻击时生成警报。通过将 SVM 分类器的预测结果与 KDDCup’99 中的实际结果进行比较来测量准确性,并测量每个测试记录的检测时间。完整的方法在流程图中解释

核函数对比

进行了两个不同的实验,即 with-PCA 和 without-PCA,以评估 PCA 在检测精度上的性能。C 和伽玛( γ) 是 SVM 非线性核中的两个重要参数。C 参数权衡了决策表面的简单性与训练样本的错误分类。较高的 C 通过将更多样本作为支持向量来正确分类所有测试数据集,而较低的 C 使决策表面平滑。另一方面,参数 Gamma 定义了单个训练样本的影响程度,高值表示接近,低值表示远。

总结

从通过实验获得的结果可以看出,当实施 PCA 时,检测率随着尺寸大小的增加而增加,而检测时间减少。在所有实现的内核中,RBF 内核表现出更好的结果和更好的检测率,并且在基于多项式内核的 SVM 中检测速度更快。

不足

论文中没有和不同的监督机器学习算法(例如 K-Nearest Neighbor’s、J48 决策树、随机森林和带 PCA 和不带 PCA 的朴素贝叶斯)来比较和分析 IDS 检测精度和检测时间。

参考论文

[1] Zhang H, Huang L, Wu C Q, et al. An effective convolutional neural network based on SMOTE and Gaussian mixture model for intrusion detection in imbalanced dataset[J]. Computer Networks, 2020, 177: 107315.

[2] P. Nskh, M. N. Varma and R. R. Naik, “Principle component analysis based intrusion detection system using support vector machine,” 2016 IEEE International Conference on Recent Trends in Electronics, Information & Communication Technology (RTEICT), 2016, pp. 1344-1350, doi: 10.1109/RTEICT.2016.7808050.

[3] Almomani, O. A Feature Selection Model for Network Intrusion Detection System Based on PSO, GWO, FFA and GA Algorithms. Symmetry 2020, 12, 1046. https://doi.org/10.3390/sym12061046

[4] A feature selection algorithm for intrusion detection system based on Moth Flame Optimization Arar Al Tawil and Khair Eddin Sabri Conference: 2021 International Conference on Information Technology (ICIT), Year: 2021, Page 377

DOI: 10.1109/ICIT52682.2021.9491690

[5] de Rosa G H, Rodrigues D, Papa J P. Opytimizer: A nature-inspired python optimizer[J]. arXiv preprint arXiv:1912.13002, 2019.

基于主成分分析的支持向量机入侵检测系统相关推荐

  1. 基于图的下一代入侵检测系统

    青藤云安全是一家主机安全独角兽公司,看名字就知道当前很大一块方向专注云原生应用安全,目前主营的是主机万相/容器蜂巢产品,行业领先,累计支持 800万 Agent.当前公司基于 NebulaGraph ...

  2. 基于网络(NIDS)的入侵检测系统

    入侵(Instruction)是个 广义的概念,不仅包括被发起攻击的人取得超出合法权限的系统的控制权,也包括搜集漏洞信息,造成拒绝访问(Denial of service)等对计算机系统造成危害的行为 ...

  3. libnet、libnids、libpcap轻松搭建Linux网络入侵检测系统

    利用三个源码包libnet.libnids.libpcap轻松搭建Linux网络入侵检测系统 如果要搭建基于Linux的网络入侵检测系统,必须要安装libnet.libnids.libpcap这三个源 ...

  4. 基于Snort的入侵检测系统

    基于Snort的入侵检测系统 用Snort,Apache,MySQL,PHP及ACID构建高级IDS 第一章 入侵检测系统及Snort介绍 在当今的企业应用环境中,安全是所有网络面临的大问题.黑客和入 ...

  5. 网络安全实验-入侵检测-基于网络入侵检测系统

     实验目的: 1.掌握snort IDS工作机理 2.应用snort三种方式工作 3.熟练编写snort规则 实验原理: 一.snort IDS概述 snort IDS(入侵检测系统)是一个强大的网络 ...

  6. 检查数据报:防火墙和入侵检测系统

    当攻击者知道我们的IP地址范围后,可以很方便地在此范围种发送IP数据报进行寻址.这些数据报能够做各种不正当地事情.例如用ping搜索和端口扫描形成我们的网络图:用恶意分装使易受攻击的主机崩溃:用纷至沓 ...

  7. 网络安全-防火墙与入侵检测系统

    防火墙效率 吞吐量:指防火墙在不丢失数据包的情况下能达到的最大的转发数据报的速率. 时延:能够衡量出防火墙处理数据的快慢. 丢包率:在特定负载下,指应由网络设备传输,但由资源耗尽而丢弃帧的百分比. 背 ...

  8. 什么是入侵检测系统?有哪些分类?

    在现在网络中,攻击无处不在,可以不夸张的说,每一秒都有企业或者个人被网络攻击.有人说了,不是有防火墙嘛? 确实,防火墙是防止有害和可疑流量流入系统的首选解决方案,但是防火墙并不能保证 100% 万无一 ...

  9. 网络安全之入侵检测系统

    一 入侵检测定义 入侵:指一系列试图破坏信息资源机密性.完整性和可用性的行为.对信息系统的非授权访问及(或)未经许可在信息系统中进行操作. 入侵检测:是通过从计算机网络系统中的若干关键节点收集信息,并 ...

最新文章

  1. 安卓手机复制文件到电脑
  2. Android免Root环境下Hook框架Legend原理分析
  3. 深度学习框架TensorFlow(3.变量)
  4. python能开发什么产品_三周学 Python ?不,三周做个产品
  5. 如果正确看待区块链这一新型技术的未来发展?...
  6. Linux 启动、关闭、重启网络服务的两种方式
  7. 帮中国修长城前,英特尔还用AI追踪北极熊、保护鲸鱼
  8. Mysql基础知识--视图
  9. js字符串截取函数slice()、substring()、substr()
  10. 转置矩阵(Transpose of a matrix)
  11. UFS 手机相关调试接口
  12. Ubuntu Dolphinscheduler 执行命令 source: 未找到
  13. 机器学习入门概念--心血总结--史上最强--入门必读--回味无穷
  14. oracle io错误的是什么意思,磁盘IO错误 导致数据库故障一则
  15. Largest Rectangle in a Histogram[]
  16. 什么是SKEY,怎样获取SKEY,SKEY的…
  17. 内卷老员工之java内存模型的happens-before原则
  18. ReactDOM.render()函数、条件渲染、列表渲染
  19. Java:Nginx使用
  20. 【TWVRP】遗传算法求解带时间窗的含充电站车辆路径规划问题【含Matlab源码 1177期】

热门文章

  1. 创建一个简单的Android应用程序
  2. Numpy常用API
  3. 基于CNN卷积神经网络的minst数据库手写字识别
  4. Android列表收缩与展开仿QQ好友列表(非常详细,附源码)
  5. Navicat Premium 连接服务器oracle 提示ORA-01017:用户名/口令无效;登陆被拒绝
  6. 阿贾克斯(Ajax)异步请求数据
  7. 利用逻辑斯谛回归实现分类
  8. Quartus18.1实现D触发器及时序仿真
  9. stm32 /*CH340串口使用
  10. 线性时间选择(C++)