李圣普 王小辉
摘 要: 煤与瓦斯突出事故危及矿工生命,破坏生产现场。通过现场监测瓦斯突出的相关数据,对瓦斯突出的危险程度进行预测,提前做好防范措施,减少瓦斯突出事故的危害。为此,提出支持向量机算法与改进粒子群算法相结合的瓦斯突出危险程度预测模型:首先对容易陷入局部最优的粒子群进行改进;接着应用改进粒子群算法求解影响支持向量机分类预测性能的最佳参数;然后把最佳参数应用于擅长模式识别的支持向量机算法,进行瓦斯突出样本数据的训练,构建瓦斯预测模型;最后使用瓦斯预测模型对新的瓦斯突出数据进行预测。实验结果表明,采用该方法进行瓦斯突出预测的准确率,比纯支持向量机算法提高了5%。
关键词: 改进粒子群; 支持向量机; 参数优化; 瓦斯突出预测
中图分类号: TN911?34; TP391 文献标识码: A 文章编号: 1004?373X(2016)04?0021?05
Abstract: Coal and gas outburst accident endangers miners' lives and damages production site. The risk degree of gas outburst is predicted with the relevant data of gas outburst to make precautionary measure and reduce the gas outburst hazard. Therefore, a gas outburst risk prediction model based on combination of vector machine (SVM) algorithm and improved particle swarm optimization (PSO) algorithm is proposed in this paper. Firstly, the particle swarm being easy to trap in local optimum is improved, and the improved particle swarm optimization (PSO) algorithm is used to solve the optimal parameters which affects the classification prediction performance for SVM. Secondly, the solved optimal parameters are used in SVM algorithm being good at pattern recognition to train the gas outburst sample data and build gas outburst risk prediction model. At last, the gas outburst risk prediction model is adopted to predict the new gas outburst data. The experimental results show that the gas outburst prediction accuracy of the method is increased by 5%, which is higher than that of the pure SVM algorithm.
Keywords: particle swarm improvement; support vector machine; parameter optimization; gas outburst risk prediction
0 引 言
煤与瓦斯突出事故是煤炭生产过程中的重大安全事故,危及矿工生命,所引起的爆炸还严重破坏煤炭生产现场[1]。煤与瓦斯突出的预测方法研究,尤其是提高预测的精度,为瓦斯突出防范措施提供有价值的依据,进而减少瓦斯突出事故的所造成的危害。因此,瓦斯突出危险的预测具有重要的研究价值。
近年来,智能算法建模与预测成为预测领域的重要研究内容之一,目前,人工神经网络、支持向量机、遗传算法、灰色理论等智能算法被应用于瓦斯突出预测[2?3]。但是这些算法也存在一些不可避免的问题:基于神经网络的分类预测方法虽然分类能力强,但是神经网络的自身结构导致在权值学习过程中存在会深陷于局部极小点、收敛过程慢、参数设置复杂等问题,传统的智能检测技术还存在着算法单一的缺点[4?5]。因此,如何低成本地提高预测的准确率也有待深入研究。支持向量机(SVM)擅长于模式分类,采用结构化风险原则,且具有小样本数据预测的优点,可有效避免神经网络样本数据较多,收敛速度慢,学习不足或过多和陷入局部最小等缺点,非常适合瓦斯突出危险程度的预测。但网格搜索法作为支持向量机模型中常见的参数选择方法,具有搜索时间长,搜索精度小等缺点[6?7]。粒子群(PSO)算法是启发式的智能搜索算法,采取改进措施后,更好地寻求全局最优解,用比网格搜索法更快的搜索速度求解更宽广参数空间内更好的解[8]。
为此,文章提出关于改进粒子群(IPSO)与支持向量机(SVM)相结合的瓦斯突出预测方法。支持向量机算法作为瓦斯突出预测的主模型,但分类和检测结果的好坏,取决于支持向量机模型中的参数选择,在最佳参数的求解环节引入改进粒子群算法,使用启发式的智能搜索方法更加快速地寻找全局最优解,可有效提升瓦斯突出预测的速度和精度。
1 IPSO?SVM瓦斯突出预测原理
1.1 瓦斯突出指标的选取
查阅相关的研究资料,大都选取5个反映突出的因素和指标,分别为:钻屑瓦斯解析指标、瓦斯放散初速度、煤的坚固性系数、煤层瓦斯含量和瓦斯压力。这些指标分别反映煤层遭受破坏的严重程度、煤的渗透性能、煤的坚固性等特性,是突出危险的重要因素[1]。
煤与瓦斯突出的危险程度与等级依次分为:无危险,突出威胁,突出危险。无危险表示不会发生瓦斯提出危险,突出威胁表示有发生瓦斯突出的征兆,突出危险表示时刻都有发生瓦斯突出的危险。
1.2 支持向量机与模式分类
支持向量机,主要思想在于建立分类超平面作为决策曲面,将正反例间的隔离边缘最大化来分类。其应用了结构风险最小化准则,较好地解决了小样本、非线性、高维数等实际问题。瓦斯突出预测,其本质是一个模式识别问题,首先判断有无瓦斯突出危险,有突出危险后,进而识别出危险程度。
设瓦斯突出样本数据为X,根据第1.1节指标的选取,每条样本数据将具有5个相关的属性。此外每条样本数据还有一个表示其危险程度的状态数据。瓦斯突出危险程度的状态的集合为Y,[Y={1,2,3}](其中:1代表无危险状态;2代表突出威胁;3代表突出危险)。那么,创建预测模型就是根据支持向量机原理求解以下问题:
对于数据[T={(x1,y1),(x2,y2),…,(xl,yl)}∈(X×Y)l],寻找一个实值函数[y(x)]在[xi∈X=Rn,yi∈Y={0,1,2},i=1,2,…,l]里面,判断任何模式下的[x]相对应的[y]值,可以方便使用决策参数[f(x)=sgn(y(x))]。为找到最优分类超平面,需求解下面问题:
[ minω,b12ω2+Ci=1lξi s.t yi((ω?xi)+b)+ξi≥1, i=1,2,…l] (1)
式中: [ω]表示系数向量;[ξi≥0]表示松弛变量;C是惩罚因子,通过惩罚因子改变能够在分类器的误分类率和泛化力间折衷[3?5]。
最终,可求得决策函数:
[f(x,α)=sgni=1lyiα0iK(x?xi)+b] (2)
式中:[K(x?xi)]是核函数。
核函数和它的参数主要决定样本数据分布在高维特征空间中的复杂程度。
由上述计算过程可以看出,惩罚因子C与核函数的选择及其参数的确定是影响支持向量机分类性能的主要因素。采用SVM来做分类,想要达到较满意的结果,需要调节惩罚因子参数和核函数参数,才能得到比较理想的预测分类准确率,然而支持向量机做不到这一点,下文利用改进粒子群算法来优化惩罚因子C和核函数参数的选取过程。
1.3 改进粒子群算法优化支持向量机参数
粒子群算法是一种启发式的智能优化算法,该算法具有搜索机制较为简单、收敛速度快、运算量小等优点,改进粒子群算法在进行大规模搜索时,能够避免陷入局部最优解的缺陷[9?10]。利用粒子群算法来优化支持向量机算法中惩罚因子C和核函数参数的优化选择,可以避免SVM算法传统的网格搜索方法计算量大,搜索区域不易精确定位等缺点,提高搜索速度,智能优化搜索区域与精度。
PSO算法数学理论基础为[10]:设在D维的搜索空间内有n个粒子。向量Li=(xi1,xi2,…,xiD)表示i粒子的位置空间,其“飞行”中最优历史位置(最优解)为Pi=(pi1,pi2,…,piD),设第g个粒子的历史最优位置pg为全部局部最优解pi(i=1,2,…,n)的最优;第i个粒子的速度用向量Vi=(vi1,vi2,…,viD)表示。按如下公式进行每个粒子的位置变化:
[Vid(t+1)=w×Vid(t)+ c1×rand( )×[Pid(t)-Lid(t)]+ c2×rand( )×[Pgd(t)-Lid(t)]] (3)
[Lid(t+1)=Lid(t)+Vid(t+1), 1≤i≤n,1≤d≤D] (4)
式中:速度的变化区间[-VMAXd,VMAXd],第d(1≤d≤D)维的位置变化区间为[-XMAXd,XMAXd],当迭代中如果位置或速度越界就取边界值;c1,c2为加速因子是正常数;rand()是区间[0,1]的随机数;w是惯性因子。粒子群初始位置与速度均随机产生,后根据式(3),式(4)进行迭代,直至找到最优解。
在算法改进方面,为了减少陷入局部解,当粒子群收敛到一定程度采取变异措施,围绕粒子群的当前质心对粒子群重新初始化。在粒子群的迭代求解过程中获得新的搜索位置,增加了求得更优解的机会。
粒子群算法启发式寻优,速度快,参数简单的特点,加上全局寻优性能的改进,应用于优化SVM的最佳参数寻找,主要步骤如下:
(1) 选择阈值与最大迭代次数maxgen;
(2) 初始化粒子的随机位置和速度为:Li=(xi1,xi2,…,xiD),Vi=(vi1,vi2,…,viD);
(3) 测量每个粒子的适应值;调研svmTrain;
(4) 根据步骤(2)更新初始化粒子的位置和速度;
(5) 把每个粒子相对应的适应值与其寻找过程中最好位置的适应值进行对比,发现较好的则将其作为自身当前最好位置;
(6) 对比每个粒子相对应的适应值与全局所经历过最好位置的适应值取优,作为自身当前全局最好位置;
(7) 通过以上步骤,若没有达到结束条件要求的适应值,返回步骤(2);否则执行步骤(8);
(8) 输出gbest。
2 IPSO?SVM瓦斯突出预测实现
2.1 实现的总体思路
要实现基于改进粒子群支持向量机的瓦斯突出预测功能,主要进行如下4步的工作:
(1) 瓦斯突出数据样本准备,作为算法的训练数据和测试数据。样本数据[1](部分)如表1所示。
(2) 根据第1.3节改进粒子群算法的步骤,应用PSO粒子群算法求解SVM的最佳参数。
(3) 使用步骤(2)求得的最佳参数,使用式(1)和式(2),结合训练样本数据,构建SVM算法预测分类模型。
(4) 使用SVM算法预测分类模型,对测试数据进行瓦斯突出预测,并验证模型预测的准确性。
(5) 分析实验结果,并从SVM不同核函数选择和PSO优化SVM等多方面对比多种不同预测方法的准确率。瓦斯突出预测模型整体流程如图1所示。
2.2 工具选择与基础数据设置
采用Matlab 2014a软件与支持向量机加强工具箱Libsvm,进行IPSO?SVM模型的瓦斯突出预测实验与仿真。
基于上文分析,试验中选取包含无危险、突出威胁、突出危险这三种情况下的共40个样本数据进行模型的训练。选取的每个样本数据共5个特征值。最后使用包含这三种情况的20个样本进行预测。下面仅列出瓦斯突出的部分数据如表1所示,其他数据不再赘述。
表1 瓦斯突出数据
2.3 Matlab实验设计
使用Matlab实现IPSO_SVM算法瓦斯突出预测功能的实验,主要步骤如下所示:
(1) 数据文件设计
将瓦斯突出的样本数据(无危险、突出威胁、突出危险)等数据保存到Matlab的mat数据文件中,为后续的预测算法提供基础数据。复杂的地方在于需要把状态数据重新组织成适合SVM算法使用的数据结构,根据SVM算法状态数据、类别数量、类别标签的要求,瓦斯突出预测的数据文件设计如下:
wasi:存储瓦斯突出的样本数据:包含3种类别的共60条数据,每条状态数据包括该状态下的5个特征值。
wasi_labels:存储危险类别的标签,1代表无危险状态、2代表突出威胁、3代表突出危险。
classNumber:分类个数,其数值为3。
(2) 选定训练集和测试集
在第一步的数据文件中取出部分状态数据及其状态标签单独存放,为后续的SVM模型训练提供输入数据和测试数据,程序设计为取包含3种危险类别的前40条数据作为训练数据集,后20条数据作为测试数据集,具体如下:
%将包含3种危险类别的前40条数据做为训练集
train_wasi = [wasi(1:40,:)];
%相应的训练集的标签也要分离出来
train_wasi_labels = [wasi_labels(1:40)];
%将包含3种危险类别的后20条数据做为测试集
test_wasi = [wasi(41:60,:)];
%相应的测试集的标签也要分离出来
test_wasi_labels = [wasi_labels(41:60)];
(3) 数据预处理
数据归一化处理后,可明显提高算法模型的精度,将训练集和测试集归一化到[0,1]区间,使用Matlab的归一化函数mapminmax:
%求出训练集和测试集的大小:行数和列数
[mtrain,ntrain] = size(train_wasi);
[mtest,ntest] = size(test_wasi);
%将训练集和测试集归并为数据集
dataset = [train_wasi;test_wasi];
%使用Matlab的归一化函数mapminmax归一化到[0,1]区间
[dataset_scale,ps] = mapminmax(dataset′,0,1);
dataset_scale = dataset_scale′;
%求得归一化后的训练集和测试集
train_wasi = dataset_scale(1:mtrain,:);
test_wasi = dataset_scale( (mtrain+1):(mtrain+mtest),: );
(4) 应用IPSO算法求解最佳的SVM参数c与g
根据IPSO粒子群算法自定义函数psoSVMcgForClass,求解SVM算法所需的最佳c值与g值,自定义函数的具体实现思路参考的1.3节IPSO算法实现步骤:
[bestacc,bestc,bestg] = psoSVMcgForClass(train_wasi_labels,train_wasi);
其中:参数train_wasi_labels和train_wasi为测试集中的状态数据及其类别标签;bestacc为求解的最佳准确率,bestc为求解的最佳c值;bestg为求解的最佳g值。
(5) 利用最佳的参数进行SVM网络训练
将上步求得的最佳值生成SVM训练模型的参数字符串,其中参数t的值确定核函数的类型:
cmd = [′-c′,num2str(bestc),′-g′,num2str(bestg), ′-t 1′];
使用svmLib工具箱svmtrain函数训练预测模型:
model = svmtrain(train_wasi_labels,train_wasi,cmd);
其中:参数train_wasi_labels,train_wasi为测试集中的状态数据及其类别标签;model为训练所得的分类模型。
(6) SVM网络测试与检测
使用svmLib工具箱svmpredict函数训练预测模型
[predict_label,accuracy] = svmpredict(test_wasi_labels,test_wasi,model);
其中:参数model即上一步中训练所得的分类模型;predict_label为预测所得的分类结果;accuracy为预测的准确率。
2.4 实验结果与分析
该部分主要讨论以下2种情形的实验结果及对比分析:
(1) IPSO优化SVM模型选用不同SVM核函数的预测效果及对比,因为SVM算法的预测精度与所选取的核函数密切相关,而支持向量机核函数的选取方面还没有严格的理论依据,需要对比找到最优的IPSO优化SVM预测模型。
(2) 单纯的SVM模型的预测效果及其与IPSO优化SVM预测模型的对比,观察PSO优化后的SVM是否比单纯的SVM模型性能优越。
根据2.2节整理的数据和2.3节设计的实验进行瓦斯危险预测实例的分析和研究,首先进行数据归一化预处理,接着对样本中基础数据进行训练样本与测试样本的分类,输入训练样本数据后,然后利用粒子群IPSO算法对支持向量机的参数进行优化,设最大迭代步数为200,参数寻优结果如图2所示。
将最优参数c和g的值引入支持向量机预测识别,分别实验4种核函数下的瓦斯危险预测,经过模型训练,输入测试样本对模型进行准确性检验的结果如图3、图4所示。
预测结果
从图中可以看出IPSO优化SVM的预测模型,使用线性核函数、RCF核函数、Sigmoid核函数3种核函数时的预测准确率均为90%(18/20),而使用多项式核函数时的预测准确率更高一点,达到了95%(19/20)。此外,还进行了单独使用SVM算法的预测实验,只使用SVM算法的预测模型求解到的预测结果如图5所示,其预测的准确率为90%(18/20),大幅度低于IPSO优化后的SVM预测模型,原因就在于单独的SVM算法中的参数c和g的是大概估算,并不是最优的,较大程度地影响了SVM预测的准确性。
从模型的瓦斯突出预测准确率来看IPSO?SVM模型明显优于单独的SVM模型,且多项式核函数模型优于其他三种核函数模型。经测试样本验证,参数c=0.1,g=304.947 9,选用多项式核函数的IPSO?SVM模型可用于瓦斯突出危险预测,预测准确率明显提高。
3 结 语
本文提出改进PSO算法与SVM相结合的瓦斯突出预测模型,并进行实验验证模型预测的准确性。采用该方法进行瓦斯突出预测的准确率,比纯支持向量机算法提高了5%。通过分析和对比多种不同检测方法的实验,表明该方法提高了瓦斯突出预测的准确率和效率。
参考文献
[1] 王海柱.改进的蚁群聚类算法在煤与瓦斯突出预测中的应用研究[D].太原:太原理工大学,2012.
[2] 朱志洁,张宏伟,韩军,等.基于PCA?BP神经网络的煤与瓦斯突出预测研究[J].中国安全科学学报,2013,23(4):45?50.
[3] 任浩源.BP神经网络在煤与瓦斯突出危险性预测中的应用研究[D].西安:西安科技大学,2012.
[4] 安文超.基于SVM的煤与瓦斯突出危险性区域预测及防突技术研究[D].北京:中国计量学院,2013.
[5] 曲方,安文超,李迎业,等.基于GRA?SVM方法的煤与瓦斯突出预测模型研究[J].中国煤炭,2012,38(11):102?106.
[6] 彭泓,高攀.粗神经网络在煤与瓦斯突出预测系统的应用[J].仪表技术与传感器,2011(11):100?103.
[7] 张晓铭.基于PSO算法优化的自组织竞争神经网络在煤与瓦斯突出预测中的应用研究[J].中国煤炭,2013,39(1):106?109.
[8] 周游.基于粒子群优化的动态优化研究[D].杭州:浙江大学, 2014.
[9] 董方.粒子群算法研究及其在动态优化中的应用[D].杭州:浙江大学,2014.
[10] 李艳丽.基于多目标优化的粒子群算法研究及其应用[D].成都:西南交通大学,2014.