# python机器学习 **Repository Path**: liumozs/python-machine-learning ## Basic Information - **Project Name**: python机器学习 - **Description**: 机器学习与异常检测 - **Primary Language**: Python - **License**: CC-BY-SA-4.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: Machine-learning ## README # 基于机器学习的网络异常检测项目 ## 📖 项目简介 本项目面向网络安全领域的异常检测需求,利用监督学习技术,对两类经典网络流量数据集(KDDCup99和CIC-IDS2017)进行深度分析与建模。项目旨在构建高效的异常检测模型,以精准识别网络中的攻击行为,为网络安全防护提供可落地的解决方案。 ## ✨ 项目特点 * **双数据集验证**:分别针对传统网络环境(KDDCup99)和现代复杂网络环境(CIC-IDS2017)进行建模,验证模型在不同场景下的适用性。 * **模型针对性选择**:为不同特征的数据集匹配最优模型——KDDCup99采用**逻辑回归**,CIC-IDS2017采用决策树,充分发挥各自优势。 * **完整的工程化流程**:涵盖从数据获取、探索性分析、预处理、模型训练与验证到结果可视化的全流程。 * **详尽的性能评估**:通过准确率、精确率、召回率、F1分数、AUC-ROC及交叉验证等多维度指标全面评估模型性能。 ## 🚀 技术路线 1. **数据获取与探索**:从官方渠道下载KDDCup99与CIC-IDS2017数据集,并进行初步的数据规模、标签分布及特征分析。 2. **数据预处理**:进行缺失值处理、非数值型特征编码、标签二值化/多分类编码、特征标准化、冗余特征去除等操作,生成高质量的训练数据。 3. **模型训练与调优**:使用Scikit-learn库构建逻辑回归与决策树模型,并设置关键参数进行训练。 4. **模型验证与评估**:采用分层划分的训练集/测试集,并结合交叉验证,确保评估结果的稳定性和可靠性。 5. **结果可视化与分析**:生成混淆矩阵、ROC曲线等图表,直观展示模型性能,并进行深入分析。 ## 📊 数据集 | 数据集 | 数据量 | 特征数 | 主要攻击类型 | 特点 | | :--- | :--- | :--- | :--- | :--- | | **KDDCup99** | 约490万条 | 41维 | DoS, Probe, R2L, U2R | 经典基准,攻击类型集中 | | **CIC-IDS2017** | 约280万条 | 78维 -> 62维 | DDoS, BruteForce, Botnet等14种 | 现代环境,场景复杂,特征维度高 | ## 🤖 模型与性能 ### 模型选择依据 * **逻辑回归 (Logistic Regression)**:应用于**KDDCup99**。该数据集特征相对线性可分,逻辑回归计算高效、可解释性强,非常适合大规模二分类异常检测。 * **决策树 (Decision Tree)**:应用于**CIC-IDS2017**。该数据集特征间存在非线性关系,且需进行多分类细粒度检测,决策树能自动学习复杂规则,无需严格的特征标准化。 ### 性能结果 **1. KDDCup99数据集 - 逻辑回归模型性能(3折交叉验证平均值)** | 准确率 | 精确率 | 召回率 | F1分数 | AUC-ROC | | :--- | :--- | :--- | :--- | :--- | | 0.9980 | 0.9997 | 0.9977 | 0.9987 | 0.9998 | **2. CIC-IDS2017数据集 - 决策树模型性能(5折交叉验证平均值)** | 准确率 | 精确率(加权) | 召回率(加权) | F1分数(加权) | | :--- | :--- | :--- | :--- | | 0.9840 | 0.9981 | 0.9981 | 0.9981 | ## 📁 项目结构 ```bash master/ ├── CIC/ ├── kdd/ └── README.md ``` ## 🛠️ 运行指南 - **环境依赖**:确保安装Python 3.7+ 及以下主要库: ```bash pandas>=1.3.0 scikit-learn>=1.0.0 matplotlib>=3.5.0 numpy>=1.21.0 ``` 可使用命令安装:`pip install -r requirements.txt` - **数据准备**:将KDDCup99 (`kddcup.data.corrected`) 和 CIC-IDS2017 数据集文件放入 `data/` 目录下。 - **运行项目**: 分模块运行,详见各源文件内的注释。 ## 🔮 未来展望 1. **模型优化**:引入集成学习(如随机森林、XGBoost)或深度学习模型(如LSTM)以提升对小众攻击的检测能力。 2. **特征工程**:结合领域知识设计更有效的特征,并采用特征选择算法进一步降维。 3. **工程化扩展**:优化代码效率以处理更大规模数据,并开发实时检测模块。 ## 📄 许可证 本项目仅用于学习和学术研究。 --- **如有任何问题,欢迎在仓库中提交Issue或联系项目组成员!**