文章快速检索    
  地震地磁观测与研究  2019, Vol. 40 Issue (5): 41-47  DOI: 10.3969/j.issn.1003-3246.2019.05.006
0

引用本文  

刘立申, 王晨晖, 王利兵, 等. 基于PCA-PSO-SVM的地震死亡人数预测模型研究[J]. 地震地磁观测与研究, 2019, 40(5): 41-47. DOI: 10.3969/j.issn.1003-3246.2019.05.006.
Liu Lishen, Wang Chenhui, Wang Libing, et al. Earthquake casualties prediction model based on PCA-PSO-SVM[J]. Seismological and Geomagnetic Observation and Research, 2019, 40(5): 41-47. DOI: 10.3969/j.issn.1003-3246.2019.05.006.

基金项目

河北省地震科技星火计划(项目编号:DZ20160405023)

通讯作者

王晨晖(1992—), 男, 硕士研究生, 主要从事地震观测研究工作。E-mail:caesar621@163.com

作者简介

刘立申(1974—), 男, 高级工程师, 主要从事地震分析与观测研究工作。E-mail:270882786@qq.com

文章历史

本文收到日期:2018-11-30
基于PCA-PSO-SVM的地震死亡人数预测模型研究
刘立申 , 王晨晖 , 王利兵 , 陈凯男 , 吴鹤帅     
中国河北 054000 红山基准地震台
摘要:为准确预测地震死亡人数,提出了基于主成分分析法(PCA)和粒子群算法(PSO)优化的支持向量机(SVM)模型。首先利用主成分分析法对地震死亡人数7个影响因子中的6个进行数据降维,同时对第7个发震时刻因子单独进行区间分类,然后对提取出的主成分进行归一化处理,将归一化的主成分数据作为支持向量机的输入向量,通过粒子群算法寻优获得最优支持向量机模型参数,最终建立基于PCA-PSO-SVM的地震死亡人数预测模型,并对5组样本进行死亡人数预测,同时对比分析包含和不包含发震时刻因子的2种情况下的模型预测效果。结果表明:在不考虑发震时刻因子的情况下,使用PCA-PSO-SVM模型的最小误差、最大误差和平均误差分别为0.85%、20%、10%,其平均误差相比PSO-SVM、SVM模型分别降低2.08%、2.28%;输入向量加入发震时刻因子分类数据后,PCA-PSO-SVM模型的最小误差、最大误差和平均误差分别为0.25%、20%、7.18%,其平均误差相比PSO-SVM、SVM模型分别降低3.34%、3.50%。因此,加入发震时刻因子后3种模型的平均误差明显降低,同时由于PCA-PSO-SVM模型进行主成分降维处理,能够明显提高运行效率和预测精度,故降低了模型复杂度。
关键词地震死亡人数    主成分分析法    粒子群算法    支持向量机    
Earthquake casualties prediction model based on PCA-PSO-SVM
Liu Lishen , Wang Chenhui , Wang Libing , Chen Kainan , Wu Heshuai     
Hongshan Benchmark Seismic Station, Hebei Province 054000, China
Abstract: In order to predict earthquake casualties accurately, support vector machine (SVM) model optimized by genetic algorithm (PSO) based on principle component analysis (PCA) was proposed. Making the data dimension reduction to 6 factors from 7 impact factors of earthquake casualties using PCA, classifying the origin time of earthquake by intervals, normalizing the extracted principal components which were used as input vectors of support vector machine and optimizing the best SVM parameters using PSO, finally the prediction model for earthquake casualties based on PCA-PSO-SVM was established which was used to predict the casualties of 5 samples. The prediction model results considering the earthquake origin time factors or not were compared. The result shows the minimum error, maximum error and average error of PCA-PSO-SVM model were 0.85%, 20% and 10% respectively without considering the earthquake origin time factor. Compared with PSO-SVM model and SVM model, the average error of PCA-PSO-SVM model is reduced by 2.08% and 2.28% respectively. After the classified data of origin time factor was added in input vectors, the minimum error, maximum error and average error of PCA-PSO-SVM model were 0.25%, 20% and 7.18% respectively. Compared with PSO-SVM model and SVM model, the average error of PCA-PSO-SVM model is reduced by 3.34% and 3.50%, respectively. Therefore, the average error of three models was reduced obviously after adding the earthquake origin time factor, and PCA-PSO-SVM model can improve the operation efficiency and prediction accuracy obviously and reduced the complexity of the model duo to dimension reduction.
Key words: earthquake casualties    principal component analysis    particle swarm algorithm    support vector machine    
0 引言

