本發(fā)明屬機器學(xué)習(xí)領(lǐng)域,具體涉及一種基于粒子群算法優(yōu)化支持向量機的爆破振動預(yù)測方法。
背景技術(shù):
爆破振動預(yù)測是研究爆破振動影響因子與爆破振動強度之間的關(guān)系,其中影響因子包括炸藥單耗、孔徑參數(shù)、地質(zhì)條件和爆心距等一系列因素,而振動強度通常指的是爆破產(chǎn)生的振動波的強弱,可以用爆破振動的速度、頻率和爆破振動時間等來描述,尤其是用爆破振動速度峰值來描述較為常見。
爆破振動預(yù)測是降低爆破危險系數(shù)、優(yōu)化爆破方案和評估爆破安全等級等爆破關(guān)鍵問題的有效方法,而研究高效準(zhǔn)確的適用于爆破振動預(yù)測的方法則尤為重要。近些年,針對爆破振動預(yù)測提出了一些方法,包括神經(jīng)網(wǎng)絡(luò)算法、遺傳算法以及支持向量回歸機算法等,這些方法都是人工智能領(lǐng)域的典型算法,應(yīng)用于爆破領(lǐng)域中,克服了以往薩道夫斯基經(jīng)驗公式的不足,提高了預(yù)測的準(zhǔn)確率。
在機器學(xué)習(xí)領(lǐng)域,支持向量機(svm)是一個有監(jiān)督的學(xué)習(xí)模型,通常用來進(jìn)行模式識別、分類以及回歸分析,通常的用于分類的支持向量機稱為支持向量分類機(svc),而用于回歸的則稱為支持向量回歸機(svr)。svm能夠很好地解決有限樣本、非線性以及高維分類和回歸問題,已經(jīng)有學(xué)者將svr應(yīng)用于爆破振動預(yù)測問題。svr的核心思想是基于結(jié)構(gòu)風(fēng)險最小化原則,通過核函數(shù)將無法線性回歸的原始空間映射到可以線性回歸的特征空間,從而利用線性回歸方法更好的解決了原問題。但是在訓(xùn)練svr模型時涉及到一些參數(shù),核函數(shù)、懲罰因子、松弛變量以及核參數(shù),這些參數(shù)的選擇很大程度上影響了模型的精度和泛化能力。
技術(shù)實現(xiàn)要素:
針對現(xiàn)有技術(shù)采用支持向量回歸機(svr)能夠預(yù)測爆破振動速度,但是不能預(yù)測振動強度的不足,本發(fā)明提出采用支持向量分類機(svc)和支持向量回歸機(svr)相結(jié)合的方法來預(yù)測爆破振動安全系數(shù),在主成分分析方法進(jìn)行特征提取的基礎(chǔ)上,同時采用改進(jìn)的粒子群算法(pso)對預(yù)測模型中的參數(shù)進(jìn)行組合優(yōu)化,以提高預(yù)測的精度。
一種基于粒子群算法優(yōu)化支持向量機的爆破振動預(yù)測的方法,其特征在于步驟如下:
步驟1:利用主成分分析方法對爆破振動影響因子進(jìn)行特征提取,得到樣本數(shù)據(jù)集;
步驟2:以步驟1得到的樣本數(shù)據(jù)集和振動速度數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動速度支持向量回歸機模型;以步驟1得到的樣本數(shù)據(jù)集和振動頻率數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動頻率支持向量回歸機模型;利用步驟1得到樣本數(shù)據(jù)集和振動持續(xù)時間數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動持續(xù)時間支持向量回歸機模型;所述的支持向量回歸機的四個參數(shù)為:核函數(shù)、懲罰因子、松弛變量和核參數(shù);
步驟3:分別利用步驟2得到的振動速度、振動頻率和振動持續(xù)時間的支持向量回歸機模型,對步驟1得到的樣本數(shù)據(jù)集進(jìn)行回歸,得到振動速度、振動頻率和振動持續(xù)時間的預(yù)測數(shù)據(jù),以這些數(shù)據(jù)和被保護建筑物的固有頻率數(shù)據(jù)及樣本的實際分類結(jié)果數(shù)據(jù)共同作為輸入數(shù)據(jù),利用改進(jìn)的pso算法對支持向量分類機的四個參數(shù)進(jìn)行組合尋優(yōu),得到判斷爆破是否屬于安全爆破的支持向量機分類機模型;所述的支持向量分類機的四個參數(shù)為:核函數(shù)、懲罰因子、松弛變量和核參數(shù);
步驟4:利用步驟3得到的支持向量分類機模型對待預(yù)測的爆破振動數(shù)據(jù)進(jìn)行分類預(yù)測,判斷當(dāng)前爆破是否安全。
步驟1中所述的利用主成分分析方法對爆破振動影響因子進(jìn)行特征提取,具體包括以下步驟:
步驟a:爆破振動影響因子的規(guī)范化處理:設(shè)原始爆破振動影響因子的屬性為d維,則原始爆破振動影響因子可以表示為原始屬性x1,x2,…,xd的n次觀測矩陣x*,即:
將n次觀測矩陣x*按列進(jìn)行中心標(biāo)準(zhǔn)化,使得每個屬性都落入相同的區(qū)間[0,1],得到規(guī)范化處理后的爆破振動影響因子;
步驟b:求原始屬性之間的相關(guān)性:計算原始屬性之間的相關(guān)性矩陣r=(rij)d×d,其中,rij為:
其中,xki表示第i個屬性xi的第k個觀測值,而
步驟c:確定主成分個數(shù)m:計算相關(guān)性矩陣r的特征方程det(r-λe)=0的特征根,并將其中非零的特征根按照降序排列,得到λ1≥λ2≥…≥λp>0,其中,e為單位矩陣,p為非零特征根的個數(shù);根據(jù)公式(3)確定主成分個數(shù)m:
其中,α表示主成分中含有所有數(shù)據(jù)信息的百分比,一般取值為80%~90%;
步驟d:按
步驟2和步驟3中所述的改進(jìn)的pso算法對支持向量回歸機和支持向量分類機進(jìn)行參數(shù)組合尋優(yōu),具體包括以下步驟:
步驟a:數(shù)據(jù)集處理:對輸入數(shù)據(jù)集進(jìn)行規(guī)范化處理,即將所有數(shù)據(jù)都?xì)w一化到區(qū)間[0,1]中,隨機抽取數(shù)據(jù)集80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%的數(shù)據(jù)作為測試集;
步驟b:初始化粒子群:在h維空間,初始化粒子群y,其中,第i個粒子的位置和速度分別為yi=(yi1,yi2,...,yih)和vi=(vi1,vi2,...,vih),i=1,2,…,m,m為粒子群個體總數(shù),粒子的初始位置由支持向量機待優(yōu)化四個參數(shù)的取值范圍[1,2]、[1,108]、[-10,10]、[0.01,0.2]隨機確定,粒子的初始速度由待優(yōu)化四個參數(shù)的粒度確定為(1,1,0.1,0.01);第i個粒子的個體極值位置為pi=(pi1,pi2,...,pih),種群的全局極值位置為pg=(pg1,pg2,...,pgh);
步驟c:更新:根據(jù)適應(yīng)度函數(shù)模型對每個粒子計算適應(yīng)度,如果其當(dāng)前適應(yīng)度優(yōu)于其個體極值位置對應(yīng)的適應(yīng)度,則用其當(dāng)前位置更新粒子的個體極值位置pi;如果某個粒子當(dāng)前適應(yīng)度優(yōu)于全局極值位置對應(yīng)的適應(yīng)度,則用這個粒子的位置更新粒子的全局極值位置pg;所述的適應(yīng)度函數(shù)根據(jù)模型不同而不同,如果對支持向量回歸機模型進(jìn)行組合參數(shù)尋優(yōu),則采用均方誤差函數(shù)為適應(yīng)度函數(shù),如果對支持向量分類機模型進(jìn)行組合參數(shù)尋優(yōu),則采用分類的誤差函數(shù)為適應(yīng)度函數(shù)。
步驟d:迭代:分別根據(jù)
步驟e:替換:新建種群y*,令y*=y(tǒng),對種群y*中適應(yīng)度不符合要求的粒子進(jìn)行隨機維替換,如果替換后的粒子的適應(yīng)度優(yōu)于替換前的粒子的適應(yīng)度,就用種群y*替換y,并且更新種群y*中相應(yīng)的粒子以及個體極值位置和全局極值位置;所述的替換原則為:如果種群y中某個粒子的適應(yīng)度未達(dá)到要求,則將種群中適應(yīng)度最優(yōu)的粒子的相應(yīng)維復(fù)制到未達(dá)到要求粒子的相應(yīng)維上,使粒子更接近全局最優(yōu);
步驟f:判斷:判斷是否達(dá)到最大迭代次數(shù),如果達(dá)到最大迭代次數(shù),則停止迭代,并輸出最優(yōu)粒子,即最優(yōu)參數(shù)組合;如果未達(dá)到最大迭代次數(shù),則跳轉(zhuǎn)到步驟c繼續(xù)執(zhí)行。
本發(fā)明的有益效果是:采用粒子群算法優(yōu)化支持向量機的參數(shù),提高了模型的預(yù)測精度,可以獲得更準(zhǔn)確的預(yù)測結(jié)果;同時在粒子群算法上進(jìn)行了改進(jìn),增加了“替換”操作,擴大了搜索范圍,克服了粒子群算法易陷入局部優(yōu)化的缺陷,并且同時對核函數(shù)、懲罰因子、松弛變量和核參數(shù)等四個參數(shù)進(jìn)行組合優(yōu)化,優(yōu)化得到的組合參數(shù)可以更好地改善模型的性能;此外,本發(fā)明方法結(jié)合爆破領(lǐng)域的特點,充分利用振動速度、振動頻率和振動持續(xù)時間等主要影響爆破爆破振動強度的參數(shù),采用支持向量分類機和支持向量回歸機結(jié)合的方法,對爆破振動的安全性進(jìn)行預(yù)測,提高了預(yù)測的準(zhǔn)確率。
附圖說明
圖1是本發(fā)明的基于粒子群算法優(yōu)化支持向量機的爆破振動預(yù)測方法的基本流程圖。
圖2是本發(fā)明采用改進(jìn)的pso算法對支持向量機模型的參數(shù)進(jìn)行組合尋優(yōu)的基本流程圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實施例。
如圖1所示,本發(fā)明的基于粒子群算法優(yōu)化支持向量機的爆破振動預(yù)測方法包含以下步驟:
步驟1:利用主成分分析方法對爆破振動影響因子進(jìn)行特征提取,得到樣本數(shù)據(jù)集。
原始的爆破數(shù)據(jù)為影響爆破振動的一系列參數(shù),包括孔徑參數(shù)、單段藥量等,以及在爆破過程中可以實際測得的變量,如爆破振動速度、頻率和振動持續(xù)時間,這三個都可以作為評價爆破振動強度的重要指標(biāo),為了得到真正影響爆破振動的主要因素,首先采用主成分分析法提取特征變量,去掉無關(guān)變量。具體為:
(1)爆破振動影響因子的規(guī)范化處理:輸入數(shù)據(jù)為可能影響爆破振動的相關(guān)參數(shù),不同的爆破方法有不同的影響因子,典型的因素有單段藥量、高程差、爆心距、孔深、孔距、排數(shù)、超深、填埋等,這些就是原始變量,假設(shè)有d個原始變量,即設(shè)原始爆破振動影響因子的屬性為d維,則原始爆破振動影響因子可以表示為原始屬性x1,x2,…,xd的n次觀測矩陣x*,即:
將n次觀測矩陣x*按列進(jìn)行中心標(biāo)準(zhǔn)化,使得每個屬性都落入相同的區(qū)間[0,1],得到規(guī)范化處理后的爆破振動影響因子。
(2)求原始屬性之間的相關(guān)性:計算原始屬性之間的相關(guān)性矩陣r=(rij)d×d,其中,rij為:
其中,xki表示第i個屬性xi的第k個觀測值,而
(3)確定主成分個數(shù)m:計算相關(guān)性矩陣r的特征方程det(r-λe)=0的特征根,并將其中非零的特征根按照降序排列,得到λ1≥λ2≥…≥λp>0,其中,e為單位矩陣,p為非零特征根的個數(shù);根據(jù)公式(3)確定主成分個數(shù)m:
其中,α表示主成分中含有所有數(shù)據(jù)信息的百分比,一般取值為80%~90%。
(4)按
通過上述方法可以最終得到m個能代表原始變量的特征,實現(xiàn)特征的選取。
步驟2:利用改進(jìn)的pso算法對支持向量回歸機的參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的支持向量回歸機模型。
支持向量回歸機的回歸函數(shù)如下:
該函數(shù)是將拉格朗日乘數(shù)法應(yīng)用于數(shù)據(jù)集中得到的回歸函數(shù),式中
支持向量分類機的分類預(yù)測函數(shù)如下:
式中sgn表示符號,如果括號中的值大于0,則分類結(jié)果為是,否則為否。βi為拉格朗日乘子,求解該參數(shù)需要自定義松弛變量;c*為懲罰因子,也是需要自定義的參數(shù);k(xi,x)為核函數(shù),利用該核函數(shù)可以將線性不可分的數(shù)據(jù)映射到線性可分的空間中,實現(xiàn)數(shù)據(jù)的線性分類表示;另外,核函數(shù)中也含有核參數(shù),也是需要人為定義的變量。yi表示樣本
綜上,要想得到精確度更高的支持向量回歸機和支持向量分類機模型,需要對松弛變量,懲罰因子,核函數(shù)以及核參數(shù)這四個參數(shù)的進(jìn)行組合優(yōu)化。本發(fā)明采用改進(jìn)的蟻群算法(pso算法)對其進(jìn)行優(yōu)化。如圖2所示,其具體過程為:
(1)數(shù)據(jù)集處理:對輸入數(shù)據(jù)集進(jìn)行規(guī)范化處理,即將所有數(shù)據(jù)都?xì)w一化到區(qū)間[0,1]中,隨機抽取數(shù)據(jù)集80%的數(shù)據(jù)作為訓(xùn)練集,剩余的20%的數(shù)據(jù)作為測試集。
(2)初始化粒子群:在h維空間,初始化粒子群y,并設(shè)置各參數(shù),包括粒子群個體總數(shù)m,粒子長度l,初始的學(xué)習(xí)因子c1,c2,每個粒子的初始的速度和位置等。其中,第i個粒子的位置和速度分別為yi=(yi1,yi2,...,yih)和vi=(vi1,vi2,...,vih),i=1,2,…,m,第i個粒子的個體極值位置為pi=(pi1,pi2,...,pih),種群的全局極值位置為pg=(pg1,pg2,...,pgh);
由于需要優(yōu)化的有核函數(shù)、核參數(shù)、懲罰因子和松弛變量,即采用pso算法同時對這四個變量進(jìn)行優(yōu)化,故粒子的四維參數(shù)依次為核函數(shù)、核參數(shù)、懲罰因子和松弛變量。由于不同的核函數(shù)中的核參數(shù)的常用范圍有所不同,所以要對粒子的編碼格式中的核參數(shù)維進(jìn)行特殊處理。例如,徑向基核函數(shù)公式如下:
式中的核參數(shù)δ∈[0.01,0.2]。而對于多項式核函數(shù)來說,公式如下:
式中的核參數(shù)d*∈[1,6]。在粒子位置和速度更新時,同一維參數(shù)使用的是同一個更新公式,為了確保更新步驟的有效性,將該維參數(shù)格式化,使得不同的核參數(shù)落入相同的變化區(qū)間,可以對d*參數(shù)除以100,得到區(qū)間[0.01,0.06],使得參數(shù)的變化范圍大體一致,均為[0.01,0.2]。待優(yōu)化結(jié)束后,再按照核函數(shù)的類別,將對應(yīng)的核參數(shù)的值轉(zhuǎn)化成實際的值。
pso采用實數(shù)編碼,第一維表示核函數(shù),則1表示徑向基核函數(shù),2表示多項式核函數(shù)等,第二維表示核參數(shù),按照上述規(guī)則將格式化的值作為該維的值,第三維表示懲罰因子維,變化范圍為
因此,粒子的初始位置由待優(yōu)化四個參數(shù)的取值范圍[1,2]、[1,108]、[-10,10]、[0.01,0.2]隨機確定,粒子的初始速度由待優(yōu)化四個參數(shù)的粒度確定為(1,1,0.1,0.01);
(3)更新:根據(jù)適應(yīng)度函數(shù)模型對每個粒子計算適應(yīng)度,如果其當(dāng)前適應(yīng)度優(yōu)于其個體極值位置對應(yīng)的適應(yīng)度,則用其當(dāng)前位置更新粒子的個體極值位置pi;如果某個粒子當(dāng)前適應(yīng)度優(yōu)于全局極值位置對應(yīng)的適應(yīng)度,則用這個粒子的位置更新粒子的全局極值位置pg;
所述的適應(yīng)度函數(shù)根據(jù)模型不同而不同,如果要對支持向量回歸機模型進(jìn)行組合參數(shù)尋優(yōu),則采用均方誤差函數(shù)為適應(yīng)度函數(shù)來評價適應(yīng)度,即:
式中,yi表示實際的測量值,
如果是支持向量分類機模型,則采用分類誤差函數(shù)ce來評價適應(yīng)度,公式如下:
ce=1-acc=1-(pos·tpr+neg·tnr)(9)
式中,acc為分類的加權(quán)準(zhǔn)確率函數(shù),pos表示正例出現(xiàn)的概率,neg表示負(fù)例出現(xiàn)的概率,tpr表示真正率,即被正確分類的正樣本的比例,tnr表示真負(fù)率,即被正確分類的負(fù)樣本的比例。為了得到理想的準(zhǔn)確率,分類器給予多數(shù)類更多的關(guān)注,尤其是在類分布高度不均勻的情形下更是如此。
(4)迭代:按以下公式分別對粒子的速度和位置進(jìn)行迭代:
其中,c1,c2是學(xué)習(xí)因子,通常取2;r1,r2為(0,1)范圍內(nèi)的隨機數(shù);ω為慣性權(quán)重,是粒子保持原來速度的系數(shù),反映了繼承當(dāng)前速度的程度,較大的權(quán)重有利于全局搜索,而較小的權(quán)重有利于局部搜索。初始時,令ω為1。在迭代初期設(shè)置較大的權(quán)重能夠搜索到較大的范圍,后期設(shè)置較小的權(quán)重可以提高搜索精度,進(jìn)行局部搜索。所以采用冪函數(shù)公式來模擬慣性權(quán)重的衰減方式,公式如下:
其中,ω(k)為第k次迭代時的慣性權(quán)重,dmax為最大迭代次數(shù)。
(5)替換:新建種群y*,令y*=y(tǒng),對種群y*中適應(yīng)度不符合要求的粒子進(jìn)行隨機維替換,如果替換后的粒子的適應(yīng)度優(yōu)于替換前的粒子的適應(yīng)度,就用種群y*替換y,并且更新種群y*中相應(yīng)的粒子以及個體極值位置和全局極值位置;所述的替換原則為:如果種群y中某個粒子的適應(yīng)度未達(dá)到要求,例如本實施例中將適應(yīng)度值大于30%視為未達(dá)到要求,則將種群中適應(yīng)度值最優(yōu)的粒子的相應(yīng)維復(fù)制到未達(dá)到要求粒子的相應(yīng)維上,使粒子更接近全局最優(yōu);
(6)判斷:判斷是否達(dá)到最大迭代次數(shù),如果達(dá)到最大迭代次數(shù),則停止迭代,并輸出最優(yōu)粒子,即最優(yōu)參數(shù)組合;如果未達(dá)到最大迭代次數(shù),則跳轉(zhuǎn)到步驟(3)繼續(xù)執(zhí)行。
以不同數(shù)據(jù)集為輸入,利用pso算法優(yōu)化即可得到不同的支持向量回歸機或支持向量分類機模型。為了更好的預(yù)測振動速度、振動頻率和振動持續(xù)時間,分別以步驟1得到的樣本數(shù)據(jù)集和振動速度數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動速度支持向量回歸機模型;以步驟1得到的樣本數(shù)據(jù)集和振動頻率數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動頻率支持向量回歸機模型;利用步驟1得到樣本數(shù)據(jù)集和振動持續(xù)時間數(shù)據(jù)為輸入數(shù)據(jù)集,利用改進(jìn)的pso算法對支持向量回歸機的四個參數(shù)進(jìn)行組合尋優(yōu),得到精確度更高的振動持續(xù)時間支持向量回歸機模型。
步驟3:分別利用步驟2得到的振動速度、振動頻率和振動持續(xù)時間的支持向量回歸機模型,對步驟1得到的樣本數(shù)據(jù)集進(jìn)行回歸,得到振動速度、振動頻率和振動持續(xù)時間的預(yù)測數(shù)據(jù),以這些數(shù)據(jù)和被保護建筑物的固有頻率數(shù)據(jù)及樣本的實際分類結(jié)果數(shù)據(jù)共同作為輸入數(shù)據(jù),利用改進(jìn)的pso算法對支持向量分類機的四個參數(shù)進(jìn)行組合尋優(yōu),得到判斷爆破是否屬于安全爆破的支持向量機分類機模型。
步驟4:利用步驟3得到的支持向量分類機模型對待預(yù)測的爆破振動數(shù)據(jù)進(jìn)行分類預(yù)測,判斷當(dāng)前爆破參數(shù)的設(shè)計方案是否是安全的。