五月婷婷综合激情,91亚洲精品久久久蜜桃网站,国产欧美日韩精品专区,欧美××××黑人××性爽

182-1095-8705
最新公告:NOTICE
8月1日起,國家知識產(chǎn)權局停征和調(diào)整部分專利收費,詳情參閱資訊中心公告

專利申請

軟件缺陷預測專利,一種基于Transformer的軟件缺陷預測方法與流程

專利代理 發(fā)布時間:2023-04-05 23:42:46 瀏覽:


今天,樂知網(wǎng)小編 給大家分享 軟件缺陷預測專利,一種基于Transformer的軟件缺陷預測方法與流程。



軟件缺陷預測專利,一種基于Transformer的軟件缺陷預測方法與流程


本發(fā)明涉及軟件缺陷預測技術,尤其涉及一種基于transformer的軟件缺陷預測方法。

背景技術:

軟件缺陷在工業(yè)界和學術界,也被稱為軟件故障或軟件錯誤等。

nasa對軟件缺陷的定義是:

軟件無法完成預期指定的功能。

軟件缺陷在軟件開發(fā)過程中不可避免產(chǎn)生,根據(jù)微軟研究院調(diào)查發(fā)現(xiàn),每個應用軟件在內(nèi)部測試的時候平均1000行代碼會存在10到20個軟件缺陷,在已經(jīng)發(fā)布的軟件產(chǎn)品中,每1000行代碼會存在0.5個軟件缺陷。

因此如何幫助測試人員更快更早地發(fā)現(xiàn)軟件中的缺陷變得更加重要。

但是為了修復已經(jīng)發(fā)布軟件產(chǎn)品中的一個軟件缺陷,將花費50到200倍的成本。

軟件缺陷預測就是為了幫助測試人員進行缺陷測試,發(fā)現(xiàn)源代碼文件中潛在的軟件缺陷,從而更好分配人力、物力進行缺陷修復。

由于nlp技術的快速發(fā)展,例如文本分類、輿情分析等都獲得了很快的發(fā)展,transformer模型由google在2018年提出,成功的應用到nlp的各種任務中。

transformer的提出可以有效的解決傳統(tǒng)rnn模型,例如lstm、bi-lstm模型,不能并行的訓練。

除此之外transformer是由self-attention機制,成功有效的解決模型無法上下文長期依賴問題。

如何利用機器學習方法來構建軟件缺陷預測模型,因為機器學習技術在缺陷預測中已經(jīng)證實獲得比其他模型更好的效果。

缺陷預測預測過程即假定已知一個樣本空間x,有n個樣本構成,樣本空間中的單個樣本表示為x(i),x(i)={a1,a2,。。。,ak}即為一個k維的向量,aj表示一個屬性的具體取值。

對于監(jiān)督學習學習而言,必須有一個標簽y,令y={y1,y2,。。。yc},c表示標簽類別的個數(shù)。

對于軟件缺陷問題,c的大小為2,也就是一個二分類問題,當標簽為0時,預測的模塊中不含有軟件缺陷,不然當標簽為1時,預測的模塊中含有軟件缺陷。

采用監(jiān)督的機器學習構建模型時,訓練集中的每一個實例用(x(i),y(i))標記,即每一個樣本既包含數(shù)據(jù)的特征又包含具體類別標簽。

監(jiān)督學習模型的目標就是通過學習算法η學習一個函數(shù)假設h=f(x),然后使用訓練得到的函數(shù)假設h對需要預測的數(shù)據(jù)進行預測。

技術實現(xiàn)要素:

為了解決以上技術問題,本發(fā)明提出了一種基于transformer的軟件缺陷預測方法,可以很好的捕捉程序的上下文信息,除此之外,可以進行并行訓練,大大減小訓練時間。

本發(fā)明的技術方案是:

一種基于transformer的軟件缺陷預測方法,使用transformer中的encoder階段,然后在編碼階段的最后一個時間步介入到一個二分類的softmax層進行預測。

主要包括 (1)構建抽象語法樹; 抽象語法樹作為程序的一種中間表示形式,利用抽象語法樹實現(xiàn)一種以上源程序處理工具。

(2)transformer網(wǎng)絡架構。

包括如下步驟:

