基于改进的SVM方法的异常检测研究
论文摘要
利用非参数检验的方法提取出对分类结果影响显著的特征变量,提出一种改进的 SVM 多分类方法(D-SVM),其融合了判别分析,可以解决样本不均衡导致的分类不准确和误报率高的问题。
将多分类问题处理成一个个二分类问题,D-SVM 既可以保持 SVM 较好的分类准确性,同时又可以不受样本不均衡的影响,具有较低的误报率。
将 D-SVM 应用到 KDD99 数据集,结果表明,该方法具有较高的分类准确性和较低的误报率。
论文解决的问题
-
筛选正常样本与异常样本分布存在显著差别的特征,降维。
-
样本不均衡导致的分类不准确和误报率高的问题。
1.方法介绍
-
SVM方法
对于线性可分数据,找到一个最好的超平面将其分开。对于线性不可分数据,先将样本映射到一个高维空间,并在高维空间线性可分,在高维空间构造一个超平面来达到分类的目的。
-
距离判别方法
计算样本到哪个类中心的距离最小,该样本就属于哪个类。距离计算一般选用马氏距离,因为相比于欧氏距离,马氏距离不仅可以消除变量间量纲的影响,还能消除多维变量间多重相关性的影响。
2.数据处理
-
数据集介绍
KDD99数据集分为全部数据集和10%数据集。
10%数据集包含494021条记录,每条记录有41个特征变量和1个类别标签。
类别标签包含五类:Normal(正常)、DoS攻击、Probe攻击、U2R攻击、R2L攻击。
-
非参数检验特征变量筛选
将数据分为正常和攻击两类,命名为类N和类A。
利用K-S检验的方法检查哪些变量上的经验分布不存在显著差异,删除这些没有显著差异的样本。
Kolmogorov-Smirnov检验:比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法。其原假设H0:两个数据分布一致或者数据符合理论分布。D=max|f(x)- g(x)|,当实际观测值D>D(n,α)则拒绝H0,否则则接受H0假设。
3.分类
-
正常与异常行为分类
SVM第一级分类器:将正常样本与异常样本分开,按照正常:异常=1:4的比例随机取样,训练集为5000个正常样本,20000个异常样本;测试集为10000个正常样本,40000个异常样本。并独立进行5次实验。
-
异常行为具体攻击类别分类
(1)R2L&U2R和 DoS&Probe分类
距离判别方法第二级分类器:因为SVM分类器对于R2L&U2R和 DoS&Probe的二分类效果很差,所以随机选择了5000个正常样本,计算R&U和D&P到正常样本中心的马氏距离有显著差异,所以可以通过距离判别方法构建分类器。
-
DoS与Probe分类
SVM第三级分类器:将DoS和Probe攻击分开,使用SVM有较好的分类效果。
总结
相比于其他方法,D-SVM对U&R的检测能力更强,具有更高的分类准确率和检测率;同时还可以较少的受到数据不均衡问题的影响,具有稳健性。
参考资料
- K-S检验原理
- python实现K-S
- p-value(显著性水平):大于显著性水平,接受两分布相同的假设;小于显著性水平,拒绝两分布相同的假设。