hitain18/AI-Based-Military-Intelligence-Threat-Analysis-Dashboard
GitHub: hitain18/AI-Based-Military-Intelligence-Threat-Analysis-Dashboard
基于 Streamlit 的学术性数据科学应用,通过机器学习对合成冲突事件进行威胁等级分类预测并以交互式仪表板展示分析结果。
Stars: 0 | Forks: 0
# 🛰️ 基于 AI 的军事情报与威胁分析仪表板
这是一个端到端的数据科学与机器学习应用,用于分析安全/冲突事件记录,并使用训练好的分类器预测新事件的**威胁等级**(低 / 中 / 高),所有功能都封装在一个高级深色主题的 Streamlit 情报仪表板中。
## 📌 项目概述
该仪表板模拟了国防分析师的工作站:它接收包含 20,000 条记录的合成事件数据集,运行完整的 ML pipeline 来训练和比较五种分类算法,并通过五个交互式仪表板页面展示结果 —— 实时监控、数据探索、可视化分析、威胁预测和自动化情报报告。
## ✨ 功能
### 📊 仪表板
- 关键指标:总事件数、平均伤亡人数、高威胁率、受监控国家数
- 威胁等级分布圆环图
- 按事件数量排名的前 10 个国家
- 带有颜色编码威胁徽章的近期事件流
### 🔎 数据探索器
- 多字段过滤(国家、攻击类型、威胁等级、日期范围)
- 跨所有列的自由文本搜索
- 可排序、可滚动的交互式表格
- 一键导出过滤后的 CSV 结果
### 📈 可视化分析
- 攻击类型和武器类型频率图表
- 区域 → 国家 → 攻击类型树状图
- 交互式世界事件地图(散点地理图,按威胁进行颜色编码)
- 按综合风险指数排名的前 12 个国家
- 每月事件数量与伤亡趋势线
- 完整的数值相关矩阵(热力图)
- 响应时间与伤亡人数散点图
### 🎯 威胁预测
- 完整的事件参数输入表单
- 实时 ML 推理:预测的威胁等级、置信度百分比以及 0–100 的风险评分仪表
- 各类别概率条形图
- 基于规则的安全建议
### 📄 情报报告
- 根据实时数据自动生成的执行摘要
- 模型性能比较表
- 前 10 个国家风险排名
- 异常事件检测(统计异常值)
- 可导出报告(应用内 TXT 导出,以及独立的 PDF 生成脚本)
### 🧠 机器学习
- 训练和比较的模型:Random Forest、Gradient Boosting、Decision Tree、Logistic Regression 和 XGBoost(如果已安装)
- 根据加权 F1-score 自动选择最佳模型
- 完整的预处理 pipeline:缺失值插补、特征工程、类别编码、标准化 —— 在训练和实时推理中完全共享
- 持久化的产出物:训练好的模型(`.pkl`)、拟合好的预处理器(`.pkl`),以及每个训练模型的指标 JSON(准确率、F1、ROC-AUC、混淆矩阵、分类报告、特征重要性)
## 🛠️ 技术栈
| 层级 | 技术 |
|---|---|
| 语言 | Python 3.10+ |
| 应用框架 | Streamlit |
| 数据处理 | Pandas, NumPy |
| 机器学习 | Scikit-Learn, XGBoost |
| 可视化 | Plotly, Matplotlib |
| 模型持久化 | Joblib |
| PDF 报告 | fpdf2 |
## 📂 文件夹结构
```
AI_Military_Dashboard/
│
├── app.py # Main Streamlit application (all 5 dashboard pages)
├── utils.py # Shared helper functions (caching, prediction, formatting)
├── preprocessing.py # IncidentPreprocessor: cleaning, feature engineering, encoding
├── train_model.py # Trains & compares 5 ML models, saves the best one
├── generate_dataset.py # Generates the 20,000-record synthetic dataset
├── generate_report.py # Standalone PDF intelligence report generator
├── requirements.txt # Python dependencies
├── README.md # This file
│
├── dataset/
│ └── incidents.csv # Generated synthetic incident dataset
│
├── models/
│ ├── threat_model.pkl # Best trained classifier (auto-selected)
│ ├── preprocessor.pkl # Fitted preprocessing pipeline
│ └── metrics.json # Full model comparison & evaluation metrics
│
├── notebooks/ # (optional) space for exploratory analysis notebooks
├── assets/ # Static assets (screenshots, icons, etc.)
└── report.pdf # Generated by generate_report.py
```
## 🚀 安装说明
1. **克隆 / 解压项目** 并进入项目文件夹:
cd AI_Military_Dashboard
2. **创建虚拟环境(推荐):**
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
3. **安装依赖项:**
pip install -r requirements.txt
## ▶️ 运行说明
数据集和训练好的模型已包含在 `dataset/` 和 `models/` 文件夹中,因此您可以立即启动仪表板:
```
streamlit run app.py
```
应用程序将自动在您的浏览器中通过 `http://localhost:8501` 打开。
### 从头开始重新生成数据集和模型
如果您想从零开始重建所有内容(例如使用不同的随机种子或记录数):
```
python generate_dataset.py # regenerates dataset/incidents.csv
python train_model.py # retrains all models, saves the best to models/
```
### 生成独立的 PDF 报告
```
python generate_report.py # produces report.pdf in the project root
```
## 🖼️ 截图
- `assets/screenshot_dashboard.png`
- `assets/screenshot_explorer.png`
- `assets/screenshot_analytics.png`
- `assets/screenshot_prediction.png`
- `assets/screenshot_report.png`
## 📊 数据集说明
该数据集是**完全合成的**,由 `generate_dataset.py` 使用随机但符合统计规律的逻辑生成(用于伤亡和频率计数的指数/泊松分布,用于地图合理性的区域经纬度边界框,以及产生可供 ML 模型学习的低/中/高信号的加权综合评分函数)。它模仿了全球恐怖主义数据库 (GTD) 和 UCDP 冲突数据集等公开来源的结构,但未复制任何实际记录。
数据集列:`Incident_ID`、`Country`、`Region`、`Latitude`、`Longitude`、`Date`、`Attack_Type`、`Target_Type`、`Weapon_Type`、`Casualties`、`Civilian_Casualties`、`Military_Casualties`、`Infrastructure_Damage`、`Intel_Reliability`、`Previous_Attacks`、`Border_Activity`、`Cyber_Involvement`、`Threat_Source`、`Response_Time`、`Weather`、`Population_Density`、`Economic_Importance`、`Strategic_Value`、`Threat_Level`。
## 🔮 未来改进
- 整合真实的匿名/聚合公开数据集(例如 GTD、UCDP)作为备选数据源切换开关
- 添加时间序列预测(Prophet / ARIMA)以进行事件量预测
- 添加用户身份验证和基于角色的访问,以提供更逼真的操作中心体验
- 为单个预测添加基于 SHAP 的可解释性
- 使用 Docker 进行容器化,实现一键部署
- 为预处理和预测 pipeline 添加自动化单元测试 (pytest)
## 📄 许可证
本项目仅提供用于教育/学术目的。
标签:Apex, Kubernetes, Web仪表盘, 代码示例, 数据分析, 数据科学, 机器学习, 资源验证, 逆向工具, 预测模型