1)給定一個java源文件的標記; 2)然后和對應的位置編碼信息進行連接; 3)然后這里進行self-attention操作;這里使用一個以上的self-attention操作,從而獲得一個multi-headattention,然后和這一層的輸入進行一個add操作; 加上一個layernormalization操作,然后加上一層前向網(wǎng)絡,使用全連接網(wǎng)絡,然后對全連接層也進行l(wèi)ayernormalization; 然后把這一層的所有輸出進行一個concate連接操作,連接后的向量與輸出層進行連接,判斷是否是有缺陷。

進一步的,具體的步驟如下所述:

(1)首先借助buginfo工具對每個java源文件進行打標簽;

軟件缺陷預測專利,一種軟件缺陷預測方法及預測系統(tǒng)與流程


本發(fā)明涉及一種軟件缺陷預測方法及預測系統(tǒng),屬于軟件工程領域。

背景技術:



軟件缺陷預測包括數(shù)據(jù)預處理、特征提取、訓練預測模型、識別四個環(huán)節(jié)。

其中特征提取是軟件缺陷預測中最基本的問題之一。

對于軟件缺陷預測而言,提取有效的特征是完成識別的首要任務。

現(xiàn)有的特征提取方法可分為傳統(tǒng)維數(shù)簡約方法和流行學習維數(shù)簡約方法。

其中,傳統(tǒng)維數(shù)簡約方法:

包括主成分分析(pca)、多維尺度分析(mds)。

流行學習維數(shù)簡約方法:

包括等距映射法(isomap)、拉普拉斯特征映射(le)、局部保留投影(lpp)等。

(1)主成分分析(pca):

其核心思想是通過把原始樣本數(shù)據(jù)線性映射到低維空間中,使得投影后的數(shù)據(jù)在新的低維空間中具有各特征線性無關的特性,通過投影后,高維的數(shù)據(jù)可以映射為低維的數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)簡約。

即最終要求滿足下式的v:

stv=λv(1)其中st代表總體散度矩陣,λ為v對應的特征值。

(2)多維尺度分析(mds):

通過分析相似數(shù)據(jù)來挖掘數(shù)據(jù)中的隱藏結構信息,mds算法的目的是在已知原始樣本間距離的情況下,重構低維空間的樣本,使得在低維空間的樣本的距離和原始樣本在高維空間的距離盡可能相同。

低維空間重構樣本的距離與高維原始樣本距離的誤差使用一個誤差函數(shù)來表示,通過求解該誤差函數(shù),可以求出映射之后的數(shù)據(jù)。

即求解下式,得出映射后的矩陣z:

其中,z={zi,li},i=1,。。。,n,di,j=d(xi,xj)=(xi-xj)t(xi-xj)。

(3)等距映射法(isomap):

是對mds的一種改善,在isomap中,使用測地距離來替代mds中的歐氏距離,這種方式可以獲得在全局上最優(yōu)的幾何結構,能夠保存低維流行結構。

測地距離的求解分為兩種情況來考慮,一種情況是如果兩個樣本距離很近,即為近鄰點,則直接使用歐氏距離來近似測地距離;另一種情況是如果兩個樣本距離較遠,即為非近鄰點,則可以使用近鄰圖上的最短路徑來表示。

在求出測地距離后,就可以使用mds方法來進行等距映射,從而獲得低維數(shù)據(jù)表示。

isomap可以反映非線性數(shù)據(jù)的內(nèi)在性質(zhì),但是該方法沒有考慮到數(shù)據(jù)樣本的局部關系,并且在降維時,isomap可能會產(chǎn)生“elbow”現(xiàn)象的誤差,導致該缺點的主要原因就是測地距離度量。

(4)拉普拉斯特征映射(le):

從局部來構造數(shù)據(jù)間的近鄰關系,使得在高維空間中局部的結構信息可以在映射后保持,le算法在構造降維目標時,更加直觀易懂。

為了使得在高維空間中的近鄰樣本在投影后的空間中也是近鄰的,即保持樣本的近鄰結構信息,假設y=[y1,y2,。。。,yk]是投影到低維空間的樣本,則le算法需要解決的是下面的最小化問題:

其中,w是權重矩陣。

最終可將上式轉(zhuǎn)換為廣義特征值問題的求解:

lf=λdf(4)其中,d是對角線矩陣,它的元素是w的每一列的總和或者是w的每一行的總和,即dii=∑jwji,l=d-w是laplacian矩陣,l是一個對稱的,半正定的矩陣。

