← 返回 Day 121 正文

Day 121 · 练习与清单

Day 121 — 异常检测与安全交叉 · 练习清单

✅ 完成清单


📝 基础练习题

练习1:Isolation Forest 基础

使用 sklearn.datasets.make_blobs 生成数据,注入5%的随机异常点,训练 Isolation Forest 并输出: - 正常/异常样本数量 - 异常分数的均值和标准差 - 使用不同 contamination 值(0.01, 0.05, 0.1, 0.2)时的检测结果

练习2:异常分数分析

在练习1的基础上: - 绘制异常分数的直方图 - 找出 decision_function 的阈值(offset_) - 分析哪些正常样本被误判为异常(False Positives)

练习3:参数对比实验

固定数据集,对比以下参数组合的效果: - n_estimators: 50 vs 100 vs 200 - max_samples: 64 vs 128 vs 256 vs 'auto' - 记录每种组合的训练时间和检测结果


🔥 进阶挑战题

挑战1:实时异常检测管道

设计一个滑动窗口的实时检测系统: 1. 模拟一个日志流(每秒产生10条日志) 2. 使用60秒滑动窗口提取特征 3. 每10秒用训练好的模型检测一次 4. 当检测到异常时输出告警 5. 实现模型的在线更新机制

挑战2:多维度异常检测

对比以下方法在同一数据集上的表现: - Isolation Forest - Local Outlier Factor (LOF) - One-Class SVM - Autoencoder(可用 PyTorch/Keras 实现) 比较指标:精确率、召回率、F1-score、训练时间

挑战3:日志异常检测器优化

基于 03-log-anomaly-detector.py 进行优化: 1. 增加日志模板挖掘(将相似日志归一化) 2. 实现基于时间序列的异常检测(用 LSTM 检测序列模式) 3. 添加告警聚合(相同异常10分钟内不重复告警) 4. 实现简单的 Web Dashboard 显示检测结果

挑战4:安全场景综合题

模拟一个完整的安全监控场景: 1. 生成正常用户行为日志(登录、浏览、操作) 2. 注入多种攻击模式: - 暴力破解(短时间内大量登录失败) - 权限提升(普通用户执行管理操作) - 数据泄露(大量数据下载) 3. 设计检测规则 + ML 模型混合方案 4. 评估检测效果和响应时间