有人知道用于 Netflow Anomaly 检测的任何开源/python 包吗?我在 github 上找到了一些,但有更多经验的人。请指教。
Netflow异常检测python包
数据挖掘
机器学习
异常检测
2021-10-08 23:50:02
1个回答
我在互联网上找不到任何与 netflow 异常检测功能相同的特定软件包,但我发现了如何训练一些解决相同问题的标准算法。我的理解是问题是“网络入侵检测”或“网络流量异常检测以检测网络入侵”
所以模型的创建可以分为几个部分:
- 选择合适的算法
- 了解如何为算法转换数据
- 查找数据集
- 训练模型
上述任务更详细:
- 算法:k-NN 或随机森林。根据论文Machine Learning DDoS Detection for Consumer Internet of Things Devices k-nearest neighbor 是一种非常精确的网络异常检测算法。最近邻算法存在于 scikit-learn python 包(链接)中。随机森林分类器表现更好。scikit-learn 还有一个随机森林分类器(链接)。
这是第一篇论文中的精度表。KN 是 k-NN。RF是随机森林。NN是神经网络。LSVM 是支持向量机算法的一种变体。
本文解释了 DDoS 的 k-NN 如何工作:Proactive Detection of DDoS Attacks Utilizing k-NN Classifier in an Anti-DDos Framework。
根据上述论文和其他来源,以下数据集用于训练:
- KDCup1999这是一个网络入侵数据库
- MIT 林肯实验室,2000,DARPA 入侵检测场景特定数据集包含两个 DoS 攻击场景
- 关于可用数据集的研究门问题
在此链接上,您将了解如何在 scikit-learn 中训练 k 最近邻。
以下是链接中的示例代码:
>>> X = [[0], [1], [2], [3]]
>>> y = [0, 0, 1, 1]
>>> from sklearn.neighbors import KNeighborsClassifier
>>> neigh = KNeighborsClassifier(n_neighbors=3)
>>> neigh.fit(X, y)
KNeighborsClassifier(...)
>>> print(neigh.predict([[1.1]]))
[0]
>>> print(neigh.predict_proba([[0.9]]))
[[0.66666667 0.33333333]]