999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于支持向量回歸的軟件缺陷密度預(yù)測模型

2017-03-27 05:49:49楊騰翔王欽釗馬振宇韓志賀
關(guān)鍵詞:模型

楊騰翔, 萬 琳, 王欽釗, 馬振宇,3, 韓志賀

(1. 陸軍裝甲兵學(xué)院信息工程系, 北京 100072; 2. 陸軍裝甲兵學(xué)院控制工程系, 北京 100072;3. 陸軍裝甲兵學(xué)院技術(shù)保障工程系, 北京 100072; 4. 31689部隊, 吉林 四平 136000)

軟件缺陷預(yù)測主要用于判別軟件中是否包含缺陷,預(yù)測軟件中包含缺陷的數(shù)量或密度。預(yù)測過程屬于機(jī)器學(xué)習(xí)的范疇,依據(jù)不同方法構(gòu)建預(yù)測模型,完成軟件缺陷的預(yù)測工作。軟件缺陷預(yù)測[1-4]大致可分為靜態(tài)缺陷預(yù)測和動態(tài)缺陷預(yù)測,其中:靜態(tài)缺陷預(yù)測主要是依據(jù)軟件靜態(tài)屬性預(yù)測軟件中是否包含缺陷;動態(tài)缺陷預(yù)測則是為了建立缺陷與相應(yīng)時間階段之間的規(guī)則聯(lián)系,記錄出現(xiàn)缺陷數(shù)量較多的時間段。目前,軟件缺陷預(yù)測模型主要有基于支持向量機(jī)(Support Vector Machine, SVM)的預(yù)測模型、基于神經(jīng)網(wǎng)絡(luò)的預(yù)測模型[5]和基于LASSO-SVM的預(yù)測模型[6]等。另外,研究者結(jié)合數(shù)據(jù)挖掘算法對模型的預(yù)測效果不斷進(jìn)行了改進(jìn),如:姜慧研等[7]提出了利用蟻群算法對軟件缺陷預(yù)測模型進(jìn)行改進(jìn);王男帥等[8]提出了利用遺傳算法優(yōu)化缺陷數(shù)據(jù)屬性和SVM參數(shù)的預(yù)測模型。

現(xiàn)階段,雖然缺陷預(yù)測技術(shù)一定程度上取得了相應(yīng)進(jìn)展,但仍存在以下問題:1)度量元的選擇并沒有得出系統(tǒng)的論證,缺陷的度量元有幾十種且相互關(guān)聯(lián),在預(yù)測過程中需選擇對缺陷預(yù)測影響較大的度量元;2)數(shù)據(jù)集對現(xiàn)有缺陷預(yù)測模型的影響較大,對一組數(shù)據(jù)預(yù)測結(jié)果較好的模型,換一組數(shù)據(jù)或許就達(dá)不到預(yù)測的效果;3)缺陷數(shù)據(jù)的預(yù)處理和模型參數(shù)的選擇對預(yù)測結(jié)果的影響也較大。

針對上述問題,筆者提出一種基于支持向量回歸(Support Vector Regression, SVR)的軟件缺陷密度預(yù)測模型。首先,考慮不同度量元對缺陷密度預(yù)測的影響,選擇與缺陷密度相關(guān)性較大的度量元,利用SVR構(gòu)建缺陷密度預(yù)測模型,并對預(yù)測數(shù)據(jù)進(jìn)

行歸一化和隨機(jī)排序,以降低數(shù)據(jù)集對預(yù)測模型的影響;然后,選取徑向基核函數(shù)(Radial Basis Function,RBF),并利用網(wǎng)格搜索的方法對模型參數(shù)進(jìn)行優(yōu)化;最后,通過實驗驗證預(yù)測模型的有效性。

1 軟件缺陷密度預(yù)測方法框架

王青等[9]研究表明:缺陷的存在符合二八原則,即80%的缺陷往往存在于20%的程序模塊中。缺陷密度是對軟件、程序模塊或源文件中缺陷數(shù)量和代碼行數(shù)關(guān)系的度量,反映了該模塊包含缺陷的概率。度量元是對程序內(nèi)在屬性的一種直觀表示,反映了程序代碼的質(zhì)量和復(fù)雜度。筆者將度量元、缺陷密度分別作為預(yù)測過程的輸入、輸出,通過預(yù)測模型建立二者之間的關(guān)系,用于下一步的預(yù)測。圖1為軟件項目的缺陷密度預(yù)測模型。

圖1 軟件項目的缺陷密度預(yù)測模型