灾难性地震往往在短时间内造成严重破坏, 对人类社会造成巨大的生命财产损失, 因此科学合理地进行地震死亡人数预测对于防震减灾工作具有重要的指导意义(吴新燕等, 2014; 张文路等, 2016)。

地震死亡人数受多个因子的共同影响, 且死亡人数与影响因子之间存在复杂的非线性关系, 利用传统的方法很难科学地对此进行解释。为了解决该问题, 何明哲等(2011)提出了基于地震损伤指数的地震人员死亡预测方法。周德红等(2017)选用BP神经网络建立地震死亡人数预测模型。张莹等(2017)采用多元非线性回归法建立了基于多因素的地震灾害人员死亡评估模型。虽然以上研究对于该问题的解决均有一定的效果, 但也存在着一些不足, 如神经网络收敛速度过慢, 易陷入局部最优, 而多元非线性回归法的主观性较强。

基于此, 本文提出PCA和PSO算法优化的支持向量机模型, 用于地震死亡人数预测。首先采用PCA分析法对地震死亡人数的7个影响因子中的6个进行降维处理, 同时对第7个发震时刻因子单独进行区间分类, 将提取的主成分作为模型的输入向量; 然后利用PSO算法训练支持向量机从而获得最优参数; 最终建立PCA-PSO-SVM模型, 运用该模型对测试样本进行预测, 同时对比分析包含和不包含发震时刻因子的2种情况下的模型预测效果, 以期为地震死亡人数预测提供参考。

1 基本原理 1.1 主成分分析法

主成分分析法是通过构造原变量的线性组合得到维数较少且互不相关的新变量(王岩等, 2017; 史才旺等, 2018)。

设(X1, X2, …, Xn)为总体Xn个样本, 每个样本对应m维变量, 则对应矩阵为

$ {\mathit{\boldsymbol{X}}_{\mathit{\boldsymbol{m}} \times \mathit{\boldsymbol{n}}}} = \left[ {\begin{array}{*{20}{c}} {{x_{11}}}&{{x_{12}}}& \ldots &{{x_{1n}}}\\ {{x_{21}}}&{{x_{22}}}& \ldots &{{x_{2n}}}\\ \vdots & \vdots & \ddots & \vdots \\ {{x_{m1}}}&{{x_{m2}}}& \cdots &{{x_{mn}}} \end{array}} \right] $ (1)

首先求出式(1)矩阵的协方差阵, 为了减少变量间由量纲差异引起的误差, 根据公式${\rho _{ij}} = {\mathop{\rm cov}} \left({{X_i}, {X_j}} \right)/\sqrt {{\sigma _{ii}}{\sigma _{jj}}} $将协方差阵化为相关系数阵。通过求解相关系数阵的特征值λ1λ2λm≥0, 得到特征值对应的正交单位化特征向量e1, e2, …, em。第i个主成分的贡献率为λi/P(i = 1, 2, 3, …, m); $P = \sum\limits_{i = 1}^m {{\lambda _i}} $, 前q个主成分的累计贡献率为$\sum\limits_{i = 1}^q {{\lambda _i}} /P$。当前q个主成分累计贡献率大于85%时, 用其代替初始的影响因素进行分析, 一般是满足要求的。

1.2 粒子群优化算法

粒子群优化算法是通过模仿鸟群觅食而演化来的启发式优化算法, 它能够通过快速收敛来寻找全局最优参数(谢玮等, 2016), 具体流程见图 1

图 1 PSO流程 Fig.1 The flow of PSO
1.3 支持向量机

支持向量机是由统计学理论发展而来的适用于小样本的机器学习方法, 其核心思想如下(文翔等, 2014; 王军, 2018)。

设训练样本集为(Xi, yi), 其中, i=1, 2, …, n, XiRn, 为输入矢量; yiR, 为对应的输出结果, 则线性回归函数在高维特征空间的表达式为

