李 莉,紀(jì)欣沅,宋 嵩
東北林業(yè)大學(xué) 信息與計(jì)算機(jī)工程學(xué)院,哈爾濱 150040
軟件缺陷預(yù)測[1-5]指的是通過對歷史軟件數(shù)據(jù)的學(xué)習(xí)得出缺陷預(yù)測模型,然后對新的軟件模塊進(jìn)行預(yù)測分析。缺陷預(yù)測的主要應(yīng)用場景為在軟件測試之前,預(yù)先分析出可能存在的缺陷。根據(jù)預(yù)測的目的可將缺陷預(yù)測模型大致分為兩類:(1)二分類問題的軟件缺陷預(yù)測模型,即預(yù)測軟件模塊是否含有缺陷。(2)基于缺陷數(shù)量的軟件模塊排序預(yù)測,并根據(jù)預(yù)測出的缺陷數(shù)量的多少給出模塊的排序。
基于二分類問題的軟件缺陷預(yù)測模型目的是預(yù)測軟件模塊是否含有缺陷,引導(dǎo)測試人員將注意力集中在包含缺陷的軟件模塊上,并調(diào)用測試資源進(jìn)行軟件模塊測試。此方法能有效指導(dǎo)測試人員,提高了測試效率,但是仍然無法正確預(yù)測所有的軟件模塊。如果將有缺陷的模塊錯(cuò)誤的預(yù)測為無缺陷的模塊時(shí),則存在不能及時(shí)發(fā)現(xiàn)缺陷的情況,如果將無錯(cuò)誤的模塊預(yù)測為有缺陷的模塊,會引起測試資源浪費(fèi)。
基于缺陷數(shù)量的軟件模塊排序預(yù)測,根據(jù)模型預(yù)測出的軟件模塊缺陷的數(shù)量,按照缺陷數(shù)量的多少進(jìn)行排序,集中資源優(yōu)先測試軟件缺陷數(shù)量多的模塊。在實(shí)際中,準(zhǔn)確缺陷數(shù)量預(yù)測具有極高的難度,較難給出精確的軟件模塊缺陷個(gè)數(shù),因此相關(guān)領(lǐng)域根據(jù)預(yù)測出的軟件模塊缺陷數(shù)量對軟件模塊進(jìn)行排序,根據(jù)排序結(jié)果分配測試資源。
2012年,Wang等[6]提出了一種基于狀態(tài)轉(zhuǎn)換模型的軟件缺陷數(shù)量預(yù)測方法。該方法利用歷史數(shù)據(jù)構(gòu)建狀態(tài)轉(zhuǎn)換模型,然后利用馬爾可夫鏈預(yù)測未來狀態(tài)下的缺陷個(gè)數(shù)。2015年,Rathore等[7]提出了利用遺傳算法和決策樹回歸算法進(jìn)行軟件模塊缺陷數(shù)量預(yù)測,實(shí)驗(yàn)采用promise 數(shù)據(jù)集,結(jié)果表明,該模型具有較好的預(yù)測效果。2016年,Rathore等[8]探究了決策樹回歸算法在同項(xiàng)目和跨項(xiàng)目兩種情況下軟件缺陷數(shù)量預(yù)測的性能,實(shí)驗(yàn)結(jié)果表明,在同項(xiàng)目中決策樹回歸算法具有更好的預(yù)測性能。2017年,Rathore等[9]提出了利用線性回歸的組合規(guī)則模型和梯度增強(qiáng)回歸組合規(guī)則模型進(jìn)行軟件缺陷數(shù)量預(yù)測,實(shí)驗(yàn)表明,梯度增強(qiáng)回歸則和規(guī)則模型具有較好的性能。2019年,Ni等[10]提出了基于Pareto的多目標(biāo)優(yōu)化算法,經(jīng)過試驗(yàn)證明取得了良好的效果。
2018年,馬子逸等[11]提出了面向軟件缺陷個(gè)數(shù)預(yù)測的混合特征選擇方法,該方法在保證預(yù)測性能的同時(shí)降低了特征的選擇時(shí)間。2018年,簡藝恒等[12]提出了基于數(shù)據(jù)過采樣和集成學(xué)習(xí)的軟件缺陷數(shù)目預(yù)測方法。實(shí)驗(yàn)結(jié)果表明相比于原始的預(yù)測方法,此方法在性能上有較大的提升。2018年,付忠旺等[13]提出了回歸算法對軟件缺陷個(gè)數(shù)預(yù)測模型性能的影響。實(shí)驗(yàn)結(jié)果表明梯度boosting回歸算法和貝葉斯嶺回歸算法具有更好的預(yù)測效果。2019年,李葉飛等[14]提出了針對軟件缺陷數(shù)預(yù)測的特征選擇方法。此模型能夠有效地移除冗余和無關(guān)的特征,構(gòu)建高效的軟件缺陷數(shù)預(yù)測模型。
通過對當(dāng)前軟件缺陷數(shù)量預(yù)測方法的研究,軟件缺陷數(shù)量預(yù)測的研究工作主要分成兩類:第一類是通過改進(jìn)回歸算法,提高缺陷預(yù)測的準(zhǔn)確度。當(dāng)數(shù)據(jù)集中特征維度過大時(shí),可能會造成維度災(zāi)難。第二類是通過研究特征之間的相關(guān)性,消除無關(guān)特征和冗余特征,提高軟件缺陷預(yù)測的準(zhǔn)確性。軟件模塊產(chǎn)生缺陷的情況多種多樣,僅憑借特征之間的相關(guān)性來判斷軟件缺陷產(chǎn)生的條件是不夠的。
針對以上問題,本文提出了回環(huán)軟件缺陷數(shù)量預(yù)測模型(PNSDL)。本文從特征之間的相關(guān)性和特征對于數(shù)據(jù)簇的貢獻(xiàn)度出發(fā)進(jìn)行特征提取,將學(xué)習(xí)器的性能作為最佳特征子集選擇的評價(jià)準(zhǔn)則。通過分析軟件缺陷的產(chǎn)生和不同特征之間的聯(lián)系,利用反距離加權(quán)的方式將學(xué)習(xí)器和數(shù)據(jù)動(dòng)態(tài)的進(jìn)行集成,最終得出軟件缺陷數(shù)量預(yù)測模型。
聚類分析的基本思想是根據(jù)物以類聚的原理,將數(shù)據(jù)分成不同的簇,簇與簇之間的相似度盡可能的小,而簇內(nèi)數(shù)據(jù)之間具有較高的相似度。在軟件缺陷數(shù)據(jù)集中,軟件模塊度量元之間的關(guān)系決定了軟件模塊是否產(chǎn)生缺陷和產(chǎn)生缺陷的數(shù)量,因此需要采取必要措施挖掘不同度量元組合和產(chǎn)生缺陷數(shù)量之間的關(guān)系。
本文采用改進(jìn)的密度峰值聚類[15],此方法不需要預(yù)先指定簇的個(gè)數(shù),改進(jìn)了最初的密度峰值聚類需要手動(dòng)選取簇中心的缺陷,有效避免了人工選取存在的誤差。
當(dāng)數(shù)據(jù)的規(guī)模逐漸增大,數(shù)據(jù)維度也隨之增加。進(jìn)行特征選擇可以減少數(shù)據(jù)維度,刪除無用的度量元,有效地提高數(shù)據(jù)的處理效率。特征選擇主要分為三類:過濾式特征選擇、包裹式特征選擇、嵌入式特征選擇。本文采用了包裹式特征選擇,將學(xué)習(xí)器的性能作為特征子集的評價(jià)標(biāo)準(zhǔn)。
回環(huán)軟件缺陷數(shù)量預(yù)測模型主要分成兩部分,即回環(huán)特征選擇和加權(quán)集成預(yù)測。模型整體流程如圖1所示。
1.2.1 回環(huán)特征選擇
在回環(huán)特征選擇階段,選擇融合了改進(jìn)密度峰值聚類的包裹式回環(huán)特征選擇方法,在每一次回環(huán)中進(jìn)行特征選擇,并訓(xùn)練出學(xué)習(xí)器。首先對數(shù)據(jù)進(jìn)行聚類分析,劃分出不同的簇,訓(xùn)練學(xué)習(xí)器,篩選出貢獻(xiàn)率最大的特征作為初始特征,其余特征作為備選特征。接下來根據(jù)初始特征重新將數(shù)據(jù)進(jìn)行聚類劃分,然后訓(xùn)練不同的學(xué)習(xí)器,并測試學(xué)習(xí)器,得出測試指標(biāo),依據(jù)測試指標(biāo)選擇出的特征重新進(jìn)行數(shù)據(jù)提取,此時(shí)作為第一次回環(huán)。在回環(huán)選擇中,當(dāng)測試指標(biāo)不再減小,或者備選特征組無任何特征時(shí),回環(huán)結(jié)束。否則,在備選特征組中選擇一個(gè)特征加入初始特征中重新進(jìn)行聚類、特征選擇并持續(xù)回環(huán)。偽代碼如下所示:
圖1 回環(huán)軟件缺陷數(shù)量預(yù)測流程圖
輸入:數(shù)據(jù)集
輸出:特征組和學(xué)習(xí)器
1. 對數(shù)據(jù)進(jìn)行聚類,選擇聚類中心icl
2. 數(shù)據(jù)劃分到不同的簇cl
3. 采用嶺回歸模型對各簇進(jìn)行訓(xùn)練,
4. 提取重要特征組成特征組features,其余特征作為備選特征sum_features
5. For sum_features數(shù)量-features數(shù)量to 0 do
6. Fori=0 tosum_features數(shù)量do
7. 臨時(shí)特征組temp_features=features+sum_features[i]
8. 根據(jù)temp_features將數(shù)據(jù)重新進(jìn)行聚類;
9. 訓(xùn)練學(xué)習(xí)器模型,測試得到指標(biāo)數(shù)據(jù);
10. End for
11. 根據(jù)指標(biāo)選擇最優(yōu)特征,將特征加入特征組features,減少sum_features中的特征;
12. If特征指標(biāo)不再減小
13. 當(dāng)前features為最優(yōu)特征組
14. 當(dāng)前特征組對應(yīng)的各類簇的學(xué)習(xí)器為最優(yōu)簇學(xué)習(xí)器
15. Break
16. End if
17. End for
回環(huán)特征選擇流程如圖2所示,具體操作步驟如下:
(1)數(shù)據(jù)預(yù)處理。數(shù)據(jù)歸一化,把數(shù)據(jù)的范圍設(shè)定在0~1之間,降低特征數(shù)據(jù)對于預(yù)測模型的影響。
(2)聚類分析。計(jì)算每一條數(shù)據(jù)fi其自身的密度ρi,與高密度點(diǎn)之間的距離δi。用dij表示數(shù)據(jù)fi和數(shù)據(jù)fj之間的歐式距離,則dij的計(jì)算如公式(1)所示:
其中,m表示特征的個(gè)數(shù),χ表示每一條數(shù)據(jù)所對應(yīng)的特征。數(shù)據(jù)fi的自身密度ρi表示為與其距離小于截?cái)嗑嚯xdc的所有特征個(gè)數(shù),其定義如公式(2)所示:
其中,X作為一種二值函數(shù),當(dāng)dij?dc<0 時(shí),函數(shù)X的結(jié)果為1;當(dāng)dij?dc>0 時(shí),函數(shù)X的結(jié)果為0;dc為截?cái)嗑嚯x。數(shù)據(jù)fi與高密度點(diǎn)之間的距離δi的計(jì)算方法為,將密度按照從大到小的順序排列:ρi>ρj>ρk>…。δi的大小為密度大于ρi的密度點(diǎn)中,距離fi最近的點(diǎn)的歐式距離,當(dāng)fi的密度最大,則δi的大小為距離fi最遠(yuǎn)的點(diǎn)的歐式距離。
對于聚類中心的選取,馬春來等[15]將密度峰值聚類方法進(jìn)行改進(jìn)。首先計(jì)算聚類中心的指標(biāo)γ,如公式(3)所示:
其中,z(·)為歸一化函數(shù),然后根據(jù)γ的值進(jìn)行降序排列,尋找到γ趨勢變化最大的點(diǎn)γc,并將γ>γc的點(diǎn)均作為聚類中心。
(3)特征提取。依據(jù)聚類中心,將數(shù)據(jù)劃分成不同的簇,訓(xùn)練簇對應(yīng)的學(xué)習(xí)器。依據(jù)特征的貢獻(xiàn)度,得出特征排名,將每一個(gè)簇的前三種特征進(jìn)行提取,組成初始特征組,其余特征作為備選特征組。
(4)數(shù)據(jù)劃分。根據(jù)初始特征組重新對數(shù)據(jù)進(jìn)行聚類,得到新的數(shù)據(jù)簇,訓(xùn)練學(xué)習(xí)器,并得到測試指標(biāo)。
(5)回環(huán)特征提取。依據(jù)測試指標(biāo)從備選特征組中選取一個(gè)特征,加入初始特征組,重復(fù)進(jìn)行第(4)步,直到測試指標(biāo)不再改善,或者備選特征組的特征全部提取出。此時(shí)初始特征組包含的特征就是最優(yōu)特征,各簇的學(xué)習(xí)器為最優(yōu)簇學(xué)習(xí)器。
圖2 回環(huán)特征選擇流程圖
1.2.2 反距離加權(quán)集成預(yù)測
本文采用反距離加權(quán)[16]集成的方式進(jìn)行學(xué)習(xí)器的集成。通過聚類分析,具有相似特征的數(shù)據(jù)被分到同一個(gè)簇。在同一個(gè)簇中的軟件模塊所產(chǎn)生的缺陷數(shù)量和類型相似,但是軟件模塊產(chǎn)生缺陷的原因多種多樣,產(chǎn)生的模塊和多個(gè)簇都具有相關(guān)性,不能簡單的劃分到某一個(gè)簇中進(jìn)行判斷。本文提出的反距離加權(quán)集成方法是一種動(dòng)態(tài)的加權(quán)集成方法。通過測量待預(yù)測數(shù)據(jù)到各簇中心的距離,動(dòng)態(tài)的計(jì)算各簇學(xué)習(xí)器在預(yù)測此條數(shù)據(jù)中所占的權(quán)重。將各簇學(xué)習(xí)器的預(yù)測值進(jìn)行加權(quán)集成,得到最終預(yù)測結(jié)果。偽代碼如下所示:
輸入:待預(yù)測數(shù)據(jù)
輸出:預(yù)測結(jié)果
1. 計(jì)算待預(yù)測數(shù)據(jù)到各簇中心的歐式距離dist
2. 得到數(shù)據(jù)在各簇學(xué)習(xí)器中的預(yù)測值result_i
3. sum_value=sum(1/dist)
4. 各簇對應(yīng)學(xué)習(xí)器的權(quán)值w_i=(1/dist)/sum_value
5. sum_result=sum(w_i* result_i)
反距離加權(quán)集成流程如圖3所示。
圖3 反距離加權(quán)集成流程圖
具體步驟如下所示:
(1)計(jì)算數(shù)據(jù)到各個(gè)數(shù)據(jù)簇中心的距離dist,距離采用歐式距離的計(jì)算方式。
(2)根據(jù)到各個(gè)數(shù)據(jù)簇中心的距離,采用反距離公式,計(jì)算簇所對應(yīng)的學(xué)習(xí)器的權(quán)值,作為此學(xué)習(xí)器的權(quán)重。計(jì)算方法如公式(4)所示:
(3)集成學(xué)習(xí),將不同學(xué)習(xí)器預(yù)測出的結(jié)果result和學(xué)習(xí)器對應(yīng)的權(quán)重w相乘,最后相加得到的結(jié)果就是最終的預(yù)測結(jié)果。計(jì)算方法如公式(5)所示:
sum_result為集成的預(yù)測結(jié)果,resulti為各學(xué)習(xí)器預(yù)測的結(jié)果,wi為對應(yīng)的權(quán)重。得到集成的預(yù)測結(jié)果后,將預(yù)測結(jié)果根據(jù)缺陷數(shù)量進(jìn)行排序,最終得到軟件模塊排名。
在本文的實(shí)驗(yàn)研究中,采用了公開的promise 數(shù)據(jù)集,并提取了數(shù)據(jù)集中重要20 種特征:加權(quán)方法數(shù)(wmc)、繼承樹深度(dit)、孩子數(shù)(noc)、對象類之間的耦合度(cbo)、類的響應(yīng)(rfc)、內(nèi)聚缺乏度(lcom)、傳入耦合(ca)、傳出耦合(ce)、公開方法數(shù)(npm)、方法間的組件數(shù)(lcom3)、代碼行數(shù)(loc)、數(shù)據(jù)訪問度量(dam)、聚合度量(moa)、功能抽象度量(mfa)、方法間的內(nèi)聚度(cam)、繼承耦合(ic)、方法間耦合(cbm)、平均方法復(fù)雜度(amc)、最大Mc Cabe環(huán)形復(fù)雜度(max_cc)、平均Mc Cabe 環(huán)形復(fù)雜度(avg_cc)。如表1 詳細(xì)列出了promise數(shù)據(jù)集中這些項(xiàng)目的統(tǒng)計(jì)信息。
表1 數(shù)據(jù)集統(tǒng)計(jì)信息
在軟件模塊缺陷數(shù)量預(yù)測中,存在某一種或幾種度量元數(shù)值過大的情況,過大的度量元會影響到模型的測試準(zhǔn)確度,因此采用數(shù)據(jù)歸一化的方法將所有的度量元數(shù)值范圍設(shè)定為0到1之間。本文采用min-max標(biāo)準(zhǔn)化方法,對原始數(shù)據(jù)進(jìn)行線性變換,使結(jié)果落在0 和1 之間,轉(zhuǎn)換函數(shù)如公式所示:
其中x為轉(zhuǎn)換前的度量元數(shù)值,x?為轉(zhuǎn)換后的度量元數(shù)值,min為度量元中最小值,max為度量元中最大值。
為了評估模型在軟件缺陷數(shù)量預(yù)測中的性能,本次實(shí)驗(yàn)采用了平均絕對誤差(MAE)作為性能評價(jià)指標(biāo)。平均絕對誤差表示預(yù)測值和觀測值之間絕對誤差的平均值,反映出預(yù)測值和真實(shí)值之間的差別。
為了驗(yàn)證PNSDL 方法的預(yù)測性能,因此本文提出了以下兩個(gè)問題進(jìn)行驗(yàn)證:
(a)相對于其他的一些基準(zhǔn)特征提取方法,本模型的特征提取部分是否有具有良好的效果?
(b)相對于其他軟件缺陷預(yù)測模型,本文提出的PNSDL 方法模型是否有效地提高了軟件缺陷預(yù)測準(zhǔn)確率?
為了回答上述提出的問題,針對(a)問題本文選取了4種特征選擇方法,基于遞歸特征消除的特征選擇方法(RFE)、基于卡方檢驗(yàn)的特征選擇方法(chi2)、基于樹模型的特征選擇方法(TBFS)、基于L1懲罰項(xiàng)檢驗(yàn)的特征選擇方法(L1BFS),作為本文特征選擇的比較對象。為了評價(jià)特征選擇模型是否具有良好的效果,本文統(tǒng)一將嶺回歸作為特征選擇的預(yù)測模型,以最終的預(yù)測結(jié)果的平均絕對誤差作為評價(jià)標(biāo)準(zhǔn)。分別測試每一個(gè)特征選擇方法在10個(gè)數(shù)據(jù)集中所取得的效果。
針對(b)問題,為了評價(jià)提出的軟件缺陷預(yù)測模型的有效性,本文選用了7 個(gè)缺陷預(yù)測模型進(jìn)行比較:基于線性回歸的組合規(guī)則缺陷模型(LRCR)、基于梯度增強(qiáng)回歸組合規(guī)則的缺陷模型(GRCR)、基于線性回歸的缺陷預(yù)測模型(LR)、基于多層感知機(jī)回歸的缺陷預(yù)測模型(MLP)、基于基因編程的缺陷預(yù)測模型(GP)、基于負(fù)二項(xiàng)回歸的缺陷預(yù)測模型(NBR)、基于零膨脹泊松回歸的缺陷預(yù)測模型(ZIP)。對比實(shí)驗(yàn)數(shù)據(jù)來源于Rathore等[8]文中提供的實(shí)驗(yàn)數(shù)據(jù)。
在實(shí)驗(yàn)研究中,由于密度峰值聚類算法需要預(yù)先指定截距,Rodriguez 等[17]經(jīng)過實(shí)驗(yàn)研究將截距的選取范圍鎖定在1%~2%,因此本實(shí)驗(yàn)采用2%作為截距。同時(shí)在回歸模型的選擇上,本實(shí)驗(yàn)采用了嶺回歸作為學(xué)習(xí)器。
在訓(xùn)練集和測試集的劃分方面,本實(shí)驗(yàn)采用sklearn中提供的數(shù)據(jù)劃分方法train_test_split,將數(shù)據(jù)按照7∶3的比例方式隨機(jī)劃分訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)。實(shí)驗(yàn)在以下配置的臺式機(jī)上運(yùn)行:操作系統(tǒng)為Win10 64位,CPU為Intel?Core?i7-6700CPU @3.40 GHz 3.41 GHz,內(nèi)存4 GB。
(1)針對研究問題(a)
本實(shí)驗(yàn)在promise數(shù)據(jù)集上對特征選擇模型進(jìn)行了實(shí)驗(yàn)研究,使用平均絕對誤差作為評估指標(biāo)。表2記錄了各個(gè)特征選擇模型在10組實(shí)驗(yàn)數(shù)據(jù)中分別取得的實(shí)驗(yàn)結(jié)果。
表2 基于平均絕對誤差的特征選擇模型的性能
在10 組實(shí)驗(yàn)數(shù)據(jù)中,PNSDL 特征選擇方法取得了7次勝利,平均誤差相較于其余4種特征選擇模型最優(yōu),在誤差率方面,本文特征選擇模型相比于RFE、chi2、TBFS、L1BFS來講分別提升了11.3%、4.5%、4.4%和5.4%。不難看出,本文模型相較于其余4種特征選擇模型來講具有更好的數(shù)據(jù)適用性,提取出的有效特征更加有效,可以在預(yù)測中取得更好的效果。
(2)針對研究問題(b)
實(shí)驗(yàn)在promise數(shù)據(jù)集上對本文模型的整體性能進(jìn)行了實(shí)驗(yàn)研究,使用平均絕對誤差作為評估指標(biāo),并將本文模型與7種基準(zhǔn)方法進(jìn)行了比較。表3給出了這些方法在平均絕對誤差指標(biāo)上的結(jié)果。
表3 中,第一列為項(xiàng)目名稱,第二列為本文模型在平均絕對誤差指標(biāo)下取得的結(jié)果,其余列為7種預(yù)測方法在平均絕對誤差指標(biāo)下取得的結(jié)果。在每一行中,最好的結(jié)果被加粗顯示。10 個(gè)項(xiàng)目中,PNSDL 預(yù)測模型取得7次勝利,并且10次項(xiàng)目的平均誤差相對于其余模型中效果最佳,最大誤差相比于其余模型最小,最小誤差也低于其余模型。本文模型相比于其余模型在平均絕對誤差的指標(biāo)下,效果最好。在算法誤差改善方面(見表4),PNSDL 相比于LRCR、GRCR、LR、MLP、GP、NBR、ZIP分別提升了10.36%、28.74%、13.51%、36.61%、25.30%、60.14%、54.72%。
表3 基于平均絕對誤差的各預(yù)測模型的性能
表4 PNSDL相比于其他算法誤差改善率%
綜上,本文模型在進(jìn)行缺陷預(yù)測的同時(shí),也進(jìn)行有效的特征提取。每次完成預(yù)測后剩余的特征數(shù)均小于數(shù)據(jù)的總特征數(shù),證明在軟件缺陷預(yù)測中,冗余特征和無關(guān)特征影響軟件缺陷預(yù)測模型的性能。本文模型移除這些特征,有效地提高了模型的預(yù)測性能。
為提升軟件缺陷預(yù)測精準(zhǔn)度,本文提出了回環(huán)軟件缺陷數(shù)量預(yù)測模型。
(1)通過采用回環(huán)特征選擇的方法,選擇的特征更加有效,相比于實(shí)驗(yàn)中對比的4 種特征提取方法,此方法對于不同的數(shù)據(jù)具有更好的適用性。
(2)考慮到產(chǎn)生軟件模塊缺陷之間特征的關(guān)聯(lián)性,采用反距離加權(quán)集成的方法,有效地提高了軟件缺陷數(shù)量預(yù)測的準(zhǔn)確性,更加有利于對模塊進(jìn)行排序。
實(shí)驗(yàn)結(jié)果表明,相比于原有的軟件缺陷數(shù)量預(yù)測模型,軟件缺陷數(shù)目預(yù)測準(zhǔn)確性方面有明顯的提高。
在后續(xù)的工作中,將進(jìn)一步提升軟件缺陷預(yù)測模型的穩(wěn)定性,降低預(yù)測結(jié)果和真實(shí)值之間的誤差,并進(jìn)一步優(yōu)化模型,使其適用于跨項(xiàng)目軟件缺陷預(yù)測。