2 軟件缺陷密度預(yù)測模型

2.1 度量元數(shù)據(jù)提取

本文引入Spearman秩相關(guān)系數(shù)的分析方法,用于衡量度量元和缺陷密度之間的關(guān)系,從而提取對缺陷密度影響較大的度量元,去除冗余的度量元。

給定軟件項目某度量元X和缺陷密度Y的n組數(shù)據(jù),可表示為X(X1,…,Xk,…,Xn)和Y(y1,…,yk,…,yn)。其中:Xk為第k個軟件項目的度量元;yk為第k個軟件項目的缺陷密度。

為分析度量元X和缺陷密度Y之間的相關(guān)程度,首先將X和Y中數(shù)據(jù)進(jìn)行配對,得到數(shù)據(jù)組(X1,y1),…,(Xk,yk),…,(Xn,yn);然后將Xk和yk分別按照大小排序,獲得Xk和yk在2個順序樣本中的排名(即秩),記作Rk和Sk。由此可以得到數(shù)據(jù)組的n對秩,即(R1,S1),…,(Rk,Sk),…,(Rn,Sn)。利用Spearman秩相關(guān)系數(shù)衡量X和Y之間的相關(guān)程度,可表示為

(1)

式中:

(2)

(3)

dk=Rk-Sk。

(4)

注:1)r的取值范圍為[-1,1];2)當(dāng)r>0時,表明X和Y正相關(guān),當(dāng)r<0時,表明X和Y負(fù)相關(guān);3)|r|越大,說明X和Y的相關(guān)程度越高;4)當(dāng)r=1時,則X和Y完全正相關(guān),當(dāng)r=-1時,則X和Y完全負(fù)相關(guān)。

2.2 數(shù)據(jù)預(yù)處理

為了避免在數(shù)據(jù)處理過程中因某個或某些度量元數(shù)值差別過大而影響計算的精度,加快程序的收斂速度,需要對數(shù)據(jù)進(jìn)行預(yù)處理。歸一化就是將度量元屬性數(shù)值規(guī)范到 [0,1]的過程,不影響原始數(shù)據(jù)屬性對回歸模型的預(yù)測。本文將單個維度下的度量元數(shù)據(jù)分別進(jìn)行歸一化,即

(5)

另外,樣本的排序?qū)嶒灲Y(jié)果必然產(chǎn)生一定的影響,本文利用隨機(jī)抽樣的方法對數(shù)據(jù)順序進(jìn)行重新排列,避免因為訓(xùn)練集和測試集中個別實驗數(shù)據(jù)異常而影響回歸預(yù)測的整體效果,從而找出擬合度較高的回歸模型。

2.3 缺陷密度預(yù)測模型構(gòu)建

給定數(shù)據(jù)樣本集合{(x1,y1),…,(xi,yi),…,(xl,yl)},其中,xi(i=1,2,…,l)為第i個軟件項目的度量元向量,yi為第i個軟件項目的缺陷密度,xi∈Rn,yi∈R。尋找Rn上的一個模型f(x)來擬合這些點,以便用該模型推斷任一輸入x所對應(yīng)的y值。其中,

f(x)=w·x+b,

(6)

式中:w為超平面的法向量;b為常數(shù)。

回歸預(yù)測的過程就是尋找一個最優(yōu)超平面,使所有的樣本點距離超平面的“總偏差”較小,因此采用一個正則化的誤差函數(shù)進(jìn)行度量,即

(7)

式中:f(xi)為第i個軟件項目缺陷密度的預(yù)測值。

則原問題可轉(zhuǎn)化為最優(yōu)化問題:

(8)

(9)

式中:C為懲罰因子;ε為允許的范圍誤差;ν為支持向量的個數(shù);ξi、ξi*分別為訓(xùn)練樣本對于超平面的上、下偏差。

引入拉格朗日乘子αi,得到對偶形式:

(10)

(11)

式中:K(xi,xj)為核函數(shù)。

最終建立的SVR預(yù)測模型為

(12)

通過上述方法構(gòu)建出軟件缺陷密度預(yù)測模型,給定任一輸入的度量元向量x,則能夠預(yù)測出軟件項目所對應(yīng)的缺陷密度y。

2.4 核函數(shù)的選擇

為了提高模型對缺陷密度預(yù)測的效果,首先需要對模型中的核函數(shù)進(jìn)行選擇。合適的核函數(shù)能夠較好地將低維空間的非線性問題轉(zhuǎn)化為高維空間的線性問題,在高維空間中尋找回歸問題的最優(yōu)超平面,解決了傳統(tǒng)方法在轉(zhuǎn)化過程中出現(xiàn)的計算量劇增的問題。