(5)局部保留投影(lpp)方法:

是le算法的線性簡約,lpp計算轉(zhuǎn)換矩陣p將高維空間的輸入樣本x=[x1,x2,。。。,xn]投影到一個低維子空間,使得在這個空間中可以保留輸入樣本的局部結構,這個轉(zhuǎn)換p可以通過下面的公式得到:

其中yi=ptxi,權重矩陣s是由近鄰圖構造得來。

最終轉(zhuǎn)換為一個廣義特征值求解問題,如下所示:

xlxtp=λxdxtp(6)其中dii=∑js(i,j),d是對角線矩陣,而l=d-s。

對于傳統(tǒng)維數(shù)簡約方法,存在一些不足之處,如主成分分析(pca)方法,其理論完善,并且計算有效,對內(nèi)部結構是線性結構的數(shù)據(jù)集具有很好的降維效果,但在面對線性不可分的數(shù)據(jù)時,pca無法反應數(shù)據(jù)的非線性性質(zhì);而多維尺度分析算法(mds)也不能很好的處理非線性結構的樣本數(shù)據(jù)。

對于流行學習維數(shù)簡約方法,等距映射法(isomap)雖然可以反映非線性數(shù)據(jù)的內(nèi)在性質(zhì),但是其與mds相似,都是基于全局的降維算法,該方法沒有考慮到數(shù)據(jù)樣本的局部關系,并且在降維時,isomap可能會產(chǎn)生”elbow”現(xiàn)象的誤差;拉普拉斯特征映射(le)和局部保留投影(lpp)雖然能夠處理樣本局部信息,但沒有考慮到樣本的類別信息。

技術實現(xiàn)要素:

本發(fā)明所要解決的技術問題是:

針對現(xiàn)有技術的不足,提供一種用于軟件缺陷預測的方法及系統(tǒng),基于代價敏感的半監(jiān)督拉普拉斯特征映射方法(cssle),通過該方法可以有效改善特征提取的鑒別性。

為解決以上技術問題,本發(fā)明將采取以下的技術方案:

本發(fā)明提出一種軟件缺陷預測方法,包括以下步驟:

步驟一、將訓練樣本集進行降維處理,獲得投影到低維空間的訓練樣本數(shù)據(jù)集,具體包括:

(1)將樣本集中的樣本分為有標記樣本和無標記樣本,其中對有標記樣本進一步劃分為有缺陷樣本和無缺陷樣本,然后分別構建三類鄰接圖,具體是:

對于第一類鄰接圖,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于同類樣本且近鄰則建立連接邊;對于第二類鄰接圖,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于異類樣本且近鄰則建立連接邊;對于第三類鄰接圖,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于無標記樣本且近鄰則建立連接邊;(2)對于每種鄰接圖,根據(jù)結點之間的連接情況確定樣本點之間的距離權重,其中對于第二類鄰接圖,在計算樣本點距離權重時引入代價敏感信息;(3)采用拉普拉斯特征映射算法的原理,根據(jù)步驟(2)確定的樣本點之間的距離權重以及映射后的樣本點之間的距離建立目標函數(shù),將該目標函數(shù)轉(zhuǎn)換成廣義特征值方程,求解該方程獲得特征向量矩陣,進一步獲得投影到低維空間的樣本集;步驟二、對待測試樣本集根據(jù)步驟一的流程進行降維處理,得到降維后的測試樣本數(shù)據(jù)集;步驟三、通過樸素貝葉斯分類器,根據(jù)步驟一獲得的訓練樣本數(shù)據(jù)集和步驟二獲得的測試樣本數(shù)據(jù)集,訓練預測模型并預測測試樣本數(shù)據(jù)集的分類情況,得出軟件缺陷預測結果。

進一步的,本發(fā)明的軟件缺陷預測方法,在步驟一的分步驟(1)中:

訓練樣本集x={xi,l},其中xi表示訓練樣本,xi∈rd,d是訓練樣本的維數(shù),i=1,2,。。。n,n是樣本的數(shù)量,l是樣本的類別標簽,l∈{0,-1,1},其中-1表示無標記樣本,0表示無缺陷樣本,1表示有缺陷樣本;同類樣本表示兩個結點均是有缺陷樣本或均是無缺陷樣本,異類樣本表示兩個結點一個是有缺陷樣本一個是無缺陷樣本。

