shashankvyoma-droid/physical-security-ai-assessment
GitHub: shashankvyoma-droid/physical-security-ai-assessment
该项目是一个物理安全事件的端到端数据分析与机器学习评估方案,结合探索性分析、可解释风险指数、时间感知的 Random Forest 分诊模型与交互式 dashboard,解决跨站点安全事件风险优先级排序与响应决策支持问题。
Stars: 0 | Forks: 0
# 物理安全 AI 与数据分析评估
对八个全球站点共 2,000 起物理安全事件的端到端评估。该项目结合了数据质量验证、探索性分析、可解释的站点风险指数、具有时间感知能力的机器学习评估,以及交互式 Streamlit dashboard。
## 关键结果
- 2,000 条有效记录,12 个源字段,无空白单元格、重复 ID、无效日期或无效响应时间。
- 776 起高/严重级别 incident(38.8%);165 起严重级别 incident。
- Austin 的绝对数量最高(269),而 Dublin 的严重级别 incident 最多(30),在比较风险指数中排名第一。
- 平均响应时间为 11.59 分钟;中位数为 12 分钟;第 90 百分位数为 18 分钟。
- 选定的分诊模型:Random Forest。最近周期测试 recall 81.8%,precision 70.4%,F1 75.6%,ROC-AUC 0.917,PR-AUC 0.878。
- 重要提示:在这个经过精心筛选的样本中,incident 类型与严重程度强相关。模型性能仅为概念验证,不能作为在生产环境中泛化的证据。
## Repository 结构
```
.
├── Physical_Security_Incidents.csv # Original data, preserved unchanged
├── streamlit_app.py # Interactive dashboard entrypoint
├── requirements.txt # Pinned deployment dependencies
├── data/processed/ # Cleaned data and quality report
├── models/ # Trained pipeline, metrics, predictions
├── notebooks/ # Guided reproducible walkthrough
├── outputs/analysis/ # EDA and risk-score summaries
├── reports/ # Executive PDF and interview guide
├── scripts/ # Pipeline, training, report generation
└── src/ # Reusable preparation, analysis, modelling
```
## 复现该项目
```
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python scripts\run_pipeline.py
python scripts\train_model.py
python scripts\generate_report.py
streamlit run streamlit_app.py
```
打开 Streamlit 显示的本地 URL,通常为 `http://localhost:8501`。
## 模型设计
二元目标定义为 `1 = 高/严重级别` 和 `0 = 低/中级别`。输入仅限于在接收时合理可获取的字段:站点、incident 类型、班次、门禁通行、CCTV 警报、访客参与情况以及日历特征。严重程度、结果、响应时间和 Incident ID 被排除在外,以防止 target 泄漏。
记录按时间顺序排列:最早的 60% 用于训练候选模型,接下来的 20% 用于选择运行阈值,最后的 20% 留作最终评估。该阈值在要求至少 70% 验证 precision 的前提下,最大化 recall。
## 风险指数定义
站点指数对标准化后的组成部分进行加权:35% 高风险占比、20% 严重级别计数、20% 第 90 百分位响应时间、15% 调查中占比,以及 10% 近期正向趋势。它是一个用于比较的优先级排序辅助工具,而不是概率或因果关系的安全度量。
## 部署
1. 将此文件夹推送到 GitHub repository。
2. 登录 Streamlit Community Cloud。
3. 从 repository 创建一个应用,并选择 `streamlit_app.py`。
4. 选择兼容的 Python 版本并部署。
5. 在共享 URL 之前,验证每个选项卡和预测表单。
此样本不包含任何凭据或机密。在公开托管任何真实的安全数据集之前,请审查组织政策。
## 局限性
- 未提供站点人口、客流量、建筑规模、运营时间或人员配备数据,因此原始站点计数并非标准化的 incident 发生率。
- 没有确切的时刻、时区、派遣/结案时间戳、损失影响、叙述或干预数据。
- 评估样本异常干净,可能是经过筛选或合成的。
- 该模型在投入运营使用前必须进行前瞻性验证,且绝不应自主决定安全事件的升级处理。
标签:Apex, Kubernetes, NoSQL, Streamlit, 代码示例, 数据分析, 机器学习, 物理安保, 访问控制, 逆向工具