在缺陷密度的回歸預(yù)測過程中,核函數(shù)的作用可表示為:首先,把度量元所表示的向量x轉(zhuǎn)化到高維空間的向量x′,并計算出高維空間中回歸模型的w′和b′;然后,通過f(x′)=w′·x′+b′進(jìn)一步得到回歸結(jié)果。核函數(shù)的目的就是建立數(shù)據(jù)從低維到高維轉(zhuǎn)換的映射關(guān)系,當(dāng)給定低維空間的w和x時,可直接輸出確定的f(x′)。

模型中最常用的核函數(shù)主要有線性核函數(shù)、多項式核函數(shù)和RBF核函數(shù)[8-9]。其中,RBF核函數(shù)是某種沿徑向?qū)ΨQ的標(biāo)量函數(shù),能夠?qū)?shù)據(jù)映射到無窮維,同時能夠逼近任意非線性函數(shù),具有良好的泛化能力,收斂速度較快。因此,本文采用RBF核函數(shù)構(gòu)建軟件缺陷密度預(yù)測模型,其表達(dá)式為

(13)

式中:xj為RBF核函數(shù)的中心;σ為RBF核函數(shù)的寬度系數(shù),決定著核函數(shù)的徑向作用范圍。

2.5 參數(shù)優(yōu)化

雖然SVR模型中存在默認(rèn)參數(shù),但在實際問題中并不能適用于所有問題的最優(yōu)解,因此在研究具體問題時需要優(yōu)化參數(shù)。參數(shù)優(yōu)化包括懲罰因子C和g參數(shù)[10]的設(shè)置,其中:懲罰因子C在確定的特征空間中控制回歸曲線的平滑度并折中經(jīng)驗風(fēng)險;g參數(shù)用來調(diào)節(jié)RBF核函數(shù)中的σ,決定著RBF核函數(shù)的性能[11]。對于C、g這2個參數(shù),國際上并沒有給出公認(rèn)統(tǒng)一的設(shè)置方法,需要根據(jù)具體研究對象和樣本數(shù)據(jù)特點進(jìn)行優(yōu)化。

網(wǎng)格搜索法是一種遍歷搜索的優(yōu)化方法,其優(yōu)化過程是依據(jù)步距將數(shù)值范圍劃分成網(wǎng)格,將所有數(shù)值分組并不斷取任何可能的值。

參數(shù)優(yōu)化的實質(zhì)是針對不同的研究對象選擇合適的(C,g)數(shù)據(jù)對。在缺陷密度的預(yù)測模型中設(shè)置C、g的數(shù)值范圍,根據(jù)搜索步長將C、g分別劃分為n1、n2組數(shù)值,然后將這些數(shù)值進(jìn)行配對,共有n1·n2組(C,g)數(shù)據(jù)對。網(wǎng)格搜索就是對n1·n2組參數(shù)進(jìn)行遍歷搜索,通過驗證選擇出預(yù)測精度較高的(C,g)數(shù)據(jù)對作為最優(yōu)參數(shù)。

驗證過程采用十折交叉檢驗的方法,其主要過程是將所有的數(shù)據(jù)樣本劃分為10個子集,每個子集都將被其余數(shù)據(jù)訓(xùn)練后作為測試集。整個過程需要進(jìn)行10次,直到每個子集都被當(dāng)作一次測試集,最后將10次的平均交叉驗證誤差作為最終結(jié)果。網(wǎng)格搜索法通過設(shè)置搜索步長對參數(shù)進(jìn)行全面搜索,與其他啟發(fā)式或逼近的優(yōu)化方法相比,搜索的范圍更全面。由于每個(C,g)對是相互獨立的,因此運算時可并行性高,能夠節(jié)省一定的時間開銷。

3 實驗結(jié)果及分析