進一步的,本發(fā)明的軟件缺陷預測方法,在步驟一的分步驟(2)中確定樣本點之間的距離權重具體為:

對于第一類鄰接圖,若結點i,j有邊連接,則權重否則wij=0;t為熱核寬度;對于第二類鄰接圖,若結點i,j有邊連接,則權重否則bij=0;其中ca,b為代價敏感參數(shù);對于第三類鄰接圖,若結點i,j有邊連接,則權重否則sij=0。

進一步的,本發(fā)明的軟件缺陷預測方法,步驟一的分步驟(3)具體如下:

a、建立目標函數(shù):

假設y=[y1,y2,。。。,yn]是投影到低維空間的樣本,則需要解決下面的最大化問題:

其中,α表示調(diào)節(jié)參數(shù),yi、yj均表示映射后的樣本點,i=1,2,。。。n,j=1,2,。。。n;b、將步驟a中的目標函數(shù)轉(zhuǎn)換成廣義特征值的求解問題:

lba=λlta;通過求解該式,求出矩陣a={a1,a2,。。。,ar},其中,λ表示特征值;lb=db-b、lt=dt-t;即其中,即db與dt均是對角矩陣且db與dt的每個對角元素分別是b與t中的每一行或者每一列之和;b是第二類鄰接圖構建的權重矩陣,τ=w+αs,w是第一類鄰接圖構建的權重矩陣,s是第三類鄰接圖構建的權重矩陣;c、根據(jù)矩陣a求出投影后的樣本y,y為矩陣a中的每一行向量組成的矩陣,即,yi是a的第i行向量,其中,r代表矩陣a中特征向量的數(shù)量,表示向量fj的第i個分量,j=1,2,。。。r。

進一步的,本發(fā)明的軟件缺陷預測方法,在步驟一的分步驟(1)中,根據(jù)結點之間的近鄰情況建立連接邊是采用ε領域法,即:

如果結點i,j滿足||xi-xj||2<ε,則在結點i,j間連接一個邊,ε為設定值。

進一步的,本發(fā)明的軟件缺陷預測方法,在步驟一的分步驟(1)中,根據(jù)結點之間的近鄰情況建立連接邊是采用n最近鄰法,即:

當結點i是結點j的n近鄰結點或者結點j是結點i的n近鄰結點,則結點i,j使用一條邊連接。

進一步的,本發(fā)明的軟件缺陷預測方法,在步驟一的分步驟(2)中確定樣本點之間的距離權重具體為:

對第一類、第三類的鄰接圖,如果結點i,j是有邊連接的,其權重均設置為1,否則均設置為0;對第二類的鄰接圖,如果結點i,j是有邊連接的,則權重設為ca,b,否則設為0,其中:

ca,b是代價敏感參數(shù)。

進一步的,本發(fā)明的軟件缺陷預測方法,前述代價敏感參數(shù)ca,b表示將a類樣本錯誤分類為b類樣本的代價,ca,b為實驗設定值,其中,當a類樣本指有缺陷樣本時,b類樣本指無缺陷樣本;或者當a類樣本指無缺陷樣本時,b類樣本指有缺陷樣本。

本發(fā)明還提出一種軟件缺陷預測系統(tǒng),包括:

數(shù)據(jù)預處理模塊、降維處理模塊、訓練預測模塊,數(shù)據(jù)預處理模塊,用于獲取訓練樣本數(shù)據(jù)集和測試樣本數(shù)據(jù)集,將樣本集中的樣本分為有標記樣本和無標記樣本,其中對有標記樣本進一步劃分為有缺陷樣本和無缺陷樣本;降維處理模塊,用于將樣本集進行降維處理,獲得投影到低維空間的樣本數(shù)據(jù)集;訓練預測模塊,用于通過樸素貝葉斯分類器,將降維處理后的訓練樣本數(shù)據(jù)集和測試樣本數(shù)據(jù)集,訓練預測模型并預測測試樣本數(shù)據(jù)集的分類情況,得出軟件缺陷預測結果;其中,降維處理模塊進一步具體包括:

鄰接圖構建單元,用于構建三類鄰接圖,具體包括:

第一構建單元,用于構建第一類鄰接圖,具體為:

