• 
    

    
    

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

      基于遷移學(xué)習(xí)的軟件缺陷預(yù)測(cè)算法研究

      2019-12-05 08:35:54何金虎吳翔虎曲明成
      關(guān)鍵詞:遷移學(xué)習(xí)

      何金虎 吳翔虎 曲明成

      摘 要:軟件缺陷預(yù)測(cè)技術(shù)可以用于預(yù)測(cè)軟件缺陷是否存在以及其可能存在的數(shù)目,以決定軟件是否可以交付,對(duì)于軟件性能的提升和質(zhì)量的保證有著重要的意義。遷移學(xué)習(xí)則可以利用不同軟件項(xiàng)目中的數(shù)據(jù),進(jìn)行跨項(xiàng)目的軟件缺陷預(yù)測(cè)工作,以應(yīng)對(duì)傳統(tǒng)缺陷預(yù)測(cè)算法中數(shù)據(jù)不足的問題。本文首先闡述了缺陷預(yù)測(cè)和遷移學(xué)習(xí)的相關(guān)理論研究現(xiàn)狀及其分類,然后對(duì)現(xiàn)有的TrAdaboost算法進(jìn)行優(yōu)化,修改了迭代分類器的評(píng)估指標(biāo),并結(jié)合實(shí)驗(yàn)證明了其合理性和優(yōu)越性。

      關(guān)鍵詞: 遷移學(xué)習(xí);缺陷預(yù)測(cè);不平衡數(shù)據(jù)

      【Abstract】 Software defect prediction technology can be used to predict the existence of software defects and the number of possible defects to determine whether software can be delivered. It is of great significance for software performance improvement and quality assurance. Transfer learning can use the data in different software projects to perform software defect prediction work across projects to solve the problem of insufficient data in traditional defect prediction algorithms. This paper first expounds the current theoretical research and classification of defect prediction and transfer learning, then optimizes the existing TrAdaboost algorithm, modifies the evaluation index of the iterative classifier, and proves its rationality and superiority by combining experiments.

      【Key words】 ?transfer learning; defect prediction; unbalanced data

      0 引 言

      軟件缺陷,通常指的是軟件實(shí)現(xiàn)未能滿足客戶需求。通過對(duì)軟件缺陷的預(yù)測(cè)和發(fā)現(xiàn),可以更好地提高軟件產(chǎn)品質(zhì)量?,F(xiàn)有的軟件缺陷預(yù)測(cè)方法多為通過對(duì)大量已標(biāo)記的軟件缺陷樣本的訓(xùn)練,構(gòu)建一個(gè)軟件缺陷預(yù)測(cè)模型,再對(duì)一個(gè)新的軟件項(xiàng)目進(jìn)行預(yù)測(cè),以判定其內(nèi)部各個(gè)模塊中是否包含缺陷。已有的模型構(gòu)建算法通常是應(yīng)用傳統(tǒng)的機(jī)器學(xué)習(xí)算法,并結(jié)合bagging和Boosting的思想,對(duì)原始數(shù)據(jù)集進(jìn)行訓(xùn)練。但在實(shí)際項(xiàng)目中,一個(gè)新的問題往往會(huì)因?yàn)槿鄙僭紨?shù)據(jù)集樣本而無法進(jìn)行預(yù)測(cè),這也正是遷移學(xué)習(xí)產(chǎn)生的原因。

      遷移學(xué)習(xí)可以利用已經(jīng)學(xué)習(xí)到的知識(shí)對(duì)新的問題進(jìn)行預(yù)測(cè),具體到軟件缺陷預(yù)測(cè)問題中,就可以利用已有的其它項(xiàng)目或公司的已標(biāo)記軟件缺陷數(shù)據(jù),選用合適的數(shù)據(jù)預(yù)處理和模型訓(xùn)練算法,對(duì)一個(gè)新的項(xiàng)目的缺陷進(jìn)行模型構(gòu)建和預(yù)測(cè)?,F(xiàn)有的跨項(xiàng)目缺陷預(yù)測(cè)技術(shù),大多集中在數(shù)據(jù)預(yù)處理階段,如通過度量輔助數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集之間樣本的相關(guān)性,篩選合適的輔助樣本數(shù)據(jù),然后使用傳統(tǒng)的機(jī)器學(xué)習(xí)方法進(jìn)行模型構(gòu)建[1];或者通過降維的方式將2個(gè)數(shù)據(jù)集的數(shù)據(jù)映射到同一個(gè)維度空間等。

      同上文中提出的研究方法不同,本文擬結(jié)合已有的TrAdaboost[2]遷移學(xué)習(xí)算法,并針對(duì)軟件缺陷數(shù)據(jù)集中存在的數(shù)據(jù)不平衡的問題進(jìn)行特殊處理,對(duì)迭代過程中每個(gè)階段的弱分類器的評(píng)估指標(biāo)進(jìn)行了修改,同時(shí)通過一系列的實(shí)驗(yàn)數(shù)據(jù),驗(yàn)證了其相對(duì)于現(xiàn)有算法的優(yōu)越性和合理性。本文對(duì)此將展開研究論述如下。

      1 相關(guān)理論和技術(shù)

      1.1 遷移學(xué)習(xí)定義

      文中,將討論遷移學(xué)習(xí)中所涉及到的域和任務(wù)的定義。域通常包含2部分內(nèi)容,即特征空間X與特征空間的邊緣分布函數(shù)P(x),研究中就將域表示為D={X,P(x)}。當(dāng)域不同時(shí),則往往擁有不同的邊緣分布函數(shù)或特征空間,就軟件缺陷預(yù)測(cè)問題而言,2個(gè)域的特征空間是一致的。任務(wù)是同域相結(jié)合的,同樣包含2部分,即標(biāo)簽空間Y與目標(biāo)預(yù)測(cè)函數(shù)f(x),該目標(biāo)預(yù)測(cè)函數(shù)又可表示為P(Y|X),因此任務(wù)往往可以表示為T={Y,P(X|Y)}。

      目前,遷移學(xué)習(xí)算法處理的通常是只有一個(gè)輔助領(lǐng)域和一個(gè)目標(biāo)領(lǐng)域的問題,其中輔助領(lǐng)域中存在大量含標(biāo)簽的樣本,目標(biāo)領(lǐng)域中僅包含少量含目標(biāo)樣本,或不含樣本。兩者所面臨的任務(wù)相同或存在一定關(guān)聯(lián)。

      結(jié)合上述定義的符號(hào),遷移學(xué)習(xí)定義[3]如下:已知輔助領(lǐng)域Ds和輔助任務(wù)Ts、目標(biāo)領(lǐng)域Dt和目標(biāo)任務(wù)Tt,且輔助領(lǐng)域和目標(biāo)領(lǐng)域之間、輔助任務(wù)和目標(biāo)任務(wù)之間至少存在一個(gè)不同點(diǎn),此時(shí),遷移學(xué)習(xí)即為使用輔助領(lǐng)域Ds和Ts中的知識(shí)提升或優(yōu)化目標(biāo)領(lǐng)域Dt中目標(biāo)預(yù)測(cè)函數(shù)ft(x)的學(xué)習(xí)效果。

      只有當(dāng)域和任務(wù)兩者之一存在差異時(shí),才會(huì)用到遷移學(xué)習(xí),否則直接應(yīng)用傳統(tǒng)的機(jī)器學(xué)習(xí)方法即可。同時(shí),研究中還要求目標(biāo)領(lǐng)域存在較少、甚至不存在已標(biāo)記數(shù)據(jù),否則同樣不需要使用遷移學(xué)習(xí)方法。相對(duì)于傳統(tǒng)的機(jī)器學(xué)習(xí)方法而言,遷移學(xué)習(xí)構(gòu)建的模型就性能和準(zhǔn)確性而言還是有一定差距的,當(dāng)傳統(tǒng)的機(jī)器學(xué)習(xí)方法條件可以得到滿足時(shí),優(yōu)先使用機(jī)器學(xué)習(xí)方法來構(gòu)建模型和獲得任務(wù)中的預(yù)測(cè)函數(shù)f(x)。

      1.2 軟件缺陷預(yù)測(cè)技術(shù)概述

      軟件作為一款虛擬的產(chǎn)品,雖然不會(huì)因?yàn)橛布膿p耗而產(chǎn)生錯(cuò)誤或者性能下降,但卻有可能因?yàn)楸旧砉逃械膯栴},在運(yùn)行的過程中失效或者產(chǎn)生錯(cuò)誤的結(jié)果,造成經(jīng)濟(jì)損失。

      為了盡可能地避免這種損失,預(yù)測(cè)尚未被發(fā)現(xiàn)的缺陷,軟件缺陷預(yù)測(cè)技術(shù)則應(yīng)運(yùn)而生。該項(xiàng)技術(shù)研發(fā)時(shí),可以將預(yù)測(cè)結(jié)果應(yīng)用于軟件測(cè)試的指導(dǎo)工作,根據(jù)待預(yù)測(cè)模塊中包含缺陷的概率,以及預(yù)測(cè)的缺陷數(shù)目,對(duì)包含缺陷概率較大或者數(shù)目較多的模塊進(jìn)行優(yōu)先和重點(diǎn)測(cè)試,從而在測(cè)試資源和時(shí)間有限的情況下盡可能地發(fā)現(xiàn)更多的缺陷,保證軟件產(chǎn)品的質(zhì)量。

      研究表明,隨著軟件開發(fā)過程成熟度的提高,軟件缺陷的數(shù)目也在隨之下降;此外,開發(fā)人員經(jīng)驗(yàn)是否豐富,軟件結(jié)構(gòu)是否合理,軟件規(guī)模是否龐大等一系列因素也都在影響著軟件缺陷的存在數(shù)目,如果可以通過建模,發(fā)現(xiàn)并量化各種因素同缺陷之間的關(guān)系,就可以利用統(tǒng)計(jì)學(xué)的方法來進(jìn)行軟件缺陷預(yù)測(cè)的工作。軟件度量指標(biāo)和軟件質(zhì)量以及軟件缺陷預(yù)測(cè)模型之間的關(guān)系如圖1所示,其中軟件度量元包括原始數(shù)據(jù)以及相關(guān)的域和任務(wù),在構(gòu)建模型過程中,需要對(duì)這些數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,包括降噪、特征選擇等,以提高軟件缺陷預(yù)測(cè)模型的正確性。

      軟件缺陷預(yù)測(cè)技術(shù)主要包括靜態(tài)預(yù)測(cè)技術(shù)和動(dòng)態(tài)預(yù)測(cè)技術(shù)兩類[4]。其中,靜態(tài)預(yù)測(cè)技術(shù)出現(xiàn)得較早,也是當(dāng)前的研究重點(diǎn)所在,設(shè)計(jì)原理就是利用軟件度量元的統(tǒng)計(jì)對(duì)缺陷的數(shù)目和分布做出預(yù)測(cè),常見的分類包括基于軟件度量元的缺陷預(yù)測(cè)技術(shù)、軟件缺陷分布預(yù)測(cè)技術(shù)、缺陷預(yù)測(cè)模型技術(shù);動(dòng)態(tài)缺陷預(yù)測(cè)技術(shù)則是針對(duì)軟件缺陷隨著軟件工程過程或者軟件運(yùn)行生命周期的變化而變化的趨勢(shì)進(jìn)行預(yù)測(cè),得到其分布規(guī)律。

      由于缺陷預(yù)測(cè)數(shù)據(jù)集為不平衡數(shù)據(jù)集,包含有缺陷的樣本所占比例通常不足10%,使用常用的遷移學(xué)習(xí)算法很難對(duì)其做到正確分類,因此需要針對(duì)該問題對(duì)現(xiàn)有算法加以優(yōu)化,并使用AUC[5]值和缺陷檢出率PD值對(duì)其性能進(jìn)行評(píng)估。

      2 問題定義和算法設(shè)計(jì)

      2.1 問題定義

      為了更好地理解算法偽代碼中的符號(hào)含義,現(xiàn)在對(duì)研究中可能出現(xiàn)的一些符號(hào)進(jìn)行定義,詳見表1。

      其中,訓(xùn)練數(shù)據(jù)集中輔助領(lǐng)域數(shù)據(jù)集和目標(biāo)領(lǐng)域數(shù)據(jù)集的長(zhǎng)度分別為n和m,一般情況下,n>>m,且m值較小,因?yàn)槿绻鹠值較大,則說明在目標(biāo)領(lǐng)域中含有大量的可以用于模型構(gòu)建和類別預(yù)測(cè)的訓(xùn)練數(shù)據(jù),并可以獨(dú)立獲取預(yù)測(cè)函數(shù),此時(shí)應(yīng)用傳統(tǒng)的機(jī)器學(xué)習(xí)方法即可。就數(shù)據(jù)分布而言,Tb和S來源于同一個(gè)數(shù)據(jù)域,具有相同的邊緣概率分布,而Ta則有著與S不同的分布。通常意義上,Ta和Tb可以用于預(yù)測(cè)類似的或者相關(guān)的任務(wù),否則2個(gè)不同分布的數(shù)據(jù)很難用于同一個(gè)問題的訓(xùn)練工作。結(jié)合前述內(nèi)容,研究中可以做出如下問題定義:

      給定大量輔助領(lǐng)域含標(biāo)簽數(shù)據(jù)集Ta和少量目標(biāo)領(lǐng)域含標(biāo)簽數(shù)據(jù)Tb,以及待預(yù)測(cè)未標(biāo)注的測(cè)試數(shù)據(jù)集S,Tb和S同分布。無論是Ta、還是Tb數(shù)據(jù)集,均滿足正類數(shù)目遠(yuǎn)遠(yuǎn)小于負(fù)類數(shù)目,存在類別不平衡問題。研究中需要利用Ta和Tb結(jié)合算法來構(gòu)建預(yù)測(cè)模型,使其可以用于S中的標(biāo)簽預(yù)測(cè)和標(biāo)注。

      2.2 TrAdaboost優(yōu)化算法設(shè)計(jì)與分析

      在軟件缺陷預(yù)測(cè)模型構(gòu)建過程中,選用的數(shù)據(jù)集包括輔助數(shù)據(jù)集和目標(biāo)數(shù)據(jù)集在內(nèi)均存在數(shù)據(jù)不平衡問題,數(shù)據(jù)集中含有缺陷的模塊僅占很小的一部分,這也導(dǎo)致在訓(xùn)練模型過程中,正例和反例不能被同等重視,如果僅僅依據(jù)預(yù)測(cè)正確率,則無法正確反映模型性能。就軟件缺陷預(yù)測(cè)問題而言,研究需要預(yù)測(cè)出更多的包含缺陷的模塊,因此使用缺陷檢出率PD來評(píng)估模型能夠更好地契合預(yù)定目標(biāo),同時(shí)PD也是ROC曲線坐標(biāo)軸的縱軸,F(xiàn)PR為橫軸。

      該算法的優(yōu)化思想為:在每次執(zhí)行TrAdaboost算法迭代時(shí),不再通過錯(cuò)誤率來評(píng)估單次迭代分類器的重要性,而是通過簡(jiǎn)易的AUC值來度量。這樣可以在每次迭代的過程中,有傾向性地提高真正例率,從而得到更優(yōu)的預(yù)測(cè)結(jié)果。優(yōu)化后TrAdaboost算法的設(shè)計(jì)代碼見如下。

      本次優(yōu)化的部分為算法for循環(huán)內(nèi)的步驟(3),其中計(jì)算的AUC值并不準(zhǔn)確,而是將閾值固定后直接依據(jù)分類器的預(yù)測(cè)結(jié)果和實(shí)際標(biāo)簽來結(jié)合權(quán)重進(jìn)行計(jì)算,得到TPR和FPR兩個(gè)值,在此基礎(chǔ)上計(jì)算點(diǎn)(0,0),(TPR,F(xiàn)PR),(1,1)以及(1,0)圍成的面積,由于閾值不變,因此該面積僅為近似面積,小于實(shí)際的值。關(guān)于AUC值的下限設(shè)置為0.51,這是因?yàn)槿粼O(shè)置0.5,權(quán)值將不會(huì)發(fā)生變化,則下次迭代的結(jié)果會(huì)完全一致。

      3 實(shí)驗(yàn)結(jié)果

      本實(shí)驗(yàn)中,采用的數(shù)據(jù)集來自于ESEM2016[6]。ESEM2016數(shù)據(jù)集是作者使用增項(xiàng)的SZZ算法和JHawk工具生成的。目前有研究指出,軟件缺陷預(yù)測(cè)問題常用的數(shù)據(jù)集還包括NASA的數(shù)據(jù)集,但卻存在不開源、前后數(shù)據(jù)不一致等問題,因此本實(shí)驗(yàn)未采用該數(shù)據(jù)集。

      ESEM2016數(shù)據(jù)集由2部分組成,也就是:ClassLevel、即類級(jí)別和MethodLevel、即方法級(jí)別,每一個(gè)數(shù)據(jù)集中則包含有42種度量元對(duì)應(yīng)的統(tǒng)計(jì)數(shù)據(jù)。本次實(shí)驗(yàn)主要使用ClassLevel級(jí)別的數(shù)據(jù),著重測(cè)試不同項(xiàng)目之間的遷移效果。

      本文通過對(duì)比TrAdaboost與優(yōu)化后的TrAdaboost算法在不同數(shù)據(jù)集上的預(yù)測(cè)效果,驗(yàn)證了對(duì)權(quán)值調(diào)整后的算法在面對(duì)數(shù)據(jù)集不平衡問題時(shí)的有效性和優(yōu)越性。該實(shí)驗(yàn)選擇的評(píng)估數(shù)據(jù)包括正確率、AUC值以及PD值三種。其中,正確率為統(tǒng)計(jì)預(yù)測(cè)結(jié)果正確的樣本數(shù)目所占的比例,AUC值則是通過計(jì)算ROC曲線下方區(qū)域的面積得到;PD又稱為錯(cuò)誤檢出率,PD=TP/(TP+FN)。正如前文研究得到的,正確率無法正確反映預(yù)測(cè)結(jié)果的性能,AUC值和PD值均可反映正例被正確預(yù)測(cè)的比例,但AUC值同等對(duì)待2個(gè)類別的預(yù)測(cè),而在軟件缺陷預(yù)測(cè)問題中,研究是致力于能夠更多地檢測(cè)出存在的缺陷,同時(shí)允許一定數(shù)量的誤判,即將無缺陷樣本預(yù)測(cè)為有缺陷,因此較好的PD值度量更符合本次研發(fā)的實(shí)驗(yàn)要求。

      實(shí)驗(yàn)選取了11個(gè)不同的數(shù)據(jù)集,并按照文件名排序后使相鄰的2個(gè)數(shù)據(jù)集兩兩結(jié)合,前者作為輔助數(shù)據(jù)集,后者作為目標(biāo)數(shù)據(jù)集,再用其來進(jìn)行模型的構(gòu)建和評(píng)估,實(shí)驗(yàn)結(jié)果見表2。

      實(shí)驗(yàn)結(jié)果表明,在數(shù)據(jù)集不平衡的軟件缺陷預(yù)測(cè)問題中,優(yōu)化后的算法在大部分情況下PD值是優(yōu)于原有的TrAdaboost算法的,而AUC值方面兩者則比較接近,較大的PD值也表示可以有更多的缺陷被預(yù)測(cè)出來。與此同時(shí)還發(fā)現(xiàn),相對(duì)于傳統(tǒng)的機(jī)器學(xué)習(xí)方法而言,遷移學(xué)習(xí)的預(yù)測(cè)效果相對(duì)較差,因此在擁有足夠的訓(xùn)練數(shù)據(jù)時(shí),將優(yōu)先使用傳統(tǒng)的機(jī)器學(xué)習(xí)算法。

      4 結(jié)束語(yǔ)

      軟件缺陷預(yù)測(cè)可以對(duì)軟件的測(cè)試和交付提供指導(dǎo)意見,對(duì)軟件質(zhì)量的保證具有實(shí)際意義。本文參考了TrAdaboost算法,結(jié)合軟件缺陷預(yù)測(cè)問題的特征,對(duì)TrAdaboost算法進(jìn)行了優(yōu)化,可以在一定程度上應(yīng)對(duì)不平衡數(shù)據(jù)集帶來的問題。

      但需指出,該算法還存在一定的局限性。一個(gè)缺陷預(yù)測(cè)模型的構(gòu)建,除了需要優(yōu)化訓(xùn)練算法,對(duì)于數(shù)據(jù)的預(yù)處理也同樣重要。在未來的工作中,需要在輔助數(shù)據(jù)的篩選和度量元的選擇方法上繼續(xù)深入研究,以進(jìn)一步提升預(yù)測(cè)模型的性能。

      參考文獻(xiàn)

      [1]TURHAN B, MENZIES T, BENER A B, et al. On the relative value of cross-company and within-company data for defect prediction[J]. Empirical Software Engineering, 2009, 14(5):540-578.

      [2]DAI Wenyuan,YANG Qiang,XUE Guirong,et al. Boosting for transfer learning[C]// Machine Learning, Proceedings of the Twenty-Fourth International Conference (ICML 2007). Corvallis, Oregon, USA:ACM,2007: 193-200.

      [3]PAN S J , YANG Qiang. A survey on transfer learning[J]. IEEE Transactions on Knowledge and Data Engineering, 2010, 22(10):1345-1359.

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

      [5]FAWCETT T. An introduction to ROC analysis[J].Pattern Recognition Letters, 2006,27(8):861-874.

      [6]SHIPPEY T, HALL T, COUNSELL S, et al. So you need more method level datasets for your software defect prediction?: Voila![C]// the 10th ACM/IEEE International Symposium. Ciudad Real, Spain : ACM, 2016:12.

      [7]FREUND Y, SCHAPIRE R E. A decision-theoretic generalization of on-line learning and an application to Boosting[M]//VITNYI P. Computational learning theory. EuroCOLT 1995. Lecture Notes in Computer Science (Lecture Notes in Artificial Intelligence). Berlin/Heidelberg: Springer.1995:23-37.

      [8]JOSHI M V, KUMAR V, AGARWAL R C. Evaluating boosting algorithms to classify rare cases: Comparison and improvements[C]// Proceedings of the 1st IEEE International Conference on Data Mining. Washington DC: IEEE, 2001:257-264.

      猜你喜歡
      遷移學(xué)習(xí)
      《宋史·曾公亮傳》傳主形象論析
      基于深度神經(jīng)網(wǎng)絡(luò)的人體動(dòng)作識(shí)別研究
      威斯頓相互作用法在社會(huì)保險(xiǎn)學(xué)課程教學(xué)中的實(shí)踐
      基于卷積神經(jīng)網(wǎng)絡(luò)的圖像分類技術(shù)
      科技視界(2017年32期)2018-01-24 17:54:40
      遷移學(xué)習(xí)在專業(yè)課程教學(xué)中的實(shí)踐研究
      遷移學(xué)習(xí)研究綜述
      從認(rèn)知角度探討大學(xué)英語(yǔ)網(wǎng)絡(luò)教學(xué)模式
      基于多特征融合的跨域情感分類模型研究
      奇異值分解與移移學(xué)習(xí)在電機(jī)故障診斷中的應(yīng)用
      一種基于遷移極速學(xué)習(xí)機(jī)的人體行為識(shí)別模型
      东乡| 翁源县| 孝昌县| 宁阳县| 文化| 高台县| 阜城县| 红原县| 色达县| 温宿县| 敖汉旗| 西华县| 商南县| 灵武市| 循化| 鄂州市| 中宁县| 永登县| 金塔县| 汉源县| 同仁县| 安丘市| 阿巴嘎旗| 吉林省| 东台市| 交城县| 南皮县| 连南| 都匀市| 佛冈县| 天柱县| 长乐市| 镇宁| 谢通门县| 云梦县| 石泉县| 新干县| 青海省| 遂川县| 天台县| 新竹县|