• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于ExtraTree的軟件缺陷預(yù)測方法研究

    2022-05-05 07:21:26王馨煜崔藝凝段盈盈
    智能計算機與應(yīng)用 2022年3期
    關(guān)鍵詞:預(yù)測出軟件缺陷分類器

    王馨煜,崔藝凝,段盈盈

    (北京信息科技大學(xué) 計算機學(xué)院,北京 100101)

    0 引 言

    隨著時代的發(fā)展和科技進步,計算機在人們的生活中越來越多地被使用。軟件是計算機領(lǐng)域中非常重要的一部分,軟件存在的缺陷也不可小覷。軟件缺陷預(yù)測技術(shù)旨在預(yù)測出模型中的缺陷數(shù)和缺陷傾向性,從而根據(jù)預(yù)測結(jié)果對資源進行合理的分配,是缺陷檢測技術(shù)的重要輔助手段。早期,研究人員通過經(jīng)驗來估計模型中可能存在的缺陷;后來出現(xiàn)了軟件體積度量元和缺陷的關(guān)系式,用關(guān)系式來計算系統(tǒng)在測試之前存在的缺陷數(shù);有研究者將代碼對應(yīng)具體文檔位置,從而給出了缺陷率的公式;也有研究者假設(shè)模塊規(guī)模符合指數(shù)分布,給出了缺陷密度的估算公式。

    融合多分類器模型對軟件缺陷預(yù)測技術(shù)有重大的研究意義,通過融合多分類器模型,不僅可以發(fā)現(xiàn)不同模型之間潛在的聯(lián)系,還可以度量軟件的可靠性。另外,融合多個效果較弱的分類器為一個性能較好的多分類器,還可以提高弱分類器的預(yù)測性能。

    本文首先通過選擇不同的分類器模型對提取的軟件模塊進行預(yù)測并輸出結(jié)果;其次,對單個分類器模型與融合后的分類器模型的預(yù)測結(jié)果進行比對;采用基于集成學(xué)習(xí)的靜態(tài)軟件缺陷預(yù)測方法對軟件模塊缺陷進行預(yù)測。

    1 相關(guān)研究

    1.1 背景

    軟件缺陷預(yù)測技術(shù)旨在預(yù)測出軟件模塊的缺陷,明確存在缺陷模塊的缺陷數(shù)和缺陷傾向性。軟件模塊存在缺陷可能會造成財產(chǎn)損失和安全隱患。如:1996年6月因?qū)Ш较到y(tǒng)的計算機軟件故障導(dǎo)致歐洲“阿麗亞娜”號航天飛機墜毀;1999年美國火星探測飛船墜毀事件,不包括損失時間,其工程成本耗費3.27億美元。軟件缺陷預(yù)測技術(shù)是避免軟件運行故障,減少不必要損失的重要手段,該技術(shù)自開始研究后就受到了眾多的關(guān)注。

    早期的軟件缺陷通過員工的經(jīng)驗來估計,后來Akiyama明確給出了最早的軟件缺陷與代碼行的關(guān)系量化式,但只是在程序開始前初步對可能存在的軟件缺陷進行估算,并不完美。隨著測試軟件的規(guī)模與其復(fù)雜度的逐步提高,開發(fā)者更加重視的是軟件缺陷預(yù)測技術(shù)的精準(zhǔn)度及模塊測試的正確率是否能夠保證在一個穩(wěn)定的范圍里,是否可以更加高效地完成測試。成熟的軟件缺陷預(yù)測技術(shù)可以在軟件發(fā)布之前預(yù)測出真正有缺陷的程序模塊,從而提高軟件的質(zhì)量,減少資源消耗。

    1.2 國內(nèi)外研究現(xiàn)狀

    目前,國內(nèi)外研究人員從不同的角度研究了靜態(tài)缺陷預(yù)測和數(shù)據(jù)驅(qū)動缺陷預(yù)測等方法。在異常值檢測和處理、高維度數(shù)據(jù)、類不平衡問題和數(shù)據(jù)差異等方面進行了研究,主要使用機器學(xué)習(xí)和統(tǒng)計方法來預(yù)測缺陷模塊。如:Freund和Schapire研究的Adaboost迭代算法,可以增強預(yù)測模型的精度;Wolpert提出的Stacking算法,可以集成若干基分類器的分類性能,從而提高分類效果等。

    越來越多的預(yù)測模型的出現(xiàn)使研究者的注意力更多地集中在模型預(yù)測精度上,實驗數(shù)據(jù)集的差異性和單一分類器預(yù)測性能的局限性是影響軟件缺陷預(yù)測精度的兩大原因。針對數(shù)據(jù)集的差異性,Sun等提出了通過特征選擇提高預(yù)測精度的方法;Xu等提出了Logistic方法通過尋找最佳擬合參數(shù)來提高預(yù)測效率;針對單一分類器預(yù)測性能局限性的問題,Zhu等人提出了無監(jiān)督的特征選擇方法。除此之外,集成學(xué)習(xí)方法也是解決單一分類器的預(yù)測性能不夠泛化問題的重要途徑,通過將多個弱分類器集成為一個強分類器,進而提高軟件缺陷預(yù)測的性能。

    1.3 本文研究內(nèi)容

    本文針對不同預(yù)測模型對軟件缺陷預(yù)測結(jié)果差異性較大的問題,對結(jié)構(gòu)復(fù)雜、類別不平衡、缺乏歷史數(shù)據(jù)的靜態(tài)軟件缺陷模塊采用基于集成學(xué)習(xí)的軟件靜態(tài)缺陷預(yù)測方法,利用已有的缺陷數(shù)據(jù)集,選擇Extra-Trees(極度隨機樹)來將多個弱分類器集成,并通過實驗對多個分類模型進行了驗證,并對融合前后各個模型的預(yù)測結(jié)果進行了比對。

    在實驗中使用SMOTE方法(Synthetic Minority Oversampling Technique)對數(shù)據(jù)集進行預(yù)處理,選擇5種基分類器并結(jié)合Extra-Trees集成方法進行驗證。為了能夠有效評價分類結(jié)果,本文選擇了準(zhǔn)確率、召回率、F值3個業(yè)界認(rèn)可的評價指標(biāo)對預(yù)測結(jié)果進行評價。

    2 相關(guān)理論與技術(shù)基礎(chǔ)

    2.1 SMOTE采樣

    為解決樣本少,特征缺失的問題,Chawla等人提出了SMOTE過采樣方法,可以減少模型的過擬合。在訓(xùn)練模型時,樣本數(shù)量少的類所能提供的信息也比較少,SMOTE方法通過對少數(shù)類樣本的分析,將少數(shù)類樣本合成新的樣本并加入數(shù)據(jù)集中,重復(fù)分析、合成過程直到達(dá)到數(shù)據(jù)樣本平衡。

    生成新樣本的方法如式(1)所示。

    其中,P表示新樣本;x是少數(shù)類樣本點,對于每一個少數(shù)類樣本x,從其k近鄰中隨機選擇若干個樣本,假設(shè)選擇的近鄰為y;N表示生成樣本數(shù)量。

    2.2 基于ExtraTree的缺陷預(yù)測方法

    集成學(xué)習(xí)是解決類不平衡問題的方法之一,從數(shù)據(jù)中顯式或隱式地學(xué)習(xí)多個模型,將這些模型有效結(jié)合,得到可靠、準(zhǔn)確的預(yù)測。單一分類器模型的測試能力逐漸趨于飽和,并且對缺陷模塊預(yù)測的范圍并不具有廣泛性,通過結(jié)合多個單一學(xué)習(xí)器,并聚合其預(yù)測結(jié)果的學(xué)習(xí)任務(wù),聚集多個分類方法來提高分類的精度,可以獲得比單一學(xué)習(xí)器更顯著的泛化性能,也可以稱作多分類系統(tǒng)。

    目前,集成學(xué)習(xí)的主要問題就是如何將多個弱分類器合成一個強分類器,有效提高預(yù)測的精度。在實驗中采用了ExtraTree(極度隨機樹)來集成多分類器模型,但使用這種方法前需要檢查樣本的數(shù)據(jù)是否適用ExtraTree缺陷預(yù)測方法。ExtraTree具有很少的關(guān)鍵超參數(shù)和用于配置這些超參數(shù)的合理啟發(fā)式方法,能夠處理很高維度的數(shù)據(jù)。相比于從訓(xùn)練數(shù)據(jù)集的引導(dǎo)樣本開發(fā)每個決策樹的隨機森林,ExtraTree更適合整個訓(xùn)練數(shù)據(jù)集上的每個決策樹,每個決策樹都采用原始訓(xùn)練集,不會隨機采樣,訓(xùn)練速度更快。

    2.3 分類器模型評價指標(biāo)

    軟件缺陷預(yù)測模型可用于對軟件模塊的缺陷情況作分類處理,評價指標(biāo)用于區(qū)分預(yù)測模型的優(yōu)劣。在本次實驗中選取了軟件缺陷預(yù)測常用的評價指標(biāo):準(zhǔn)確率(Accur acy),精確率(Precision),召回率(Recall)以及F1。

    準(zhǔn)確率()又叫查準(zhǔn)率,是被正確預(yù)測出的有缺陷的樣本數(shù)量與被預(yù)測為無缺陷的樣本數(shù)量之比,如式(2):

    1可以看作是模型精確率和召回率的一種調(diào)和平均,如式(4):

    其中,表示被正確預(yù)測出的有缺陷的樣本數(shù)量;表示被預(yù)測為有缺陷的無缺陷樣本數(shù)量;表示被預(yù)測為無缺陷的有缺陷樣本數(shù)量;表示被正確預(yù)測出的無缺陷樣本數(shù)量。

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

    3.1 數(shù)據(jù)集

    本實驗采用數(shù)據(jù)集為NASA公布的MDP軟件缺陷數(shù)據(jù)集,來自于十三個實際軟件項目,數(shù)據(jù)集的基本信息包括樣本集名稱、模塊總數(shù)、缺陷模塊數(shù)、屬性個數(shù)以及缺陷所占比例,不同數(shù)據(jù)集缺陷所占比例不同。從NASA MDP數(shù)據(jù)集中選取缺陷所占比例不同的數(shù)據(jù)子集KC1、KC3、MC2、MW1、PC1、PC3、PC4作為本文的實驗數(shù)據(jù)集,見表1。

    表1 NASA MDP數(shù)據(jù)子集Tab.1 NASA MDP Subset of the data

    召回率(),又叫查全率,也就是被正確預(yù)測出的有缺陷的樣本數(shù)量與實際有缺陷的樣本數(shù)量之比,如式(3):

    3.2 實驗方法

    選擇的是決策樹分類器、隨機森林分類器、梯度提升分類器、基于直方圖的梯度提升分類器、自適應(yīng)增強分類器5種基礎(chǔ)模型,通過極度隨機樹的集成學(xué)習(xí)方法融合5個基礎(chǔ)模型。

    為了保證所對模型的數(shù)據(jù)對比的有效性,每個實驗的過程是相同的,5種基礎(chǔ)模型以及極度隨機樹集成學(xué)習(xí)方法在NASA的數(shù)據(jù)子集上進行一次十字交叉驗證,使、、13個對比指標(biāo)數(shù)據(jù)進行同一數(shù)據(jù)集不同模型的數(shù)值對比。

    3.3 實驗結(jié)果分析

    5個基礎(chǔ)模型以及極度隨機樹集成學(xué)習(xí)方法在7個數(shù)據(jù)集中進行實驗,得到的指標(biāo)數(shù)據(jù)見表2。從表2可以看出,極度隨機樹集成學(xué)習(xí)方法在KC3、MC2、MW1、PC3這4個數(shù)據(jù)集上達(dá)到了比其他5種基礎(chǔ)模型更好的1值,說明極度隨機樹對于特定數(shù)據(jù)集可以將弱分類器集成融合成一個較強分類器。隨機森林分類器、基于直方圖的梯度提升分類器、自適應(yīng)增強分類器分別在KC1、PC4、PC1這3個數(shù)據(jù)集上1值達(dá)到最佳,該現(xiàn)象與KC1、PC4、PC13個數(shù)據(jù)集的類不平衡有一定關(guān)系。

    表2 NASA MDP數(shù)據(jù)集實驗結(jié)果Tab.2 NASA MDP Experimental results of the data sets

    4 結(jié)束語

    本文基于極度隨機數(shù)集成學(xué)習(xí)方法對決策樹分類器、隨機森林分類器、梯度提升分類器、基于直方圖的梯度提升分類器和自適應(yīng)增強分類器5個單個弱學(xué)習(xí)器進行了融合;用各個單分類器及基于ExtraTree的集成分類器分別對7個數(shù)據(jù)集進行了缺陷預(yù)測。本文就是選用了極度隨機樹這一集成學(xué)習(xí)方法,對5個性能較差的弱分類器進行了融合得到一個多分類器融合模型,然后對比單個分類器的預(yù)測結(jié)果和多分類器的預(yù)測結(jié)果,比較兩者的預(yù)測性能,對軟件缺陷預(yù)測模型的預(yù)測性能問題進行了研究。預(yù)測的結(jié)果得出融合后的學(xué)習(xí)器在選中的7個數(shù)據(jù)集中有4個數(shù)據(jù)集預(yù)測出的F1值都是優(yōu)于任何一個單分類器的,在其他3個數(shù)據(jù)集中預(yù)測出的F1均處于第二或第三的位置。該集成學(xué)習(xí)方法無法在每個數(shù)據(jù)集中都達(dá)到最好的預(yù)測性能,后續(xù)將改進缺陷預(yù)測模塊分布的稀疏性引起的相關(guān)問題。

    猜你喜歡
    預(yù)測出軟件缺陷分類器
    基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
    基于NPE-SVM的軟件缺陷預(yù)測模型
    BP-GA光照分類器在車道線識別中的應(yīng)用
    電子測試(2018年1期)2018-04-18 11:52:35
    吸引力無法則
    開源程序的軟件缺陷分布特征的量化分析研究
    加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
    結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
    量體薦衣
    基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
    軟件缺陷管理方案分析
    商都县| 美姑县| 沛县| 喀喇| 高雄县| 金寨县| 南陵县| 呈贡县| 镇赉县| 凤山市| 封开县| 临澧县| 大英县| 鹿泉市| 宜春市| 延边| 保康县| 霸州市| 南丹县| 杭锦旗| 六枝特区| 嘉定区| 曲松县| 柏乡县| 渑池县| 乐亭县| 遵义市| 通辽市| 若尔盖县| 曲阳县| 独山县| 铜陵市| 青铜峡市| 克山县| 尉氏县| 昭平县| 梨树县| 南昌县| 潜山县| 湖南省| 莱阳市|