將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于同類樣本且近鄰則建立連接邊;第二構建單元,用于構建第二類鄰接圖,具體為:

將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于異類樣本且近鄰則建立連接邊;第三構建單元,用于構建第三類鄰接圖,具體為:

將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于無標記樣本且近鄰則建立連接邊;距離權重計算單元,用于對于每種鄰接圖,根據(jù)結點之間的連接情況確定樣本點之間的距離權重,其中對于第二鄰接圖,在計算樣本點距離權重時引入代價敏感信息;拉普拉斯特征映射單元,用于采用拉普拉斯特征映射算法的原理,根據(jù)距離權重計算單元確定的樣本點之間的距離權重以及映射后的樣本點之間的距離建立目標函數(shù),將該目標函數(shù)轉(zhuǎn)換成廣義特征值方程,求解該方程獲得特征向量矩陣,進一步獲得投影到低維空間的樣本集。

作為上述軟件缺陷預測系統(tǒng)進一步的細化方案,距離權重計算單元包括:

第一計算單元,用于計算第一類鄰接圖中樣本點之間的距離權重,具體為:

若結點i,j有邊連接,則權重否則wij=0;t為熱核寬度;第二計算單元,用于計算第二類鄰接圖中樣本點之間的距離權重,具體為:

若結點i,j有邊連接,則權重否則bij=0;其中ca,b為代價敏感參數(shù);第三計算單元,用于計算第三類鄰接圖中樣本點之間的距離權重,具體為:

若結點i,j有邊連接,則權重否則sij=0。

本發(fā)明采用以上的技術方案,本發(fā)明和現(xiàn)有技術相比,可以實現(xiàn)以下的有益效果:

本發(fā)明在特征提取時,將半監(jiān)督學習應用到拉普拉斯特征映射方法中,不僅能夠保留樣本的局部近鄰結構,對樣本進行維數(shù)簡約,去除冗余的特征,還能夠利用樣本中的類別信息,將有標記樣本數(shù)據(jù)和無標記樣本數(shù)據(jù)共同處理,提高預測模型的鑒別能力。

同時,為了避免將不同類的樣本映射到較小的低維鄰域中,尤其是將有缺陷樣本映射到無缺陷樣本鄰域中,在le算法計算樣本點距離時引入代價敏感信息,以此來提高le的映射精度。

在nasa數(shù)據(jù)庫上的實驗驗證了本發(fā)明所提方法的有效性,并且和其他對比方法相比,在分類性能上有一定的提升。

附圖說明圖1是本發(fā)明的方法流程示意圖。

具體實施方式以下將結合附圖詳細地說明本發(fā)明的技術方案。

如圖1所示,本發(fā)明包括以下步驟:

一、利用訓練樣本集x構建鄰接圖:

在x中的樣本分為有缺陷樣本、無缺陷樣本和無標記樣本,需要構建三種鄰接圖a、b、c。

對于鄰接圖a,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于同類樣本且近鄰則建立連接邊;對于鄰接圖b,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于異類樣本且近鄰則建立連接邊;對于鄰接圖c,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于無標記樣本且近鄰則建立連接邊。

有兩個方法可以規(guī)定兩個結點的近鄰情況:

(a)ε領域,如果結點i,j滿足||xi-xj||2<ε,則可在結點i,j間連接一個邊。

(b)n最近鄰,結點i,j可以使用一條邊連接當結點i是結點j的n近鄰結點或者結點j是結點i的n近鄰結點,這種關系是對稱的。

二、選擇權重:

對圖a,若結點i,j有邊連接,則否則wij=0;對圖b,加入代價敏感參數(shù)ca,b,若結點i,j有邊連接,則否則bij=0;對圖c,若結點i,j有邊連接,則否則sij=0。

e為自然對底數(shù)。

三、建立目標函數(shù):

假設y=[y1,y2,。。。,yk]是投影到低維空間的樣本,則需要解決下面的最大化問題:

四、將步驟三中的目標函數(shù)可轉(zhuǎn)換成廣義特征值的求解問題:

lba=λlta;通過求解該式,可以求出矩陣a={a1,a2,。。。,ar},a中的向量是取廣義特征值方程所得的前r個最大特征值所對應的特征向量。

五、根據(jù)a可求出投影后的樣本y,其中,其中,r代表矩陣a中特征向量的數(shù)量,表示向量fj的第i個分量,j=1,2,。。。r。

