Ousmane-Tr25/network-traffic-analysis-ml
GitHub: Ousmane-Tr25/network-traffic-analysis-ml
基于 Random Forest 和特征工程对合成 5G 网络流量进行多类别分类的机器学习 pipeline 项目。
Stars: 0 | Forks: 0
# 基于机器学习的网络流量分析
这是一个机器学习项目,旨在将合成的网络流记录分类为以下流量类别:**IoT**、**video**、**interactive** 和 **web**。
该项目非常适合作为数据科学家/ML 工程师的作品集,因为它结合了电信背景、特征工程、模型训练、评估指标、混淆矩阵可视化、Docker 和 CI。
## 问题
在 5G 网络中,流量分类可以支持网络切片决策。不同的应用需要不同的资源配置:
- IoT:低带宽,大量的小型流;
- video:高吞吐量和长会话;
- interactive:低延迟和频繁的包交换;
- web:混合流量。
## 已实现功能
- 具有真实网络流特征的合成流生成器。
- 特征:持续时间、数据包数、字节数、平均数据包大小、到达间隔时间、下行/上行比例和吞吐量。
- Random Forest 分类器。
- Accuracy 和 macro-F1 评估。
- 分类报告。
- 混淆矩阵图。
- 特征重要性图。
- 自动化测试和 Docker 支持。
## 快速开始
```
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
python scripts/run_experiment.py
```
结果保存在 `results/` 目录中:
```
synthetic_network_flows.csv
classification_metrics.csv
classification_report.txt
confusion_matrix.csv
confusion_matrix.png
feature_importance.csv
feature_importance.png
```
## Docker
```
docker build -t network-traffic-analysis-ml .
docker run --rm network-traffic-analysis-ml
```
## 作品集总结
本项目展示了监督学习、电信流量分析、特征工程、模型评估以及可复现的 ML 工作流。
## 未来改进
- 使用来自 Wireshark 或 CIC 数据集的真实数据包/流数据。
- 添加 XGBoost/LightGBM 对比。
- 为可疑流量添加异常检测。
- 使用 FastAPI 将分类器导出为一个小型 API。
## 结果预览
本实验使用特征工程和 Random Forest 分类器,将合成的网络流量划分为多个流量类别。
### 分类指标
| 指标 | 数值 |
|---|---:|
| Accuracy | 1.000 |
| Macro F1-score | 1.000 |
该数据集是合成的,旨在刻意展示一个清晰且可复现的机器学习 pipeline。
未来版本可以通过真实的捕获数据包、Wireshark 导出文件或公共网络流量数据集进行扩展。
### 混淆矩阵

### 特征重要性

标签:5G网络, Apex, 数据科学, 机器学习, 特征工程, 网络流量分析, 请求拦截, 资源验证, 逆向工具, 随机森林