chandanabalaji/Static-Malware-Analysis-Using-Feature-Selection-and-Dimensionality-Reduction-Methods
GitHub: chandanabalaji/Static-Malware-Analysis-Using-Feature-Selection-and-Dimensionality-Reduction-Methods
该项目通过系统评估特征选择与降维技术,利用PE头元数据优化静态恶意软件检测的准确率与计算效率。
Stars: 0 | Forks: 0
# 静态恶意软件分析:特征选择与降维
## 概述
基于 PE 头元数据的静态恶意软件检测面临高维度问题 —
这会导致训练时间长、内存占用高以及扩展性问题。
本项目系统地基准测试了特征选择和降维技术,以寻找用于恶意软件分类的最准确且计算效率最高的组合。
**最佳组合:** XGBoost + Lasso + PCA — 99.25% 准确率,~1MB 内存。
## 数据集
**MalwareData.csv** — 来源于 Windows 可执行文件的 PE 头特征
- 138,047 条记录,54 个特征
- 二分类标签:恶意软件 (1) / 良性 (0)
- 来源:[CarlosConpe/Machine-Learning-Malware-Detection](https://github.com/CarlosConpe/Machine-Learning-Malware-Detection)
## 对比内容
### 特征转换
- No Scaling
- Full Standardization
- Mixed Scaling (基于特征分布采用 Standard + MinMax + Robust 混合标准化)
### 特征选择
- Random Forest Feature Importance
- Mutual Information
- Lasso (L1 Regularization)
### 降维
- PCA (Principal Component Analysis)
- LDA (Linear Discriminant Analysis)
- Autoencoder
### 分类器
- XGBoost
- LightGBM
- Gradient Boosting Machine (GBM)
- Artificial Neural Network (ANN)
- Logistic Regression
## 关键结果
### 特征选择 (XGBoost)
| 方法 | 准确率 | ROC-AUC | 时间 |
|--------|----------|---------|------|
| Random Forest Importance | 99.47% | 99.97% | 1.00s |
| Lasso | 99.45% | 99.97% | 2.56s |
| Mutual Information | 99.38% | 99.96% | 1.23s |
### 降维 (XGBoost)
| 方法 | 准确率 | 内存 |
|--------|----------|--------|
| PCA | 98.84% | 1.05 MB |
| Autoencoder | 98.29% | 1.05 MB |
| LDA | 96.82% | 1.05 MB |
### 最终模型 — XGBoost + Lasso + PCA
| 指标 | 数值 |
|--------|-------|
| Accuracy | 99.25% |
| Precision | 98.36% |
| Recall | 99.19% |
| F1 Score | 98.77% |
| ROC-AUC | 99.23% |
| MCC | 98.24% |
| Cross-Val Accuracy | 99.17% ± 0.04% |
## Notebooks
| Notebook | 描述 |
|----------|-------------|
| `FinalFeatureTransformationFinal.ipynb` | 对所有分类器的标准化方法进行比较 |
| `FinalFeatureselctionFinal.ipynb` | 特征选择方法比较 |
| `FinalDimensionalityReduction.ipynb` | 降维方法比较 |
| `Finalwith_PCA_and_lasso.ipynb` | 最佳组合:XGBoost + PCA + Lasso |
| `FinalBestApplication.ipynb` | 最终评估 + 交叉验证 |
**运行顺序:** Feature Transformation → Feature Selection →
Dimensionality Reduction → Best Application → Final
每个 Notebook 都会保存一个 `results.pkl`,供后续 Notebook 使用。
## 技术栈
- Python, Pandas, NumPy, Scikit-learn
- XGBoost, LightGBM
- TensorFlow / Keras
- Matplotlib, Seaborn
标签:Apex, BSD, Lasso回归, LightGBM, PE文件分析, ROC-AUC, Windows可执行文件, XGBoost, 主成分分析, 二分类, 云安全监控, 互信息, 数据挖掘, 数据预处理, 机器学习, 梯度提升机, 模型评估, 深度学习, 特征选择, 线性判别分析, 网络安全, 自编码器, 逆向工具, 降维, 随机森林, 隐私保护, 静态分析