EmmanRay567/AI-Malware-Detector
GitHub: EmmanRay567/AI-Malware-Detector
基于 Random Forest 的 Android 恶意软件检测系统,提供 Streamlit Web 界面用于实时文件分类与预测。
Stars: 0 | Forks: 0
# AI-Malware-Detector
概述
本项目是我基于机器学习的恶意软件检测系统,它根据行为和系统级特征将 Android 应用程序分类为安全或恶意。
它包括一个经过训练的 Random Forest Classifier 和一个 Streamlit Web 应用程序,允许用户上传 CSV 或 Excel 文件以进行实时的恶意软件预测。
本项目的目标是展示一个端到端的 ML pipeline,涵盖从数据预处理和模型训练到在交互式 Web 界面中部署的全过程。
# 功能
📊 基于真实恶意软件数据集训练的机器学习模型
🌲 Random Forest 分类器,提供稳健的预测
🧠 用于模型可解释性的特征重要性分析
📁 上传 CSV 或 Excel 文件以进行批量预测
🖥️ 交互式 Streamlit Web 界面
# 机器学习模型
算法:Random Forest Classifier
估计器数量:100
训练/测试集划分:80/20
随机种子:42(用于保证可复现性)
输出:二元分类
0 → 安全
1 → 恶意软件
为什么我使用 Random Forest:
我选择 Random Forest 是因为:
它在结构化/表格数据上表现良好
它通过平均多个决策树来减少过拟合
它提供特征重要性得分以增强可解释性
# 特征重要性
该模型还提供了哪些特征对预测影响最大的洞察,有助于提高可解释性和可信度。
示例输出可能包括:
API 调用行为
网络访问模式
权限使用情况
文件系统活动
# Web 应用程序
该系统包含一个使用 Streamlit 构建的简单且交互式的 UI。
功能:
上传数据集(CSV 或 Excel)
查看上传的数据
自动预处理输入
运行 ML 模型预测
# 项目结构
AI Malware Detection System/
│
├── App.py # Streamlit Web 应用程序
├── TrainModel.py # 模型训练脚本
├── malware_model.pkl # 保存的已训练模型
├── Android_Malware.csv # 数据集
└── requirements.txt # 依赖项
# 安装与设置
1. 克隆仓库
git clone https://github.com/yourusername/malware-detection-system.git
cd malware-detection-system
2. 安装依赖项
pip install -r requirements.txt
3. 运行 Streamlit 应用程序
streamlit run App.py
# 环境要求
Python 3.8+
pandas
scikit-learn
streamlit
joblib
# 示例输出
上传文件后,系统将返回:
每个文件的预测结果:
0:安全
1:恶意软件
基于特征的分析(可选增强功能)
Web UI 内的数据集预览
# 关键学习点
我的项目展示了:
端到端的机器学习工作流
针对真实世界数据集的数据预处理
模型训练与评估
使用 Streamlit 部署 ML 模型
使用特征重要性的基本可解释性
处理真实世界输入数据问题(schema 不匹配、多余列)
# 未来改进
为预测添加置信度得分
部署到 Streamlit Cloud 或 HuggingFace Spaces
添加实时文件扫描 API
通过 dashboard 和图表改进 UI
集成可解释 AI(SHAP 值)
# 作者
Emmanuel Ray
计算机科学学生 | 创意与 AI 技术专家
专注于机器学习、机器人技术以及音频/软件系统
标签:Android, Apex, DSL, Kubernetes, Streamlit, 代码示例, 数据分析, 机器学习, 访问控制, 逆向工具, 随机森林