0 引言
1 数据指标筛选及预处理
1.1 数据来源
1.2 数据指标筛选
1.3 数据预处理
2 基于时空特征的事故多发点鉴别
2.1 地理编码
2.2 事故时空立方体构建
2.3 热点分析
2.3.1 年尺度的时空立方体
2.3.2 日尺度的时空立方体
2.4 热点鉴别
表1 事故多发点位置及对应时空演化模式 |
| 事故多发点路段 (里程桩) | 时空演化模式 |
|---|---|
| K448—K454段 | 20:00后为分散热点,其余时间无显著性 |
| K484—K486段 | 0:00—2:00无显著性;2:00—10:00为 分散热点;10:00—24:00为连续热点 |
| K532—K536段 | 0:00—16:00无显著性;16:00—18:00为分散热点;18:00—24:00为连续热点 |
| K536—K544段 | 0:00—16:00无显著性;16:00—24:00为分散热点 |
| K544—K554段 | 0:00—10:00无显著性;10:00—24:00为连续热点 |
| K554—K556段 | 0:00—10:00无显著性;10:00—14:00为分散热点;14:00—24:00为连续热点 |
| K564—K568段 | 14:00—18:00为分散热点,其余时间 无显著性 |
| K616—K624段 | 10:00—14:00为分散热点;14:00—20:00为连续热点;其余时间无显著性 |
3 基于XGBoost改进模型的事故多发点预测
3.1 特征选取
3.2 XGBoost模型构建
表2 XGBoost模型参数调整 |
| 参数 | 解释 | 参数范围 | 最优参数 |
|---|---|---|---|
| max_depth | 树的最大深度 | [3, 10] | 3 |
| n_estimators | 弱学习器的数量 | [500, 1000] | 1 000 |
| min_child_weight | 叶子节点的最小权重 | [0.1, 0.9] | 0.9 |
| colsample_bynode | 每个节点处列的 子采样率 | [0.1, 0.9] | 0.9 |
| subsample | 训练每棵树时实例的 子采样率 | [0.2, 0.6] | 0.6 |
| learning_rate | 学习率 | [0.1, 0.4] | 0.4 |
| scale_pos_weight | 正负样本的比例 平衡参数 | [0.6, 3] | 3 |
| reg_alpha | 正则化参数 | [0.05, 0.1] | 0.1 |
3.3 模型对比与优化
表3 各模型评价指标对比 |
| 方法 | 精确率 | 召回率 | F1分数 | 准确率 |
|---|---|---|---|---|
| CNN-LSTM | 0.523 7 | 0.502 4 | 0.520 4 | 0.590 6 |
| CNN-LSTM-ATT | 0.622 1 | 0.581 7 | 0.571 4 | 0.682 8 |
| 随机森林 | 0.833 3 | 0.333 3 | 0.476 2 | 0.668 1 |
| XGBoost | 0.821 8 | 0.790 5 | 0.805 8 | 0.827 6 |