• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于數(shù)據(jù)集擴充的即時軟件缺陷預(yù)測方法

      2024-12-09 00:00:00楊帆夏鴻崚
      關(guān)鍵詞:深度學(xué)習(xí)

      摘要:即時軟件缺陷預(yù)測針對項目開發(fā)與維護過程中的代碼提交來預(yù)測是否會引入缺陷。在即時軟件缺陷預(yù)測研究領(lǐng)域,模型訓(xùn)練依賴于高質(zhì)量的數(shù)據(jù)集,然而已有的即時軟件缺陷預(yù)測方法尚未研究數(shù)據(jù)集擴充方法對即時軟件缺陷預(yù)測的影響。為提高即時軟件缺陷預(yù)測的性能,提出一種基于數(shù)據(jù)集擴充的即時軟件缺陷預(yù)測(prediction based on data augmentation,PDA)方法。PDA方法包括特征拼接、樣本生成、樣本過濾和采樣處理4個部分。增強后的數(shù)據(jù)集樣本數(shù)量充足、樣本質(zhì)量高且消除了類不平衡問題。將提出的PDA方法與最新的即時軟件缺陷預(yù)測方法(JIT-Fine)作對比,結(jié)果表明:在JIT-Defects4J數(shù)據(jù)集上,F(xiàn)指標提升了18.33%;在LLTC4J數(shù)據(jù)集上,F(xiàn)指標仍有3.67%的提升,驗證了PDA的泛化能力。消融實驗證明了所提方法的性能提升主要來源于數(shù)據(jù)集擴充和篩選機制。

      關(guān)鍵詞:數(shù)據(jù)增強;深度學(xué)習(xí);即時軟件缺陷預(yù)測;樣本生成;類不平衡問題

      中圖分類號: TP311.5" " " " " " " nbsp; " " " " 文獻標志碼: A文章編號: 1673-2340(2024)01-0058-08

      Abstract: Just-in-time (JIT) software defect prediction aims to predict whether code commits during project development and maintenance will introduce defects. In the field of JIT software defect prediction research, model training relies on high-quality datasets. However, the impact of dataset augmentation methods on JIT software defect prediction has not been thoroughly investigated in existing methods. To enhance the performance of JIT software defect prediction, a method based on dataset augmentation, named prediction based on data augmentation (PDA) is proposed. PDA includes four parts: feature stitching, sample generation, sample filtering, and sampling processing. The augmented dataset has an ample number of samples with high quality and eliminates the class imbalance problem. Comparing the proposed PDA method with the latest JIT software defect prediction method (JIT-Fine), results indicate: an 18.33% improvement in the F score on the JIT-Defects4J dataset; and a 3.67% improvement on the LLTC4J dataset, demonstrating PDA′s generalization ability. Ablation studies have confirmed that the performance improvement of the proposed PDA method mainly comes from dataset augmentation and filtering mechanisms.

      Key words: data augmentation; deep learning; just-in-time defect prediction; sample generation; imbalanced datasets

      軟件開發(fā)中不可避免出現(xiàn)軟件缺陷問題,其中大部分缺陷是由軟件演化過程中提交的代碼變更引起的。當(dāng)含有缺陷的軟件發(fā)布后,易給日常生活帶來巨大的負面影響,造成嚴重的經(jīng)濟損失[1]。因此,在軟件的開發(fā)和維護工作中,能夠即時預(yù)測軟件缺陷是必要的[2]。為了解決這個問題,研究者們深入研究了即時軟件缺陷預(yù)測技術(shù)。即時軟件缺陷預(yù)測(如LApredict、Deeper、DeepJIT、CC2Vec、JITLine和JIT-Fine等方法)針對項目代碼每次提交的變更預(yù)測是否會引入缺陷,即提交變更級的軟件缺陷預(yù)測[3]。與傳統(tǒng)缺陷預(yù)測方法主要關(guān)注文件級預(yù)測粒度相比,針對代碼提交的即時軟件缺陷預(yù)測具有預(yù)測粒度更細和即時性更強的優(yōu)點。即時軟件缺陷預(yù)測的性能高度依賴用于訓(xùn)練的數(shù)據(jù)集質(zhì)量和數(shù)量;然而現(xiàn)有的數(shù)據(jù)集常常面臨數(shù)據(jù)量不足、數(shù)據(jù)樣本類不平衡等問題,繼而導(dǎo)致現(xiàn)有方法訓(xùn)練出的模型精確率和召回率不高。

      為了緩解這個問題,本文將數(shù)據(jù)集擴充方法應(yīng)用于即時軟件缺陷預(yù)測領(lǐng)域,提出了一種適用于即時缺陷預(yù)測模型的數(shù)據(jù)集擴充(prediction based on data augmentation,PDA)方法,它包括特征組合、樣本生成、樣本過濾和采樣處理4個部分。采用PDA方法得到的數(shù)據(jù)集具有數(shù)量足、質(zhì)量高和沒有類不平衡問題等特點,應(yīng)用PDA后預(yù)測模型的精確率和召回率得到提升。

      PDA方法首先提取出代碼變更提交的專家特征和語義特征并將其拼接成特征向量;再使用隨機替換來生成候選樣本,使用相對熵和條件熵來篩選生成的候選樣本,將篩選后的樣本擴充到數(shù)據(jù)集中;最后對擴充后的數(shù)據(jù)集中的小類樣本進行重復(fù)采樣,大小類樣本數(shù)量平衡后訓(xùn)練即時軟件缺陷預(yù)測分類模型。

      為評估PDA方法的有效性,本文首先在原始數(shù)據(jù)集JIT-Deffects4J[4]上進行實驗并測試其性能,然后將訓(xùn)練好的模型應(yīng)用于數(shù)據(jù)集LLTC4J,并測試其性能以檢驗其泛化性。在實驗中,本文首先進行數(shù)據(jù)集擴充,然后在全連接層分類器上應(yīng)用。實驗結(jié)果表明,應(yīng)用了PDA方法的即時缺陷預(yù)測模型在自動評估中相較于最新的6種基準模型具有更佳的性能。

      1" "相關(guān)工作

      1.1" "即時軟件缺陷預(yù)測

      即時軟件缺陷預(yù)測任務(wù)旨在盡早地識別出軟件缺陷以降低軟件維護的成本。為此,Mockus等[5]首次在代碼變更層次上進行缺陷預(yù)測;2013年,Kamei等[6]正式將這種缺陷預(yù)測技術(shù)命名為即時軟件缺陷預(yù)測技術(shù)。近年來,研究者們在數(shù)據(jù)標注、特征提取、模型構(gòu)建和模型評估等領(lǐng)域提出了大量有價值的理論和技術(shù)。Hoang等先后提出了DeepJIT[7]和CC2vec[8]兩種使用深度學(xué)習(xí)提取語義特征的預(yù)測模型。隨后,為了進一步提升即時缺陷預(yù)測的實用價值,在綜合考慮成本和效益的基礎(chǔ)上,Pornprasit等[9]提出了JITLine。Zeng等[10]對基于深度學(xué)習(xí)技術(shù)的即時軟件缺陷預(yù)測方法進行了重新審視,并構(gòu)建了一種基于簡單邏輯回歸技術(shù)的預(yù)測模型LApredict。Ni等[4]構(gòu)建了JITFine模型進行統(tǒng)一的即時軟件缺陷預(yù)測和定位?,F(xiàn)有的即時軟件缺陷預(yù)測方法直接使用真實項目的代碼變更提交信息作為數(shù)據(jù)集,樣本數(shù)量較少(27319),且其中91.46%的樣本為不引入缺陷的提交信息。這使得現(xiàn)有預(yù)測方法在訓(xùn)練過程中更易受到無缺陷樣本的影響而忽視有缺陷樣本的影響。與之前的工作不同的是,PDA方法使用數(shù)據(jù)增強方法生成并篩選優(yōu)質(zhì)樣本擴充數(shù)據(jù)集,使得樣本總量擴充一倍,并且對小類樣本重復(fù)采樣以消除類不平衡問題對模型訓(xùn)練的影響。

      1.2" "數(shù)據(jù)增強

      根據(jù)候選樣本生成的方式,數(shù)據(jù)增強方法可以分為基于語義和基于規(guī)則兩種類型。其中,針對基于規(guī)則的數(shù)據(jù)增強方法,Wang等[11]利用同義詞替換方法生成候選樣本;Wei等[12]提出了EDA方法,該方法包括隨機插入、隨機替換和隨機刪除技術(shù);Xie等[13]使用自動生成的錯誤詞匯增加候選樣本;Zhang等[14]提出基于插值的方法MIXUP,該方法通過插值兩個或多個真實實例的輸入和標簽來生成候選樣本。針對基于語義的數(shù)據(jù)增強方法,ahin等[15]利用依賴樹技術(shù)對原有數(shù)據(jù)進行語義轉(zhuǎn)換;Sennrich等[16]提出回譯模型,回譯技術(shù)通過將句子翻譯成其他語言,再將其翻譯回原語言來生成候選樣本;由于NLP任務(wù)的輸入具有離散性特點,Chen等[17]提出TMix方法,該方法通過在隱藏空間中插入文本來構(gòu)建大量的候選樣本。PDA方法選擇使用針對即時軟件缺陷預(yù)測改進后的數(shù)據(jù)增強方法擴充即時軟件缺陷預(yù)測領(lǐng)域的現(xiàn)有數(shù)據(jù)集。由于差值方法會生成虛擬的數(shù)據(jù)信息、隨機刪除會丟失一部分原有的信息,可能會對即時缺陷預(yù)測的準確性產(chǎn)生影響,因此,PDA使用隨機替換的方式生成新的樣本。在特征向量中隨機選取兩列特征進行替換生成新的樣本用于擴充數(shù)據(jù)集。

      2" "PDA方法

      本節(jié)主要介紹數(shù)據(jù)集擴充方法的設(shè)計及具體實現(xiàn),PDA的整體框架如圖1所示。本文的數(shù)據(jù)集擴充方法包括特征組合、樣本生成、樣本過濾和采樣處理4個部分,接下來介紹數(shù)據(jù)集擴充方法PDA的具體實現(xiàn)細節(jié)。

      2.1" "特征組合

      為了從代碼提交變更中挖掘更多的信息,PDA方法提取數(shù)據(jù)集中每個樣本的專家特征和語義特征,并將它們在向量層次拼接[4,18],形成原始樣本X。設(shè)數(shù)據(jù)集X中有n個樣本,記為

      X = {(x,y),(x,y),…,(x,y)},

      其中:x為代碼提交中特征的向量表示:y為該代碼提交是否會引入缺陷的標簽。

      2.1.1" "專家特征

      通過挖掘軟件項目管理的版本控制系統(tǒng)和缺陷跟蹤系統(tǒng)的信息,得到代碼變更的專家特征數(shù)據(jù)集。首先提取出軟件項目管理的版本控制系統(tǒng)中的歷史代碼變更,再對提取出的代碼變更進行度量得到專家特征,形成專家特征數(shù)據(jù)集。涉及到的專家特征及其含義[4]如表1所示。

      2.1.2" "語義特征

      通過CodeBERT提取代碼變更片段的代碼中包含的語義特征,然后將這些語義特征作為代碼變更片段的度量,形成語義特征數(shù)據(jù)集[4]。本文在添加行和刪除行之前添加了其他兩個令牌(即[ADD]和[DEL])來區(qū)分它們。然后,將提交消息、添加行、刪除行標記為令牌序列,并將該序列輸入CodeBERT模型,生成相應(yīng)的嵌入向量,稱為代碼更改提交的語義向量。語義特征提取器的具體結(jié)構(gòu)如圖2所示。

      專家特征是專家認為與即時缺陷引入判斷有關(guān)的度量標準,較為主觀,但是有明確的含義,具有良好的可解釋性;語義特征是從代碼變更提交信息中提取出的特征,較為客觀,但是沒有明確含義,不具備良好的可解釋性。最新的研究表明,同時使用專家特征和語義特征比只使用專家特征或只使用語義特征的模型性能更好[4]。因此,PDA方法采用將專家特征和語義特征拼接后的特征向量作為原始樣本。

      2.2" "樣本生成

      為了降低訓(xùn)練集不足對模型評估的影響,PDA方法對數(shù)據(jù)集進行擴充處理,生成若干候選樣本?,F(xiàn)有的EDA[19]包含4個模塊,即同義詞替換、隨機插入、隨機替換和隨機刪除。本文使用針對即時軟件缺陷預(yù)測改進后的EDA,而不是直接使用現(xiàn)有的EDA框架。針對即時軟件缺陷預(yù)測任務(wù),剔除了不適用于本任務(wù)的模塊(隨機插入、隨機刪除和同義詞替換),因為以上模塊會導(dǎo)致新增錯誤信息或丟失原本信息。PDA方法僅使用隨機替換對現(xiàn)有特征信息互相替換來生成新的樣本。在原始樣本X中隨機選擇兩個樣本,交換樣本向量中隨機兩個特征的對應(yīng)取值,獲得一個生成候選樣本t。然后對生成的候選樣本進行過濾,將過濾后保留的高多樣性和高質(zhì)量樣本加入到數(shù)據(jù)集中。

      2.3" "樣本過濾

      為了進一步評估并篩選出高質(zhì)量的候選樣本,PDA首先利用相對熵最大化評估樣本的多樣性;然后,利用條件熵最小化評估樣本的質(zhì)量[20];最后,在綜合考慮樣本多樣性和質(zhì)量的條件下篩選出高質(zhì)量的候選樣本。

      考慮生成樣本的多樣性,對于候選樣本應(yīng)最大化,其損失函數(shù)為max L(ω,?準(t)),其中:?準:R → R為一個有限維的特征映射;ω∈R為可學(xué)習(xí)的參數(shù);l為交叉熵損失函數(shù);t為以隨機替換為數(shù)據(jù)集擴充方法對樣本進行擴充,以x為輸入生成的第j個樣本,x生成m個樣本。此時候選樣本損失函數(shù)為

      L(ω) = ∑∑l(ω?準(t),y),(1)

      該值由相對熵和信息熵組成,其中D為相對熵,H為信息熵,P為概率分布,整個公式可以展開為

      L(ω) = ∑∑D(P(ω?準(t)),P(y)) +

      H(P(y))。(2)

      考慮樣本質(zhì)量時,應(yīng)該將條件熵函數(shù)最小化,以此約束生成的樣本與原樣本的語義偏差,可以表示為minH(P(ω ?準(t))P(ω?準(x))),由相對熵得到多樣性分數(shù)

      S = D(P(ω?準(t)),P(y)),(3)

      由條件熵得到樣本質(zhì)量分數(shù)

      S = -H(P(ω?準(t))P(ω?準(x))),(4)

      因為是條件熵最小化,所以取負值。此時,當(dāng)樣本質(zhì)量越高時,樣本質(zhì)量分數(shù)越高。

      由多樣性分數(shù)和樣本質(zhì)量分數(shù)相加得到每個新生成樣本的最終得分為

      S = S + S,(5)

      按最終得分排序得前m個樣本即為篩選后的增強樣本,注意m的取值通常與原數(shù)據(jù)集中的樣本數(shù)量保持一致,即使數(shù)據(jù)量規(guī)模提升一倍[12]。樣本過濾的方法示意圖如圖3所示,其中相對熵負責(zé)篩選生成樣本的多樣性,條件熵負責(zé)篩選生成樣本的樣本質(zhì)量。

      2.4" "采樣處理

      為了確保最終的訓(xùn)練集正負均衡且盡可能多地保留樣本中的信息,本文將過濾后的候選樣本與原始樣本合并,之后進行重復(fù)采樣的過采樣處理[3],即通過增加少數(shù)類樣本的采樣次數(shù)以達到數(shù)據(jù)集中類的比例平衡。其中小類含有缺陷的樣本數(shù)量為2 333例,重復(fù)采集使其成為和無缺陷的大類數(shù)量一樣,即為24 986例。大小類樣本數(shù)量平衡后訓(xùn)練即時軟件缺陷預(yù)測分類模型。

      2.5" "方法應(yīng)用

      為了驗證本文數(shù)據(jù)集擴充方法PDA的有效性,本文將其應(yīng)用于全連接層分類器上。在訓(xùn)練開始前增加PDA預(yù)處理任務(wù),將PDA處理后的數(shù)據(jù)集輸入全連接層分類模型,并得到最終的分類結(jié)果。

      3" "實驗分析

      3.1" "實驗對象和基準方法

      為了驗證PDA的有效性,本文選擇數(shù)據(jù)集JIT-Defects4J[4],選取了6種最先進的方法作為基準模型并復(fù)用了它們的代碼(LApredict、Deeper、DeepJIT、CC2Vec、JITLine和JITFine)。其中,LApredict[8]利用傳統(tǒng)邏輯回歸分類器來構(gòu)建缺陷預(yù)測模型;Deeper[3]使用深度信念網(wǎng)絡(luò)來構(gòu)建缺陷預(yù)測模型;DeepJIT[5]使用卷積神經(jīng)網(wǎng)絡(luò)來構(gòu)建缺陷預(yù)測模型;CC2Vec[6]使用層級注意力網(wǎng)絡(luò)來構(gòu)建缺陷預(yù)測模型;JITLine[7]是一種考慮代碼標記特征的預(yù)測方法;JITFine[4]是一種同時考慮了專家特征與深度語義特征的預(yù)測方法。初始的JIT-Defects4J數(shù)據(jù)集來源為真實項目,有91.46%的樣本為無缺陷的樣本,8.54%的樣本為引入缺陷的代碼變更,這表明數(shù)據(jù)集內(nèi)部存在嚴重的類不平衡問題。

      LLTC4J數(shù)據(jù)集是傳統(tǒng)的用于即時軟件缺陷預(yù)測的數(shù)據(jù)集。本文將在JIT-Defects4J上訓(xùn)練得到的模型,應(yīng)用于LLTC4J數(shù)據(jù)集上測試性能,以研究各模型跨項目的泛化性。

      3.2" "評價指標

      為了評估該模型的有效性,本文采用了兩種廣泛使用的性能評價指標:非代價感知的指標和代價感知的指標。

      3.2.1" "非代價感知指標

      非代價感知的指標在不考慮成本的情況下評估預(yù)測模型的性能,適用于軟件質(zhì)量保障團隊有充足資源的情況下,通常采用F和AUC值作為評價指標。

      為了評估本文數(shù)據(jù)集擴充方法對模型預(yù)測性能的提升,本文使用F作為評價指標,它表示精確率Pre和召回率Rec的調(diào)和平均數(shù)。在數(shù)據(jù)集中,一個提交有4種可能的預(yù)測結(jié)果:當(dāng)一個提交是真正引入缺陷的,并且預(yù)測為引入缺陷的(真陽性,TP);當(dāng)一個提交沒有引入缺陷,但預(yù)測為引入缺陷的(假陽性,F(xiàn)P);當(dāng)一個提交是引入缺陷的,但是預(yù)測為沒有引入缺陷的(假陰性,F(xiàn)N);提交被預(yù)測為沒有引入缺陷的,并且它是真正沒有引入缺陷的(真陰性,TN)。根據(jù)這4個可能的結(jié)果,F(xiàn)分數(shù)可以定義為

      Pre = ,(6)

      Rec = ,(7)

      F = 。(8)

      AUC表示受試者工作特征(ROC)曲線[9]下的面積,是y軸上的真陽性率(R)與x軸上的假陽性率(R)的二維說明。ROC曲線是通過改變所有可能值的分類閾值生成的,這可以分離干凈有問題的預(yù)測。AUC值在0~1之間,一個很好的預(yù)測模型可以得到接近于1的AUC值。ROC曲線分析是穩(wěn)健的,特別是對于不平衡的類分布和不對稱的誤分類代價。它還表示了模型對隨機選擇的缺陷實例的排名高于隨機選擇的干凈實例的概率。

      3.2.2" "代價感知指標

      代價感知的性能指標通過考慮給定的成本閾值來評估預(yù)測模型的性能,例如,需要檢查一定數(shù)量的代碼行。這種類型的性能指標非常重要,特別是當(dāng)軟件質(zhì)量保障團隊的資源有限時。開發(fā)人員希望在指定的審查代碼比例內(nèi)盡可能多地檢測出內(nèi)在缺陷數(shù)。與之前的工作類似,本文使用總代碼行的20%作為檢查工作的代表。

      1)R@20%E為測量根據(jù)給定的檢查工作發(fā)現(xiàn)的實際引入缺陷的提交數(shù)量與提交總數(shù)之間的比例。在本文中,使用代碼行(LOC)作為檢查工作的代表,即整個項目20%的LOC。R@20%E較高意味著更多的實際缺陷引入提交被排在要檢查的列表的頂部。因此,開發(fā)人員會用更少的努力發(fā)現(xiàn)更多的實際缺陷引入提交。

      2)E@20%R為度量開發(fā)人員在檢測出數(shù)據(jù)集中實際引入缺陷提交的20%時所花費的工作量。E@20%R值較低意味著開發(fā)人員用更少的代價發(fā)現(xiàn)20%的實際引入缺陷的提交。

      3)Popt基于Alberg圖的概念,表示模型召回率與模型檢查代碼量之間的關(guān)系。為了計算這個指標,需要用到兩個預(yù)測模型:最優(yōu)模型(Optimal)和最差模型(Worst)。在最優(yōu)模型和最差模型中,提交分別按缺陷密度的遞減和遞增排序。一個好的預(yù)測模型比隨機模型表現(xiàn)更好,近似于最優(yōu)模型。對于給定的預(yù)測模型M,Popt可以由

      Popt(M) = 1 - (9)

      計算得到,其中Area(M)表示模型M對應(yīng)的曲線下面積。

      3.3" "實驗設(shè)計

      本文選擇數(shù)據(jù)集JIT-Defects4J[4]作為實驗對象,它是最新的大規(guī)模行級別數(shù)據(jù)集。首先,對JIT-Defects4J數(shù)據(jù)集進行特征提取并組合;然后,使用隨機替換生成候選樣本;再使用相對熵最大化和條件熵最小化篩選出高質(zhì)量的候選樣本;最后,進行過采樣處理,解決樣本內(nèi)的類不平衡問題。在實驗對象的選取上,本文首先在最新的JIT-Defects4J數(shù)據(jù)集上進行實驗,比較PDA方法與現(xiàn)有模型的性能;然后,比較各模型在LLTC4J數(shù)據(jù)集上的性能。JIT-Defects4J數(shù)據(jù)集是數(shù)據(jù)篩選過的數(shù)據(jù)集且數(shù)據(jù)量較?。籐LTC4J數(shù)據(jù)集未經(jīng)過數(shù)據(jù)篩選,更貼近實際情況且數(shù)據(jù)量更大,在LLTC4J上進行實驗以驗證經(jīng)數(shù)據(jù)集擴充后的模型泛化性是否比現(xiàn)有模型更好。該項工作設(shè)置了如下3個研究問題:

      RQ1: PDA方法的性能如何?

      RQ2: 進行消融實驗,依次去除采樣方法、多特征、數(shù)據(jù)集擴充框架測試方法性能,研究對提升性能影響最大的因素是什么?

      RQ3:該方法模型是經(jīng)JIT-Defects4J數(shù)據(jù)集訓(xùn)練得到的,在LLTC4J數(shù)據(jù)集上性能效果如何?與現(xiàn)有模型相比是否更有泛化性?

      3.4" "實驗結(jié)果分析

      1)RQ1:PDA方法的性能如何?

      針對RQ1,本文選取6種最新的即時軟件缺陷預(yù)測方法作為基線方法,實驗結(jié)果如表2所示,PDA方法在F指標上較其他最新的預(yù)測方法提升了18.33%。各方法的精確率和召回率如圖4所示。使用PDA方法對數(shù)據(jù)集擴充之后,豐富了樣本多樣性,模型減少了對無缺陷樣本的過擬合程度,對有缺陷樣本的預(yù)測精確率提高了30.38%,從而提升了模型性能。該結(jié)果表明,F(xiàn)的提升主要由精確率的提升提供。

      2)RQ2:進行消融實驗,依次去除采樣方法、多特征、數(shù)據(jù)集擴充框架測試方法性能,研究對提升性能影響最大的因素是什么?

      針對RQ2,本文設(shè)計了消融實驗依次去除采樣方法、多特征、數(shù)據(jù)集擴充框架測試方法性能,消融實驗的結(jié)果如表3所示。在消融實驗中,去除采樣方法會使F指標下降2.29%;去除數(shù)據(jù)集擴充和篩選會使F指標下降13.96%;去除語義特征會使F指標下降3.06%;去除專家特征會使F指標下降0.96%。結(jié)果表明,性能提升主要是由數(shù)據(jù)集擴充和篩選提供的,這也證明了PDA方法的有效性。

      3)RQ3:該方法模型是在JIT-Defects4J數(shù)據(jù)集訓(xùn)練得到的,在LLTC4J數(shù)據(jù)集上性能效果如何?與現(xiàn)有模型相比是否更有泛化性?

      針對RQ3,本文在數(shù)據(jù)規(guī)模更大的LLTC4J數(shù)據(jù)集上進行實驗以驗證PDA方法的泛化性,具體性能對比見表4。在LLTC4J數(shù)據(jù)集上PDA方法仍然具有最好的性能,在F上比其他方法高3.67%~642.11%;在AUC上比其他方法高6.35%~21.68%;在R@20%E上比其他方法高2.45%~23.68%;在E@20%R上比其他方法減少6.67%~56.25%;在Popt上比其他方法高2.98%~14.91%。該結(jié)果表明PDA方法比其他方法具有更好的泛化性。

      4" "結(jié)論

      本文將數(shù)據(jù)集擴充方法應(yīng)用于即時軟件缺陷預(yù)測領(lǐng)域,提出PDA方法,通過特征組合、樣本生成、樣本篩選和采樣方法解決現(xiàn)有數(shù)據(jù)存在樣本數(shù)量少、嚴重類不平衡的問題,與最新的即時軟件缺陷預(yù)測方法相比,PDA方法在各項指標上均有提升,特別是在F指標上相對提升了18.33%。實驗結(jié)果證明了PDA方法的有效性且與其他方法相比有更好的泛化性。在后續(xù)研究工作中,建議探索可用于即時軟件缺陷預(yù)測領(lǐng)域的更為高效的數(shù)據(jù)集擴充方法。

      參考文獻:

      [ 1 ] WEN M, WU R X, LIU Y P, et al. Exploring and exploiting the correlations between bug-inducing and bug-fixing commits[C]//Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, August 26-30, 2019, Tallinn, Estonia. New York:ACM, 2019:326-337.

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

      CHEN X, GU Q, LIU W S, et al. Survey of static software defect prediction[J]. Journal of Software, 2016, 27(1):1-25. (in Chinese)

      [ 3 ] ZHAO Y H, DAMEVSKI K, CHEN H. A systematic survey of just-in-time software defect prediction[J]. ACM Computing Surveys, 2023, 55(10):201.

      [ 4 ] NI C, WANG W, YANG K W, et al. The best of both worlds:integrating semantic features with expert features for defect prediction and localization[C]// Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, November 14-18, 2022, Singapore, Singapore. New York:ACM, 2022:672-683.

      [ 5 ] MOCKUS A, WEISS D M. Predicting risk of software changes[J]. Bell Labs Technical Journal, 2000, 5(2):169-180.

      [ 6 ] KAMEI Y, SHIHAB E, ADAMS B, et al. A large-scale empirical study of just-in-time quality assurance[J]. IEEE Transactions on Software Engineering, 2013, 39(6):757-773.

      [ 7 ] HOANG T, DAM H K, KAMEI Y, et al. DeepJIT:an end-to-end deep learning framework for just-in-time defect prediction[C]//Proceedings of the 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR), 2019, May 25-31, Montreal, QC, Canada. New York:IEEE Xplore, 2019:34-45.

      [ 8 ] HOANG T, KANG H J, LO D, et al. CC2Vec:distributed representations of code changes[C]// Proceedings of the 2020 IEEE/ACM 42nd International Conference on Software Engineering (ICSE), October 05-11, 2020, Seoul, Korea (South). New York:IEEE Xplore, 2020:518-529.

      [ 9 ] PORNPRASIT C, TANTITHAMTHAVORN C K. JITLine:a simpler, better, faster, finer-grained just-in-time defect prediction[C]//Proceedings of the 2021 IEEE/ACM 18th International Conference on Mining Software Repositories (MSR), May 17-19, 2021, Madrid, Spain. New York:IEEE Xplore, 2021:369-379.

      [10] ZENG Z R, ZHANG Y Q, ZHANG H T, et al. Deep just-in-time defect prediction:how far are we? [C]//Proceedings of the 30th ACM SIGSOFT International Symposium on Software Testing and Analysis, July 11-17, 2021, Virtual, Denmark. New York:ACM, 2021:427-438.

      [11] WANG W Y, YANG D Y. That′s so annoying?。。。篴 lexical and frame-semantic embedding based data augmentation approach to automatic categorization of annoying behaviors using #petpeeve tweets[C]//Proceedings of the 2015 Conference on Empirical Methods in Natural Language Processing, Lisbon, Portugal. Stroudsburg, PA, USA:Association for Computational Linguistics, 2015:2557-2563.

      [12] WEI J, ZOU K. EDA:easy data augmentation techniques for boosting performance on text classification tasks[C]//Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLP-IJCNLP), Hong Kong, China. Stroudsburg, PA, USA:Association for Computational Linguistics, 2019:6381-6387.

      [13] XIE Z A, WANG S I, LI J W, et al. Data noising as smoothing in neural network language models[EB/OL]. (2017-03-07)[2023-11-06]. https://arxiv.org/abs/1703. 02573.

      [14] ZHANG H Y, CISSE M, DAUPHIN Y N, et al. Mixup:beyond empirical risk minimization[EB/OL]. (2018-10-25)[2023-11-06]. https://arxiv.org/abs/1710.09412.

      [15] AHIN G G, STEEDMAN M. Data augmentation via dependency tree morphing for low-resource languages[C]//Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, Brussels, Belgium. Stroudsburg, PA, USA:Association for Computational Linguistics, 2018:5004-5009.

      [16] SENNRICH R, HADDOW B, BIRCH A. Improving neural machine translation models with monolingual data[C]//Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 1:Long Papers), Berlin, Germany. Stroudsburg, PA, USA:Association for Computational Linguistics, 2016:86-96.

      [17] CHEN J A, YANG Z C, YANG D Y. MixText:linguistically-informed interpolation of hidden space for semi-supervised text classification[C]//Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, Online. Stroudsburg, PA, USA:Association for Computational Linguistics, 2020:2147-2157.

      [18] CHEN X, ZHANG D, ZHAO Y Q, et al. Software defect number prediction:unsupervised vs supervised methods[J]. Information and Software Technology, 2019, 106:161-181.

      [19] ZHAO M Y, ZHANG L, XU Y, et al. EPiDA:an easy plug-in data augmentation framework for high performance text classification[C]// Proceedings of the 2022 Conference of the North American Chapter of the Association for Computational Linguistics:Human Language Technologies, Seattle, USA. Stroudsburg, PA, USA:Association for Computational Linguistics, 2022:4742-4752.

      [20] 李冉, 周麗娟, 王華. 面向類不平衡數(shù)據(jù)集的軟件缺陷預(yù)測模型[J]. 計算機應(yīng)用研究, 2018, 35(9):2806-2810.

      LI R, ZHOU L J, WANG H. Software defect prediction model based on class imbalanced datasets[J]. Application Research of Computers, 2018, 35(9):2806-2810. (in Chinese)

      (責(zé)任編輯:仇慧)

      收稿日期: 2023-12-06 接受日期: 2024-01-02

      基金項目: 南通市科技計劃面上項目(JC2023070)

      第一作者簡介: 楊帆(1980— ), 男, 工程師, 主要研究方向為軟件工程和網(wǎng)絡(luò)信息安全。E-mail:yangfan@jcet.edu.cn

      猜你喜歡
      深度學(xué)習(xí)
      從合坐走向合學(xué):淺議新學(xué)習(xí)模式的構(gòu)建
      面向大數(shù)據(jù)遠程開放實驗平臺構(gòu)建研究
      基于自動智能分類器的圖書館亂架圖書檢測
      搭建深度學(xué)習(xí)的三級階梯
      有體驗的學(xué)習(xí)才是有意義的學(xué)習(xí)
      電子商務(wù)中基于深度學(xué)習(xí)的虛假交易識別研究
      利用網(wǎng)絡(luò)技術(shù)促進學(xué)生深度學(xué)習(xí)的幾大策略
      考試周刊(2016年94期)2016-12-12 12:15:04
      MOOC與翻轉(zhuǎn)課堂融合的深度學(xué)習(xí)場域建構(gòu)
      大數(shù)據(jù)技術(shù)在反恐怖主義中的應(yīng)用展望
      深度學(xué)習(xí)算法應(yīng)用于巖石圖像處理的可行性研究
      长寿区| 崇文区| 竹溪县| 贡觉县| 高安市| 长垣县| 平潭县| 额敏县| 汝阳县| 会同县| 刚察县| 集安市| 湖北省| 清水县| 白城市| 花垣县| 洛川县| 图木舒克市| 永春县| 华阴市| 合川市| 大石桥市| 龙岩市| 濮阳县| 中牟县| 湖北省| 青河县| 沙雅县| 古浪县| 广水市| 连江县| 新密市| 双流县| 渝中区| 达州市| 孝感市| 荣成市| 二连浩特市| 牙克石市| 玛沁县| 潼南县|