cerentolunay/malware-evo-fs
GitHub: cerentolunay/malware-evo-fs
通过进化算法比较GA与DE在恶意软件特征选择中的有效性,以提升检测性能并减少特征维度。
Stars: 0 | Forks: 0
# 遗恶意软件检测与进化特征选择 (GA & DE)
对使用遗传算法 (GA) 和差分进化 (DE) 进行特征选择的方法进行比较研究,用于恶意软件检测。
## 📌 项目概述
本项目旨在通过进化算法选择最具信息量的特征,以提升恶意软件检测性能。
特征选择被视为一个优化问题,目标是:
- 减少特征数量
- 保持或提高分类性能
在本项目中,优化用于恶意软件检测的特征选择。目标是在获得更少特征的同时实现更好的性能。
## 🧠 方法论
项目遵循结构化的机器学习流程:
数据加载 → 预处理 → 特征选择 (GA / DE) → 模型评估
### 🔹 特征选择
每个解表示为一个二进制向量:
```
[1, 0, 1, 0, 1]
```
- `1` → 选择该特征
- `0` → 不选择该特征
搜索空间呈指数增长 (2^N),因此穷举搜索不切实际。因此使用进化算法。
### 🔬 遗传算法 (GA)
- 基于二进制的表示
- 使用选择、交叉和变异
- 强大的全局搜索能力
### ⚡ 差分进化 (DE)
- 连续表示
- 使用基于向量的变异
- 通过阈值将值转换为二进制
### 🎯 适应度函数
适应度函数结合了以下要素:
适应度 = 1 - 准确率 + 惩罚项
其中:
- 准确率 → 模型性能 (随机森林)
- 惩罚项 → 与所选特征数量成正比
这确保了:
- 高准确率
- 特征子集最小化
## ⚙️ 使用技术
- Python
- NumPy
- Pandas
- Scikit-learn
## 📂 项目结构
```
malware-evo-fs/
│
├── data/ # Raw and processed data
├── notebooks/ # Experimental notebooks
├── src/
│ ├── data_loading/ # Data loading module
│ ├── preprocessing/ # Data preprocessing
│ ├── feature_selection/ # GA & DE implementations
│ ├── models/ # ML models (Random Forest)
│ ├── evaluation/ # Metrics
│ └── experiments/ # Main experiment pipeline
│
├── results/ # Outputs and logs
├── figures/ # Visualizations
├── docs/ # Notes and documentation
├── paper/ # LaTeX paper files
```
## ▶️ 如何运行
1. 克隆仓库:
```
git clone https://github.com/your-username/malware-evo-fs.git
cd malware-evo-fs
```
2. 安装依赖:
```
pip install -r requirements.txt
```
3. 运行实验:
```
python -m src.experiments.run_experiment
```
## 📊 当前状态
- 数据加载管道
- 预处理 (分割 + 缩放)
- GA 特征选择
- DE 特征选择
- 基于模型的适应度函数 (随机森林)
## 🚧 后续工作
- 集成 EMBER 数据集
- 添加 SVM / XGBoost 比较
- 改进适应度函数
- 超参数调优
- 结果可视化
- 统计比较 (GA vs DE)
## 📄 学术背景
本项目作为一项研究性课题,旨在探讨:
用于恶意软件检测的进化特征选择
目标是评估和比较高维特征空间中 GA 和 DE 的有效性。
Ceren Tolunay
标签:Apex, NumPy, Python, Scikit-learn, SEO, 二值编码, 交叉验证, 优化搜索, 全局搜索, 分类性能, 差分进化, 数据预处理, 无后门, 机器学习, 模型评估, 特征选择, 特征降维, 进化算法, 逆向工具, 遗传算法, 随机森林