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, 代码示例, 数据分析, 机器学习, 物理安保, 访问控制, 逆向工具