mehdiisthename/MalDetect-ML

GitHub: mehdiisthename/MalDetect-ML

基于机器学习的端到端恶意软件检测与分类项目,对比评估Logistic Regression与Naive Bayes模型在恶意软件识别中的性能差异。

Stars: 0 | Forks: 0

# MalDetect-ML:恶意软件分类与分析 [![Python 3.8+](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/release/python-380/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Scikit-Learn](https://img.shields.io/badge/scikit--learn-%23F7931E.svg?style=flat&logo=scikit-learn&logoColor=white)](https://scikit-learn.org/) 这是一个机器学习项目,旨在使用精选的数据集来检测和分类软件恶意软件。本仓库演示了数据预处理、处理类别不平衡、模型训练以及使用 Logistic Regression 和 Naive Bayes 分类器进行对比评估的端到端过程。 ## 📋 目录 - [项目概述](#project-overview) - [数据集](#dataset) - [功能与方法](#features-and-methodology) - [安装与设置](#installation--setup) - [使用说明](#usage) - [结果与评估](#results--evaluation) - [致谢](#acknowledgments) ## 🔍 项目概述 随着恶意软件威胁的复杂性日益增加,机器学习已成为识别恶意软件模式的关键防御机制。本项目探讨了线性和概率模型在将软件分类为良性或恶意方面的有效性。 该分析专门对比了 **Logistic Regression** 与 **Gaussian** 和 **Multinomial Naive Bayes** 模型的性能,深入分析了特征独立性假设如何影响网络安全领域的分类准确性。 ## 📊 数据集 本项目使用的数据集由 Mohaghegh Ardabili University 的 APA Research Center(2019-2020)收集,旨在开发本土化的恶意软件检测软件。它包含了从各种可执行软件中提取的高维数值特征。 ## 🛠 功能与方法 - **数据预处理:** 彻底检查缺失值,并使用 `StandardScaler` 进行特征缩放。 - **处理类别不平衡:** 策略性地应用 **SMOTE**(Synthetic Minority Over-sampling Technique)。在 Naive Bayes 模型中使用了 SMOTE 以提升性能,但在 Logistic Regression 中为了避免性能下降而将其省略。 - **模型训练:** - Logistic Regression - Gaussian Naive Bayes - Multinomial Naive Bayes - **评估指标:** Accuracy、F1-Score 以及可视化的 Confusion Matrices。 ## 💻 安装与设置 1. **克隆仓库:** git clone https://github.com/mehdiisthename/MalDetect-ML.git cd MalDetect-ML 2. **创建虚拟环境(可选但推荐):** python -m venv venv source venv/bin/activate # On Windows use: venv\Scripts\activate 3. **安装所需的依赖项:** pip install -r requirements.txt ## 🚀 使用说明 要运行分析并重现结果,请启动 Jupyter Notebook: ``` jupyter notebook ``` 打开 `MalDetect-ML.ipynb` 并按顺序运行单元格。该 Notebook 中包含了详细的文档,对每一个预处理步骤和模型决策都进行了说明。 ## 📈 结果与评估 模型的评估基于其准确分类恶意软件的能力(体现在 `OUTPUT` 列中)。 | 模型 | Accuracy | F1-Score | |-------|----------|----------| | **Logistic Regression** | **0.94** | **0.96** | | Multinomial Naive Bayes | 0.81 | 0.87 | | Gaussian Naive Bayes | 0.71 | 0.78 | **核心洞察:** Logistic Regression 的表现远超贝叶斯模型。Naive Bayes 分类器由于其特征独立性的假设而表现不佳,这一假设在恶意软件特征中很少成立,因为其特征(如特定的 API 调用)往往高度相关。 ## 🤝 致谢 - Mohaghegh Ardabili University 的 APA Research Center 提供了基础数据集。
标签:Apex, NoSQL, Python, Scikit-Learn, 数据分类, 数据预处理, 无后门, 机器学习, 自定义DNS解析器, 逆向工具