為驗證基于SVR軟件缺陷密度預(yù)測模型的效果,筆者基于MATLAB2016a、VS2010平臺C++編譯環(huán)境以及LibSVM工具包進(jìn)行測試。實驗采用我國特種車輛軟件評測中心以及通用裝備保障軟件評測中心的33組實驗數(shù)據(jù)進(jìn)行測試。首先利用軟件靜態(tài)分析工具LogiScope對軟件項目進(jìn)行度量,采集44個軟件缺陷度量元,通過Spearman相關(guān)系數(shù)分析法選擇對缺陷密度影響較大的5種缺陷度量元進(jìn)行回歸預(yù)測,分別是耦合因子(ap_cof)、違反結(jié)構(gòu)化編程數(shù)量(struc_pg)、使用某個類的類數(shù)量(cu_cdusers)、某個類使用的類數(shù)量(cu_cdused)和子類數(shù)量(in_noc)。然后與Bagging、LinearRegression、Gaussian processes、IBK、MultilayerPerceptron五種機(jī)器學(xué)習(xí)算法進(jìn)行對比實驗分析,5種機(jī)器學(xué)習(xí)算法分別基于不同的原理構(gòu)建預(yù)測模型,分析輸入和輸出之間的關(guān)系,算法具體描述如表1所示。

表1 機(jī)器學(xué)習(xí)算法描述

通過隨機(jī)抽樣的方法對33組數(shù)據(jù)進(jìn)行重新排序后,分析預(yù)測結(jié)果,搜索預(yù)測結(jié)果較好的數(shù)據(jù)序列進(jìn)行預(yù)測分析。將最優(yōu)數(shù)據(jù)序列的前22組作為訓(xùn)練集,后11組數(shù)據(jù)作為測試集,驗證網(wǎng)格搜索后預(yù)測模型的可行性和有效性。筆者采用均方根誤差、平均絕對誤差、相對平方根誤差和相對絕對誤差4個指標(biāo),分析預(yù)測的缺陷密度值和實際缺陷密度值之間的誤差,各個指標(biāo)的表達(dá)式如下:

均方根誤差:

(14)

平均絕對誤差:

(15)

相對平方誤差:

(16)

相對絕對誤差:

(17)

另外,通過相關(guān)系數(shù)衡量預(yù)測模型中度量元數(shù)據(jù)和缺陷密度的相關(guān)程度,相關(guān)系數(shù)越大,說明構(gòu)建的預(yù)測模型效果越好。

支持向量回歸共有ε-SVR和ν-SVR兩種類型。下面通過實驗分析采用ε-SVR和ν-SVR的不同預(yù)測效果,結(jié)果對比如表2所示。可知:支持向量回歸中ν-SVR模型預(yù)測效果較好,這是因為ν-SVR模型在預(yù)測過程中能夠自動將允許的范圍誤差ε最小化,而且能夠控制支持向量的個數(shù)ν,支持向量的個數(shù)直接決定預(yù)測的效果。

表2 不同SVR類型預(yù)測結(jié)果對比

因此,筆者選取ν-SVR模型進(jìn)行實驗,并將參數(shù)優(yōu)化后的SVR預(yù)測模型與5種機(jī)器學(xué)習(xí)算法的預(yù)測模型進(jìn)行對比分析,其缺陷密度預(yù)測結(jié)果對比如表3所示。

表3 不同預(yù)測模型缺陷密度預(yù)測結(jié)果對比

由表3可見:與基于5種機(jī)器學(xué)習(xí)算法構(gòu)建的預(yù)測模型相比,本文的SVR預(yù)測模型得到的缺陷密度預(yù)測誤差較小,度量元數(shù)據(jù)和缺陷密度的相關(guān)系數(shù)較大,表明該模型的預(yù)測效果較好。

通過網(wǎng)格搜索法對SVR預(yù)測模型參數(shù)尋優(yōu)后,得到C的最優(yōu)值為8,g的最優(yōu)值為0.5,結(jié)果如圖2所示。

測試集模型的預(yù)測結(jié)果如圖3所示,可以看出:

圖2 SVR參數(shù)尋優(yōu)結(jié)果

圖3 測試集模型的預(yù)測結(jié)果

缺陷密度回歸預(yù)測值基本能夠擬合實際缺陷密度值,誤差在合理范圍之內(nèi)。

4 結(jié)論

筆者通過Spearman相關(guān)系數(shù)提取對缺陷密度影響較大的缺陷度量元數(shù)據(jù),利用SVR構(gòu)建軟件缺陷密度預(yù)測模型,并采用網(wǎng)格搜索法對模型中參數(shù)(C,g)進(jìn)行優(yōu)化,一定程度上提高了回歸預(yù)測的效果,最后與5種機(jī)器學(xué)習(xí)算法進(jìn)行了對比實驗,結(jié)果表明:所建立的SVR預(yù)測模型是有效的,能較好地預(yù)測軟件缺陷。

[1] 陳翔,顧慶,劉望舒,等. 靜態(tài)軟件缺陷預(yù)測方法研究[J].軟件學(xué)報,2016(1):1-25.

