针对CIC-IDS2017数据集机器学习算法对比

前言

 

针对 CIC-IDS2017 数据集,采用了其中常见的机器学习算法对该数据集进行了训练和测试,这里记录一下测试结果。

关于 CIC-IDS2017 数据集介绍可以参照:https://blog.csdn.net/yuangan1529/article/details/115024003?spm=1001.2014.3001.5501

具体代码参考我的上一篇博客:CIC-IDS数据集训练和测试

1、采用算法和数据相关特征

采用机器学习算法如下:

  • 支持向量机(SVM)
  • 逻辑回归
  • K 近邻算法
  • 决策树
  • 随机森林
  • 朴素贝叶斯
  •  Adaboost

数据集相关特征如下:

  • 数据条数:250w 左右
  • 数据特征:79 个
  • 数据标签:共有 14 个

2、各个算法运行结果

2.1 支持向量机(SVM)

(1)时间对比

可能是由于数据集比较大,又或者是数据特征,SVM 运行时间比较大,于是我将整个数据集切分了一部分,从百分之一依次递增,主要是想看看数据量的增加对于 SVM 运行时间的影响,结果如下:

让我好奇的是测试时间为什么也是接近指数增加,按理来说应该是倍数增加才对。

(2)不同数据预处理方法对准确度的影响

 

由上图可以看出,准确率由高到低依次是:标准化>归一化>正则化>原数据结果。

2.2 逻辑回归

(1)逻辑回归时间对比

逻辑回归的测试时间比较符合我的预期,因为是用公式直接预测结果,其运行时间是和测试数据的数量成正比,且是倍数关系,只不过是因为数据太少了,没有呈现出来。

(2)不同数据预处理方法对准确度的影响

归一化和正则化的准确率和 SVM 结果是一样的,这里就不展示了,这里贴了两个对比是为了看看随着数据的增加,数据预处理方法的影响。

2.3 K 近邻算法

(1)k 近邻时间对比

不得不说,K 近邻算法是我最喜欢,也是最讨厌的算法,喜欢是因为简单易懂,讨厌是因为针对大数据量的时候,其速度太慢了,而且训练和测试时间都是呈现指数增长:

(2)不同数据预处理方法对准确度的影响

 

 2.4 决策树

因为决策树算法运行时间较短,这里就不做时间对比了,直接对比一下数据预处理结果吧:

可以看到,决策树运行时间很多(数据集是整个数据集),而且准确率也相当高,三种数据预处理方法,正则化一如既往的比较低。

2.5 随机森林

 

2.6 Adaboost

2.7 朴素贝叶斯

由上图可以看到,朴素贝叶斯准确率最低,并且数据预处理方法对其准确率提高很大。

3、总结

|  **算法**  |   **时间**   |   **准确度**    | **标准化是否影响** |

| :--------: | :----------: | :-------------: | :----------------: |

|    SVM     | 近似指数增长 |       95%       |         是         |

|  逻辑回归  | 近似指数增长 |       95%       |         是         |

|   K 近邻   | 近似指数增长 | 99%(百分之十) |                    |

|   决策树   |     129s     |     99.70%      |                    |

|  随机森林  |     334s     |     99.88%      |                    |

|  Adaboost  |     207s     |     84.65%      |                    |

| 朴素贝叶斯 |     64s      |     69.95%      |         否         |

结论:

  • - 对于训练利用公式推导的机器学习算法如 SVM、逻辑回归和朴素贝叶斯,其数据格式对其训练结果有很大影响;
  • - 对于训练过程中使用梯度上升等优化算法来寻找最优的机器学习算法,其训练时间随着数据集的增大近似于指数增长
  • - 针对当前数据集,在数据预处理方法中,标准化数据准确率高于归一化,而归一化方法准确率高于正则化,使用数据预处理方法准确率高于原数据准确

建议:如果使用数据预处理方法,优先使用标准化

OK,今天就到这里,更多精彩内容关注我的个人网站:蓝亚之舟博客

  • 8
    点赞
  • 76
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值