六、根據(jù)步驟一至步驟五,可對測試樣本集z進行維數(shù)簡約,得出降維后的樣本集為z。

七、通過樸素貝葉斯(nb)分類器,根據(jù)步驟五獲得的數(shù)據(jù)集y和步驟六獲得的數(shù)據(jù)集z,訓練預測模型并預測z的分類情況,得出預測效果。

步驟(1)至(7)中:

x={xi,l},i=1,2,。。。,n,其中訓練樣本xi∈rd,d是訓練樣本的維數(shù),l是樣本的類別標簽,l∈{0,-1,1},其中-1表示無標記樣本,0表示無缺陷樣本,1表示有缺陷樣本;α表示調(diào)節(jié)參數(shù);在求出矩陣a后,就可求出投影后的矩陣y為a中的每一行向量組成的矩陣,即,yi是a的第i行向量。

以下將進一步詳細地說明本發(fā)明的原理:

1。構建鄰接圖設樣本集x={xi,l},i=1,2,。。。,n,其中xi∈rd,d是樣本的維數(shù),l是樣本的類別標簽,l∈{0,-1,1},其中-1表示無標記樣本,0表示無缺陷樣本,1表示有缺陷樣本,分別構建三種鄰接圖a、b、c。

在鄰接圖a中,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于同類樣本且近鄰則建立連接邊;在鄰接圖b中,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于異類樣本且近鄰則建立連接邊;在鄰接圖c中,將樣本集中的所有樣本作為該鄰接圖的結點,如果有兩個結點屬于無標記樣本且近鄰則建立連接邊。

有兩個方法可以規(guī)定兩個結點的近鄰情況。

(a)ε領域,如果i,j滿足||xi-xj||2<ε,則可在結點i,j間連接一個邊。

(b)n最近鄰,結點i,j可以使用一條邊連接當結點i是結點j的n近鄰結點或者結點j是結點i的n近鄰結點,這種關系是對稱的;本發(fā)明使用n最近鄰方法。

2。選擇權重,有兩種方法用來選擇邊的權重:

(a)使用熱核,如果結點i,j是有邊連接的,則權重為否則為0。

(b)簡單定義,如果結點i,j是有邊連接的,則權重為1,否則為0。

這種簡單的方法可以避免熱核寬度t的選擇。

另外,在軟件缺陷預測中,有兩類錯誤分類:

i類是將有缺陷樣本錯誤分類為無缺陷樣本;ii類是將無缺陷樣本錯誤分類為有缺陷樣本。

在軟件工程實踐中,i類錯誤的代價要大于ii類。

對軟件模塊進行分類預測時產(chǎn)生的i類錯誤代價可表示為c1,0,ii類錯誤代價可表示為c0,1。

根據(jù)上述分析可知c1,0>c0,1。

本發(fā)明充分利用樣本的代價信息,為了避免在降維的過程中把相距較遠的異類樣本點映射嵌入到一個較小的鄰域內(nèi)。

因為所有的有邊連接的結點是互異樣本,所以在構建第二類鄰接圖的距離權重時引入代價敏感因子ca,b,以提高該方法的映射精度。

其中,ca,b表示將a類樣本錯誤分類為b類樣本的代價,ca,b為實驗設定值。

a類,b類均指的是有缺陷樣本或無缺陷樣本,a!=b,即:

a類指的是有缺陷樣本、b類指無缺陷樣本,或者a類指的是無缺陷樣本、b類指有缺陷樣本。

則三種權重定義如下:

3。構造目標函數(shù)為了使得在高維空間中的近鄰樣本在投影后的空間中也是近鄰的,即保持樣本的近鄰結構信息,并使得同類樣本盡量靠近,異類樣本盡量分離,假設y=[y1,y2,。。。,yk]是投影到低維空間的樣本,則需要解決下面的最大化問題:

4。求出投影后的樣本y令τij=wij+αsij,可將目標函數(shù)轉(zhuǎn)換為下面的函數(shù)求解:

其中,公式(11)可做如下推導,其中,即db與dt均是對角矩陣且db與dt的每個對角元素分別是b與t中的每一行或者每一列之和。

即lb=db-b,lt=dt-t,所以,公式(11)可轉(zhuǎn)換成如下目標函數(shù)的求解:

