張馨予,孫宏宇,逯 洋,郭天嵐
(吉林師范大學(xué) 計算機(jī)學(xué)院,吉林 四平 136000)
隨著科學(xué)技術(shù)的迅速發(fā)展,人民生活水平不斷提高,人的壽命正不斷延長。據(jù)國家統(tǒng)計局發(fā)布,中國平均預(yù)期壽命已由2005 年的72.95 歲增長到2015 年的76.34 歲。與此同時,中國人口出生率由2001 年的13.38%下降到2019 年的10.48%(如圖1)。為盡可能減小老齡化社會帶來的負(fù)面影響,有必要對老齡化人口進(jìn)行精準(zhǔn)預(yù)測。本文利用支持向量回歸模型(SVR)進(jìn)行預(yù)測,但由于SVR 的預(yù)測能力在很大程度上受到初始參數(shù)的影響,參數(shù)不同可能會導(dǎo)致欠擬合或過擬合的問題。因此,本文使用具有強(qiáng)大全局搜索能力的遺傳算法(GA),對SVR的初始參數(shù)進(jìn)行優(yōu)化,進(jìn)一步提高其預(yù)測準(zhǔn)確率。
圖1 2001-2019 年平均預(yù)期壽命與出生率Fig.1 Life expectancy and birth rate from 2001 to 2019
支持向量機(jī)回歸,是由支持向量機(jī)模型[1]衍生出來的,其目的是發(fā)現(xiàn)非線性回歸問題中存在的自變量與因變量之間的關(guān)系。通過引入非線性映射函數(shù),將低維空間中具有非線性回歸關(guān)系的數(shù)據(jù)集映射到高維空間,然后對其進(jìn)行線性回歸關(guān)系變換[2]。其數(shù)學(xué)表示為:
其中,訓(xùn)練樣本為xi,i =1,2,3,4,…,l;K為核函數(shù);C為懲罰函數(shù),C越大表示對誤差ε的懲罰越大。
遺傳算法(GA)[3]在1975 年由Holland 等人提出,隨后Goldberg[4]與DeJong[5]等人將遺傳算法歸納為一種模擬自然界生物遺傳和進(jìn)化的隨機(jī)搜索智能算法,適用于復(fù)雜系統(tǒng)的優(yōu)化問題。與其它傳統(tǒng)的搜索算法不同,GA 算法并不是基于單一評估函數(shù)的較高次統(tǒng)計或梯度產(chǎn)生的確定性的實驗解序列,而是通過模擬生物的進(jìn)化過程來搜索最優(yōu)解。GA 算法適用于解決大部分優(yōu)化問題,隨著算法的迅速發(fā)展,其影響范圍也越來越大。
本文引入遺傳算法,解決SVR 的預(yù)測能力依賴于初始參數(shù)的問題,利用遺傳算法的全局搜索能力,搜索支持向量機(jī)的最優(yōu)參數(shù),其中包括:懲罰函數(shù)(C)、gamma(g)。工作流程如圖2 所示。
圖2 GA 優(yōu)化SVR 初始參數(shù)流程圖Fig.2 GA optimization flow chart of SVR initial parameters
實現(xiàn)步驟如下:
(1)設(shè)置遺傳算法相關(guān)參數(shù)。
(2)將支持向量機(jī)回歸模型的懲罰函數(shù)(C)與gamma(g)進(jìn)行二進(jìn)制編碼,產(chǎn)生遺傳算法初始種群。
(3)將隨機(jī)產(chǎn)生的數(shù)據(jù)輸入到支持向量機(jī)回歸模型中,進(jìn)行交叉驗證得到平均準(zhǔn)確率,作為遺傳算法的目標(biāo)函數(shù)。
(4)進(jìn)行交叉、變異、選擇等操作。
(5)判斷是否滿足終止條件,滿足則輸出結(jié)果,否則轉(zhuǎn)到步驟(4)。
(6)將最終結(jié)果輸入到向量機(jī)回歸模型中,從而得到參數(shù)優(yōu)化后的向量機(jī)回歸模型,用于進(jìn)行老齡化人口預(yù)測。
研究人口老齡化問題需要相關(guān)指標(biāo)進(jìn)行實證分析,本文最終選取了7 個與人口老齡化相關(guān)的因素指標(biāo):15~64 歲人口數(shù)- x1(萬人)、出生率-x2(%)、死亡率- x3(%)、人口自然增長率-x4(%)、居民消費(fèi)水平- x5(元)、人均GDP-x6(元),離退人員參加養(yǎng)老保險人數(shù)-x7(萬人),見表1。
表1 2001-2019 年中國人口老齡化預(yù)測影響因素表Tab.1 Influencing factors of population aging prediction in China from 2001 to 2019
由于指標(biāo)數(shù)量過多,各指標(biāo)之間的數(shù)據(jù)級差異會對預(yù)測模型產(chǎn)生影響,因此將表1 的數(shù)據(jù)分別采用公式(3)和公式(4)的方法將數(shù)據(jù)統(tǒng)一到[0,1]區(qū)間內(nèi),從而保證指標(biāo)的一致性。
式中:xk為第k個指標(biāo)歸一化后的值,xmin與xmax分別為指標(biāo)所在列的最小值與最大值。
歸一化后的7 個指標(biāo)x =(x1,x2,…,x7)作為SVR 模型的自變量,將65 歲以上人口(萬人)作為因變量,從研究總體中選擇2001~2003 年、2005~2006 年、2008~2012 年和2014~2018 年共15 組數(shù)據(jù)作為訓(xùn)練集,將2004 年、2007 年、2013 年和2019年的數(shù)據(jù)作為測試集。采用遺傳算法,求得SVR 模型的最優(yōu)參數(shù)組合C和g,由于各指標(biāo)與輸入輸出量之間是非線性關(guān)系,而徑向基(RBF)核函數(shù)適用于解決非線性關(guān)系的問題。因此,本文利用RBF作為核函數(shù),實現(xiàn)非線性映射,最后將最優(yōu)參數(shù)組合輸入到SVR 模型中。參數(shù)尋優(yōu)適應(yīng)度曲線如圖3 所示。
圖3 參數(shù)尋優(yōu)適應(yīng)度曲線Fig.3 Fitness curve of parameter optimization
經(jīng)過迭代后,SVR最優(yōu)參數(shù)值為:C =279.569 307 539,g =0.000 354 796 650 669,此時訓(xùn)練集的適應(yīng)度值(均方誤差)為0.006 769 237 246 58。適應(yīng)度曲線反映出每一代群體的最佳適應(yīng)度和平均適應(yīng)度的進(jìn)化過程。從圖3 中可以看出,隨著迭代次數(shù)的增加,在后期基本達(dá)到了穩(wěn)定的適應(yīng)度值,收斂性能較好。
使用初始參數(shù)優(yōu)化后的SVR 對訓(xùn)練集數(shù)據(jù)進(jìn)行擬合,將擬合后的結(jié)果與真實值進(jìn)行比較,與傳統(tǒng)SVR 算法進(jìn)行比較,實驗結(jié)果見表2。
表2 模型評價Tab.2 Model evaluation
從表2 可以看出,本文提出的算法與傳統(tǒng)SVR相比,平均絕對誤差和均方誤差更接近于數(shù)值0,可解釋方差值和R方值更接近于數(shù)值1。將測試集數(shù)據(jù)輸入到訓(xùn)練好的本文構(gòu)建的模型中,與傳統(tǒng)SVR算法作對比測試結(jié)果見表3。
從表3 可以看出,本文算法的預(yù)測值與真實值差值較傳統(tǒng)SVR 預(yù)測差值相比較小。
表3 本文算法與傳統(tǒng)SVR 預(yù)測結(jié)果比較Tab.3 Comparison of prediction results between the proposed algorithm and traditional SVR
實驗結(jié)果表明:通過遺傳算法優(yōu)化初始參數(shù)的SVR 更加精確;本文提出的使用遺傳算法優(yōu)化支持向量機(jī)回歸初始參數(shù)具有可實施性。
針對支持向量回歸模型的分類精度依賴于初始參數(shù)選擇的問題,本文設(shè)計了一種利用遺傳算法優(yōu)化支持向量回歸模型初始參數(shù)的方法,并應(yīng)用于中國老齡化人口預(yù)測問題上。實驗結(jié)果表明,本文提出的優(yōu)化方法的預(yù)測值優(yōu)于傳統(tǒng)SVR算法,為老齡化人口預(yù)測提供了切實可行的方法。