m基于kmeans和SVM的网络入侵数据分类算法matlab仿真

简介: m基于kmeans和SVM的网络入侵数据分类算法matlab仿真

1.算法描述

   首先计算整个数据集合的平均值点,作为第一个初始聚类中心C1;

   然后分别计算所有对象到C1的欧式距离d,并且计算每个对象在半径R的范围内包含的对象个数W。

   此时计算P=u*d+(1-u)*W,所得到的最大的P值所对应的的对象作为第二个初始聚类中心C2。

   同样的方法,分别计算所有对象到C2的欧式距离d,并且计算每个对象在半径R的范围内包含的对象个数W,所得到的最大的P值所对应的的对象作为第二个初始聚类中心C3。

   从这三个初始聚类中心开始聚类划分。对于一个待分类的对象,计算它到现有聚类中心的距离,若(这个距离)<(现有各个聚类中心距离的最小值),则将这个待分类对象分到与它相距最近的那一类;如果(这个距离)>(现有各个聚类中心距离的最小值),则这个待分类对象就自成一类,成为一个新的聚类中心,然后对所有对象重新归类。

    如果找到新的聚类中心,在重新计算聚类的中心后。对目前形成的K+1 个聚类计算 DBInew 的值,和未重新分配对象到这 k+1 个类之前计算的 DBIold进行比较,如果 DBInew <DBIold,则这个新找到的聚类中心可以作为新的聚类中心,否则将终止本次查找 k 的工作,并恢复到 DBIold 的状态。当所有这样符合新类产生条件的数据对象的 DBI 值都大于 DBIold 时,则确定再没有新的类产生,则确定了最终聚类个数为 k,可以进行最终的分配对象工作。

image.png
image.png

聚类仿真图:

1.和K-means算法比较的检测率

2.和K-means算法比较的误判率

   特征提取:提取对检测最有用、最利于检测出攻击的那些参数。所用到的特征提取方案是利用“信息增益”,选出各特征参数中信息增益(Information Gain)最大的那些特征在检测时使用,这个做之前应该需要对数据先标准化和归一化一下。具体操作:

image.png

    究竟选多少个特征可以让检测的精度最高呢?我论文里是先将各个特征的信息增益从高到低排序,然后依次往下取K个,用K-means算法对节点进行分类达到检测的作用,计算当检测率最高的时候所对应 K值,即意为选多少个特征。

    经过特征提取后,之后所说的样本,他们的属性都只由特征提取后的那些特征来代表了。

    SVM训练样本筛选:假定有正常和攻击两类样本,将两类样本分别用K-means聚类,将这些聚类中心点作为新的样本点。然后在正常类中,计算每个新样本点在异常类中距离自己最近的M(假定M=3)个样本点,从而在异常类中假设找到P个样本点。异常类中的这P个样本点找到在正常类中距离自己最近的M个样本点,假定找到了Q个样本点。此时,这P+Q个样本点就是新选出的SVM训练样本。

2.仿真效果预览
matlab2013b仿真结果如下:

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

3.MATLAB核心程序

C           = [C1;C2;C3];
R           = [R1;R2;R3];
Leg         = ones(length(Attack_Dat),1);
K           = 3;
CNT         = 0;
while(is_continue == 1)
    CNT = 0;
    for i = 1:length(Attack_Dat)
        for j = 1:size(C,1)
            d(i,j) = func_dis(Attack_Dat(i,:),C(j,:));
        end
        [VV,II] = min(d(i,:));
        if VV <= min(R)
            Leg(i) = II;
            CNT = CNT + 1;
        else
            K = K + 1;
            Leg(i) = K;
            C = [C;Attack_Dat(i,:)];
            R = [R;alpha*mean(func_dis(Attack_Dat,Attack_Dat(i,:)))];
        end
    end 
    
    if CNT == length(Attack_Dat)
       is_continue = 0;
    else
       is_continue = 1; 
    end
end
相关文章
|
9月前
|
5G
基于IEEE 802.11a标准的物理层MATLAB仿真
基于IEEE 802.11a标准的物理层MATLAB仿真
489 0
|
9月前
|
算法
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
基于MATLAB/Simulink平台搭建同步电机、异步电机和双馈风机仿真模型
1127 30
|
9月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
9月前
|
机器学习/深度学习 人工智能 算法
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
【基于TTNRBO优化DBN回归预测】基于瞬态三角牛顿-拉夫逊优化算法(TTNRBO)优化深度信念网络(DBN)数据回归预测研究(Matlab代码实现)
356 0
|
9月前
|
存储 监控 并行计算
目标跟踪中常用点迹航迹数据关联算法的MATLAB实现
通过计算测量点与预测点之间的欧氏距离,选择最近邻点进行关联,适用于单目标跟踪场景。
|
9月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
778 0
|
9月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
489 2
|
10月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
308 6
|
10月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
395 3
|
9月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
396 8