[2] AGARWAL S,TOMAR D,Prediction of software defects using twin support vector machine[C]∥International conference on information systems and computer networks.Mattura:IEEE,2014:128-132.

[3] SUFFIAN M D M,IBRAHIM S.A prediction model for system testing defects using regression analysis[J].International journal of soft computing & software engineering,2012,2(7):55-68.

[4] OKUTAN A,YILDIZ O T.Software defect prediction using Baye-sian networks[J]. Empirical software engineering,2014,19(1):154-181.

[5] 王李進(jìn),吳保國,鄭德祥.基于人工神經(jīng)網(wǎng)絡(luò)的軟件質(zhì)量評價[J].計算機(jī)應(yīng)用與軟件,2008,25(12):133-134,150.

[6] 吳曉萍,趙學(xué)靖,喬輝,等.基于LASSO-SVM的軟件缺陷預(yù)測模型研究[J].計算機(jī)應(yīng)用研究,2013,30(9):2748-2751,2754.

[7] 姜慧研,宗茂,劉相瑩.基于ACO-SVM的軟件缺陷預(yù)測模型的研究[J].計算機(jī)學(xué)報,2011,34(6):1148-1154.

[8] 王男帥,薛靜鋒,胡昌振,等.基于遺傳優(yōu)化支持向量機(jī)的軟件缺陷預(yù)測模型[J].中國科技論文,2015(2):159-163.

[9] 王青,伍書劍,李明樹.軟件缺陷預(yù)測技術(shù)[J].軟件學(xué)報,2008(7):1565-1580.

[10] RYU D,CHOI O,BAIK J.Value-cognitive boosting with a support vector machine for cross-project defect prediction[J].Empirical software engineering,2016,21(1):43-71.

[11] SHAN C,ZHU H J,HU C Z,et al.Software defect prediction model based on improved LLE-SVM[C]∥International Confe-rence on Computer Science and Network Technology.Harbin:IEEE,2015:530-535.

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機(jī)模型
提煉模型 突破難點
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達(dá)及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 欧美怡红院视频一区二区三区| 日韩亚洲综合在线| 91啦中文字幕| 狠狠亚洲五月天| 国产黄色视频综合| 成人在线欧美| 亚洲资源在线视频| 婷婷在线网站| 亚洲AV无码精品无码久久蜜桃| 欧美综合成人| h网址在线观看| 成年看免费观看视频拍拍| 色妞永久免费视频| 国产成人免费| 福利在线免费视频| 欧美福利在线观看| 1级黄色毛片| 72种姿势欧美久久久大黄蕉| 国产欧美又粗又猛又爽老| 99ri国产在线| 一级香蕉视频在线观看| 97久久免费视频| 国产不卡在线看| 亚洲欧美h| 麻豆国产原创视频在线播放 | 中国美女**毛片录像在线| 久久特级毛片| 午夜精品福利影院| 国产va在线| 国产成人免费观看在线视频| 综合色在线| 国产区精品高清在线观看| 911亚洲精品| 日韩免费毛片| 亚洲无码37.| 99热精品久久| 国产香蕉97碰碰视频VA碰碰看| 亚洲欧洲AV一区二区三区| 国产爽歪歪免费视频在线观看 | 亚洲成在线观看| 国产一级一级毛片永久| 四虎国产永久在线观看| 免费不卡视频| 精品国产美女福到在线直播| 免费一级毛片完整版在线看| 亚洲精品桃花岛av在线| AV熟女乱| 找国产毛片看| 国产农村妇女精品一二区| 黄色三级毛片网站| 亚洲va在线观看| 成人第一页| 超清无码熟妇人妻AV在线绿巨人| 欧美区国产区| 一本大道无码日韩精品影视| 欧美v在线| 成人免费网站在线观看| 国产偷国产偷在线高清| www.91中文字幕| 午夜精品久久久久久久无码软件 | 日韩美毛片| 91九色国产在线| 亚洲欧美国产视频| 91九色国产在线| 亚洲日本www| www.99精品视频在线播放| 免费国产高清视频| 欧美国产日韩一区二区三区精品影视| 色天天综合| 亚洲av色吊丝无码| 好吊妞欧美视频免费| 欧美无遮挡国产欧美另类| 毛片视频网| 91美女视频在线观看| 一本大道香蕉久中文在线播放| 免费在线不卡视频| 亚洲天堂2014| 毛片久久久| 国产极品美女在线观看| 老色鬼久久亚洲AV综合| 国产综合网站| 为你提供最新久久精品久久综合|