公式(14)可以轉(zhuǎn)換成廣義特征值的求解問題如下:

lba=λlta(15)。

通過求解(15),可以求出矩陣a={a1,a2,。。。,ar},a中的向量是取廣義特征值方程所得的前r個最大特征值所對應的特征向量。

根據(jù)a可求出投影后的樣本y,其中,表示向量fj的第i個分量。

作為與本發(fā)明提出的一種軟件缺陷預測系統(tǒng),包括:

數(shù)據(jù)預處理模塊、降維處理模塊、訓練預測模塊,其中降維處理模塊進一步具體包括:

鄰接圖構建單元、距離權重計算單元、拉普拉斯特征映射單元,本發(fā)明實施例所提供的軟件缺陷預測系統(tǒng)是與前述軟件缺陷預測方法相對應的,具體的工作原理和使用過程參見前述方法實施例中的相關內(nèi)容,在此不再贅述。

將本發(fā)明所述的方法在nasa數(shù)據(jù)庫上實驗,并將實驗結果和相關特征提取方法,如pca、le、lpp方法進行對比分析。

nasa數(shù)據(jù)庫含有10個軟件工程集,每個工程都是采集于美國nasa航天局的一個軟件系統(tǒng)或者子項目。

在本文的實驗中,我們將會選擇該數(shù)據(jù)庫中的5個工程集(包括cm1、mw1、pc1、pc3、pc4)來做實驗。

方法cm1mw1pc1pc3pc4pca0.230。290.230。280.24le0.330。360.320。340.44lpp0.380。430.290。400.46cssle0.520。520.490。480.45表1所有方法分別在nasa數(shù)據(jù)集5個工程上的pd平均值方法cm1mw1pc1pc3pc4pca0.030。070.030。140.02le0.060。050.020。070.10lpp0.050。070.040。160.13cssle0.080。060.060。040.07表2所有方法分別在nasa數(shù)據(jù)集5個工程上的pf平均值方法cm1mw1pc1pc3pc4pca0.330。310.290。250.35le0.390。410.420。370.42lpp0.440。430.340。320.41cssle0.510。520.470。540.48表3所有方法分別在nasa數(shù)據(jù)集5個工程上的f-measure平均值仔細研究以上三個表格所得的結果,可以得出下列幾點結論:

(1)本發(fā)明提出的方法的預測效果在pd和f-measure這兩個指標上普遍要大于所有對比方法,在pf這個指標上普遍要小于所有對比方法,說明本發(fā)明提出的方法的預測效果普遍要優(yōu)于所有對比方法。

(2)本發(fā)明所提的cssle方法和le方法相比有顯著的提高,這說明引入半監(jiān)督學習和代價敏感的思想是有效的,通過半監(jiān)督學習和代價敏感,可以使得經(jīng)特征提取后的樣本更具有鑒別性,從而提高分類效果。

以上所述僅是本發(fā)明的部分實施方式,本發(fā)明不只應用于軟件工程領域,應當指出,對于本 技術領域:



軟件缺陷預測專利,基于CNN-SVM的軟件缺陷預測方法


技術領域 本發(fā)明涉及軟件可靠性檢測技術,具體涉及一種基于CNN-SVM的軟件缺陷預測方法。

背景技術 隨著社會信息化持續(xù)深入發(fā)展,軟件在我們的日常生活中變得無處不在、無所不在。

但隨之而來的是,軟件缺陷導致的軟件出錯、失效、崩潰等質(zhì)量問題層出不窮。

軟件缺陷是計算機中存在的某種破壞軟件和程序正常運行的錯誤,或者尚未發(fā)現(xiàn)的功能缺陷。

提前發(fā)現(xiàn)軟件缺陷并提供解決方案有助于提高軟件質(zhì)量、降低維護成本并增強用戶信任度。

如何有效的進行軟件缺陷預測一直是軟件工程師研究的重要領域。

其中,基于機器學習的軟件缺陷預測方法是技術研究人員研究的熱點內(nèi)容之一。

主要是根據(jù)軟件歷史開發(fā)數(shù)據(jù)中的軟件數(shù)據(jù)特征以及已發(fā)現(xiàn)的缺陷,通過機器學習來對目標軟件項目中的缺陷數(shù)目或缺陷類型等進行預測。