$ {y_i} = \mathit{\boldsymbol{w}} \cdot \phi \left({{\mathit{\boldsymbol{X}}_\mathit{\boldsymbol{i}}}} \right) + b $ (2)

式中, $\phi \left({{\mathit{\boldsymbol{X}}_\mathit{\boldsymbol{i}}}} \right)$为样本数据转换到高维空间的非线性映射; w为权值矢量; b为偏置值。wb有最优解, 可通过构造下列目标函数求得

$ \begin{array}{l} \mathop {\min }\limits_{w, b, \xi, {\xi ^*}} \frac{1}{2}{\mathit{\boldsymbol{w}}^{\rm{T}}}\mathit{\boldsymbol{w}} + C\sum\limits_{i = 1}^m {\left({{\xi _i} + \xi _i^*} \right)} \\ {\rm{ s}}{\rm{.t }}\left\{ {\begin{array}{*{20}{l}} {{y_i} - {\mathit{\boldsymbol{w}}^{\rm{T}}}\phi \left({{X_i}} \right) + b \le \varepsilon + \xi _i^*}\\ {{\mathit{\boldsymbol{w}}^{\rm{T}}}\phi \left({{X_i}} \right) + b - {y_i} \le \varepsilon + {\xi _i}}\\ {{\xi _i}, \xi _i^* \ge 0} \end{array}\quad \;\;(i = 1, \ldots, m)} \right. \end{array} $ (3)

式中, C为惩罚参数, 即对SVM分类出错时的惩罚程度, 此参数的设置有效防止了个别误差影响到支持向量机整体的优化性能。

利用最优化理论将式(3)复杂的二次规划问题转变为一种对偶问题

$ \begin{array}{l} L\left({\mathit{\boldsymbol{w}}, b, \xi, {\xi ^*}, a, {a^*}, r, {r^*}} \right) = \frac{1}{2}{\mathit{\boldsymbol{w}}^{\rm{T}}}\mathit{\boldsymbol{w}} + C\sum\limits_{i = 1}^m {\left({{\xi _i} + \xi _i^*} \right)} -\\ \sum\limits_{i = 1}^m {a_i^*} \left({{y_i} - {\mathit{\boldsymbol{w}}^{\rm{T}}} \cdot \phi \left({{X_i}} \right) - b - \varepsilon - \xi _i^*} \right) - \sum\limits_{i = 1}^m {{a_i}} \left({{\mathit{\boldsymbol{w}}^{\rm{T}}} \cdot \phi \left({{X_i}} \right) + b - {y_i} - \varepsilon - {\xi _i}} \right) - \sum\limits_{i = 1}^m {{r_i}} - \sum\limits_{i = 1}^m {r_i^*} \end{array} $ (4)

式中, $a_i^*、{a_i}$为位格朗日乘子; K(Xi·Xj)为支持向量机的核函数。常用核函数为RBF核函数, 其表达式为${K_g}\left({\left| {X - {X_i}} \right|} \right) = \exp \left({ - g{{\left| {X - {X_i}} \right|}^2}} \right)$

求式(4)的最优解, 记为${\hat a^{(*)}} = {\left({{{\hat a}_1}, \hat a_1^{(*)}, \ldots, {{\hat a}_l}, \hat a_l^{(*)}} \right)^{\rm{T}}}$。选择$\hat a$的1个正分量$0 < {\hat a_j} < C/l$, 计算$\hat b = {y_i} - \sum\limits_{j = 1}^l {\left({\hat a_j^* - {{\hat a}_j}} \right)} K\left({{X_i} \cdot {X_j}} \right) + \varepsilon $, 或选择${{{\hat a}^{\rm{*}}}}$的1个正分量$0 < \hat a_j^* < C/l$, 计算$\hat b = {y_i} - \sum\limits_{j = 1}^l {\left({\hat a_j^* - {{\hat a}_j}} \right)} K\left({{X_i} \cdot {X_j}} \right) - \varepsilon $

根据非线性回归问题在高维空间的解法, 最终得到支持向量机的回归函数为

$ f(X) = \sum\limits_{i = 1}^m {\left({a_i^* - {a_i}} \right)} \phi {\left({{X_i}} \right)^{\rm{T}}}\phi \left({{X_i}} \right) + b $ (5)
2 地震死亡人数预测

通过参阅前人文献(周德红等, 2017), 本文选取近50年来的32个样本地震数据, 其中, 前27个地震数据作为学习样本, 后5个地震数据作为测试样本, 原始数据见表 1

表 1 原始数据 Table 1 Original Data

地震发生的时间对灾难中人员伤亡数有较大影响。如果地震发生在白天, 那么会有较少的人员伤亡; 如果地震发生在晚上或者凌晨, 就会造成不可估量的人员伤亡。为了在预测中更准确地体现发震时刻对伤亡人数的影响, 本文将发震时刻分为2个时间段:发震时刻“1”表示白天(7:00—19:00), “0”表示夜晚(19:00—次日7:00);“ΔL”为震中烈度与抗震设防烈度之差。

2.1 主成分分析

由于发震时刻因子为离散变量, 而直接将PCA分析法用于离散变量是不适用的, 因此利用主成分分析法对其余6个影响因子进行降维处理, 相关系数矩阵见表 2, 归一化特征值, 各成分贡献率和累计贡献率见表 3。由表 3可见, 前3个主成分的累计贡献率为87.841%, 包含了原始变量绝大部分信息, 3个主成分表达式如下

表 2 6个影响因子的相关系数矩阵 Table 2 Correlation coefficient matrix of six impact factors
表 3 归一化特征值、贡献率和累计贡献率 Table 3 Normalized characteristic value, contribution rate and cumulative contribution rate
$ Y_{1}=0.368 S_{1}+0.114 S_{2}+0.388 S_{3}+0.135 S_{4}+0.28 S_{5}-0.056 S_{6}\\Y_{2}=0.071 S_{1}+0.38 S_{2}-0.067 S_{3}+0.534 S_{4}-0.421 S_{5}-0.032 S_{6}\\Y_{3}=-0.064 S_{1}+0.443 S_{2}+0.014 S_{3}-0.161 S_{4}+0.121 S_{5}+0.794 S_{6} $ (6)

其中, S1为震级, S2为震源深度, S3为震中烈度, S4为抗震设防烈度, S5为震中烈度与抗震设防烈度, S6为人口密度。将3个新生成的线性无关的主成分替代原始地震死亡人数的6个影响因子, 并采用下式进行归一化处理

$ X_i^* = \left({{X_i} - {X_{\min }}} \right)/\left({{X_{\max }} - {X_{\min }}} \right) $ (7)

其中, Xi$X_i^*$分别为各主成分的第i个样本数值与其相对应的归一化数值; ${{X_{\min }}}$${{X_{\max }}}$分别为各个主成分的最小值、最大值。以归一化后的3个主成分数据作为输入变量来建立SVM模型, 归一化结果见表 4

表 4 主成分归一化结果 Table 4 Normalized result of principal components
2.2 模型建立

SVM核函数为径向基函数(RBF), 影响其性能的主要参数为核参数g和惩罚参数C。为搜索最佳SVM参数, 编写基于Matlab语言的粒子群优化支持向量机程序。以表 4中3个主成分作为输入变量, 地震死亡人数作为输出变量, 设置终止代数为100, 种群数量为20, 经反复训练获得粒子群算法最优适应度曲线(图 2), 同时搜索到SVM的最优参数C =16.128 8;g = 2.252 3;eps = 0.039, 并对学习样本进行预测准确率回判检验, 预测准确率回判结果见图 3。由图 3可见, 预测准确率回判结果最小误差2.9%, 最大误差30%, 平均误差11.99%, 因此该模型可用于测试样本的预测。

图 2 粒子群算法适应度曲线 Fig.2 PSO fitness curve
图 3 学习样本预测准确率回判结果 Fig.3 The return result of prediction accuracy of the study samples
2.3 预测结果与分析

为研究发震时刻对模型预测精度的影响, 分别讨论输入向量包含和不包含发震时刻因子的2种情况下模型的预测效果, 同时采用降维后的主成分数据作为PCA-PSO-SVM模型的输入向量, 而PSO-SVM模型和SVM模型的学习样本则未经PCA降维处理, 3种模型同时对测试样本进行预测, 结果见表 5表 6

表 5 3种模型预测结果对比(不考虑发震时刻) Table 5 Comparisons of prediction results among three different models without considering seismic time
表 6 3种模型预测结果对比(考虑发震时刻) Table 6 Comparisons of prediction results among three different models without considering seismic time

表 5表 6可见:①在不考虑发震时刻的情况下, SVM模型的最小、最大、平均误差分别为6.12%、20.00%、12.28%, PSO-SVM模型的分别为5.98%、20.00%, 12.08%;PCA-PSO-SVM模型的分别为0.85%、20.00%、10%。PCA-PSO-SVM模型预测结果平均误差相比PSO-SVM、SVM模型分别降低2.08%、2.28%;②在考虑发震时刻的情况下, SVM模型的最小、最大、平均误差分别为4.59%、20.00%、10.68%, PSO-SVM模型的分别为4.27%、20.00%、10.51%, PCA-PSO-SVM模型的分别为0.25%、20.00%、7.18%。PCA-PSO-SVM模型预测结果平均误差相比PSO-SVM、SVM模型分别降低3.34%、3.50%。

由此可见, 加入发震时刻因子后3种模型的平均误差明显降低, 其中, PCA-PSO-SVM模型由于进行了主成分降维处理和粒子群算法的优化, 明显提高了运行效率, 降低了模型的复杂度, 故提升了预测精度。

3 结论

(1) 地震死亡人数与影响因子间关系错综复杂, 本文通过主成分降维与粒子群算法优化的支持向量机有机结合, 建立了基于PCA-PSO-SVM的地震死亡人数预测模型, 同时考虑了包含和不包含发震时刻因子对模型预测效果的影响。结果表明, 加入发震时刻因子后3种模型的平均误差明显降低, 其中, PCA-PSO-SVM模型由于进行了主成分降维处理和粒子群算法的优化, 明显提高了运行效率, 降低了模型的复杂度, 进而提升了预测精度。

(2) 在保证模型预测精度的前提下, 利用主成分分析法对地震死亡人数的6个影响因子进行降维处理, 提取3个主成分, 有效降低了模型维度, 提高了预测效率。

(3) PSO粒子群算法具有较快的收敛速度, 寻优得到的最优支持向量机参数C=16.1288;g = 2.2523, 较明显地优化了支持向量机的性能。

参考文献
何明哲, 周文松. 2011. 基于地震损伤指数的地震人员伤亡预测方法[J]. 哈尔滨工业大学学报, 43(4): 23-27.
史才旺, 何兵寿. 2018. 基于主成分分析和梯度重构的全波形反演[J]. 石油地球物理勘探, 53(1): 95-104.
王军. 2018. 支持向量机在地震与爆破识别中的应用[J]. 地震地磁观测与研究, 39(3): 181-188.
王岩, 李彤霞, 钱蕊, 等. 2017. 主成分分析法在2013年灯塔MS 5.1地震预测中的应用[J]. 地震地磁观测与研究, 38(5): 44-48.
文翔, 周斌, 阎春恒. 2014. 遥感分类方法在建筑物震害提取中的应用(以玉树地震为例)[J]. 地震地磁观测与研究, 35(5/6): 134-143.
吴新燕, 吴昊昱, 顾建华. 2014. 1999年以来地震生命损失评估研究新进展[J]. 震灾防御技术, 9(1): 90-102.
谢玮, 王彦春, 刘建军, 等. 2016. 基于粒子群优化最小二乘支持向量机的非线性AVO反演[J]. 石油地球物理勘探, 51(6): 1187-1194.
张文路, 蒋欢军. 2016. 地震人员伤亡评估方法与模型研究综述[J]. 结构工程师, 32(3): 181-191.
张莹, 郭红梅, 尹文刚, 等. 2017. 基于多因素的地震灾害人员伤亡评估模型研究[J]. 震灾防御技术, 12(4): 870-881.
周德红, 冯豪, 程乐棋, 等. 2017. 遗传算法优化的BP神经网络在地震死亡人数评估中的应用[J]. 安全与环境学报, 17(6): 2267-2272.