一般可以考慮代碼、注釋、參數(shù)、操作數(shù)符、調(diào)用關系等因素對軟件缺陷的影響,或者基于Halstead度量法、 McCabe度量法去提取軟件數(shù)據(jù)特征信息。

缺陷的產(chǎn)生與各類軟件數(shù)據(jù)特征具有不盡相同的非線性相關性,同時軟件數(shù)據(jù)特征之間也具有一定的相關性。

除此之外,在軟件歷史開發(fā)數(shù)據(jù)中,缺陷數(shù)據(jù)數(shù)目遠小于正常數(shù)據(jù),由此帶來了樣本類不平衡的問題。

目前大多缺陷預測算法都在某一特定數(shù)據(jù)集上進行實驗,其不能保證在各類不同的軟件數(shù)據(jù)上具有一致的效果。

發(fā)明內(nèi)容 本發(fā)明的目的在于提出一種基于CNN-SVM的軟件缺陷預測方法。

實現(xiàn)本發(fā)明目的的技術解決方案為:

一種基于CNN-SVM的軟件缺陷預測方法,包括如下步驟:

步驟1,從軟件歷史開發(fā)數(shù)據(jù)中提取軟件數(shù)據(jù)特征,將獲得的數(shù)據(jù)特征進行歸一化處理; 步驟2,對歸一化后的缺陷樣本的數(shù)據(jù)特征進行SMOTE樣本擴充; 步驟3,構建CNN-SVM模型,正常樣本和擴充后的缺陷樣本一起輸入到 CNN-SVM模型中,先由CNN網(wǎng)絡進行卷積、下采樣和扁平化處理,完成特征提取后,輸入到SVM層進行缺陷預測; 步驟4,采用RMSProp優(yōu)化器,基于binary_cross_entroy損失函數(shù)進行優(yōu)化擬合,完成CNN-SVM模型的訓練; 步驟5,將目標軟件缺陷特征輸入訓練好的CNN-SVM模型,輸出預測結果。

進一步的,步驟1,從軟件歷史開發(fā)數(shù)據(jù)中提取軟件數(shù)據(jù)特征,將獲得的數(shù)據(jù)特征進行歸一化處理,具體方法為:

從軟件歷史開發(fā)數(shù)據(jù)中提取軟件數(shù)據(jù)特征,包括代碼結構信息、代碼行數(shù)信息、數(shù)符信息、可讀性信息、McCabe度量信息、Halstead度量信息以及缺陷信息; 將獲得的數(shù)據(jù)特征進行歸一化處理,公式為:

其中,x 進一步的,步驟2,對歸一化后的缺陷樣本的數(shù)據(jù)特征進行SMOTE樣本擴充,其中,SMOTE算法是一種合成少數(shù)類的隨機過采樣技術,算法步驟如下:

1)對于每一個缺陷樣本x,基于歐式距離計算其到其他樣本y中的距離并得到最近的K個樣本,稱K近鄰樣本,歐式距離公式如下, 其中,x 2)根據(jù)不平衡比率設置采樣比例,確定采樣倍率N,之后對每個缺陷樣本隨機選擇若干K近鄰樣本x

軟件缺陷預測專利,一種基于Transformer的軟件缺陷預測方法與流程 的介紹就聊到這里。

更多關于 軟件缺陷預測專利,一種基于Transformer的軟件缺陷預測方法與流程 的資訊,可以咨詢 樂知網(wǎng)。

(樂知網(wǎng)- 領先的一站式知識產(chǎn)權服務平臺,聚焦 專利申請,商標注冊 業(yè)務)。


關鍵詞: 發(fā)明專利申請 如何申請專利 ?
主站蜘蛛池模板: 阳春市| 神木县| 五指山市| 健康| 镇原县| 合阳县| 万州区| 会宁县| 泰宁县| 贵南县| 千阳县| 固原市| 当阳市| 唐山市| 始兴县| 黄龙县| 蚌埠市| 都兰县| 霍林郭勒市| 北安市| 东乡族自治县| 淅川县| 安泽县| 连云港市| 台北市| 香格里拉县| 桂东县| 内乡县| 太仓市| 宁阳县| 贵溪市| 安阳市| 布拖县| 辽阳市| 加查县| 陇南市| 白山市| 峡江县| 雅安市| 洱源县| 五常市|