亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于實例遷移的跨項目軟件缺陷預(yù)測*

        2016-03-19 05:46:34毛發(fā)貴李碧雯沈備軍上海交通大學(xué)軟件學(xué)院上海200240
        計算機(jī)與生活 2016年1期

        毛發(fā)貴,李碧雯,沈備軍上海交通大學(xué)軟件學(xué)院,上海200240

        * The National Natural Science Foundation of China under Grant No. 61472242 (國家自然科學(xué)基金); the National Basic Research Program of China under Grant No. 2015CB352203 (國家重點基礎(chǔ)研究發(fā)展計劃(973計劃)).

        Received 2015-05,Accepted 2015-07.

        CNKI網(wǎng)絡(luò)優(yōu)先出版:2015-08-11, http://www.cnki.net/kcms/detail/11.5602.TP.20150811.1513.001.html

        ISSN 1673-9418 CODEN JKYTA8

        Journal of Frontiers of Computer Science and Technology

        1673-9418/2016/10(01)-0043-13

        ?

        基于實例遷移的跨項目軟件缺陷預(yù)測*

        毛發(fā)貴,李碧雯,沈備軍+
        上海交通大學(xué)軟件學(xué)院,上海200240

        * The National Natural Science Foundation of China under Grant No. 61472242 (國家自然科學(xué)基金); the National Basic Research Program of China under Grant No. 2015CB352203 (國家重點基礎(chǔ)研究發(fā)展計劃(973計劃)).

        Received 2015-05,Accepted 2015-07.

        CNKI網(wǎng)絡(luò)優(yōu)先出版:2015-08-11, http://www.cnki.net/kcms/detail/11.5602.TP.20150811.1513.001.html

        ISSN 1673-9418 CODEN JKYTA8

        Journal of Frontiers of Computer Science and Technology

        1673-9418/2016/10(01)-0043-13

        E-mail: fcst@vip.163.com

        http://www.ceaj.org

        Tel: +86-10-89056056

        摘要:跨項目軟件缺陷預(yù)測是解決項目初期缺陷預(yù)測缺乏數(shù)據(jù)集的有效途徑,但是項目間的差異性降低了預(yù)測準(zhǔn)確率。針對這一問題,研究提出了基于實例遷移的跨項目缺陷預(yù)測方法。該方法采用遷移學(xué)習(xí)和自適應(yīng)增強技術(shù),從其他項目數(shù)據(jù)集中提取并遷移轉(zhuǎn)化出與目標(biāo)數(shù)據(jù)集關(guān)聯(lián)性高的訓(xùn)練數(shù)據(jù)集,訓(xùn)練出更有效的預(yù)測模型。使用PROMISE數(shù)據(jù)集進(jìn)行了對比實驗,結(jié)果表明所提出的新方法有效避免了單源單目標(biāo)缺陷預(yù)

        1 引言

        自20世紀(jì)70年代以來,軟件缺陷預(yù)測技術(shù)一直是研究人員和軟件開發(fā)者非常關(guān)注的研究課題之一[1]。一個好的軟件缺陷預(yù)測技術(shù)能提前發(fā)現(xiàn)與鎖定軟件缺陷,從而縮減開發(fā)周期,提高軟件質(zhì)量。缺陷發(fā)現(xiàn)得越早,其修復(fù)的成本就越低,因此在軟件開發(fā)上游活動中應(yīng)用軟件缺陷預(yù)測技術(shù)能獲得更大的價值。但是由于數(shù)據(jù)集的缺乏,使得項目初期的缺陷預(yù)測遇到冷啟動的問題,無法構(gòu)建一個有效的預(yù)測模型。一種可能的解決方法是使用其他項目數(shù)據(jù)建立預(yù)測模型,預(yù)測目標(biāo)項目的軟件缺陷,即跨項目軟件缺陷預(yù)測[2]。

        和項目內(nèi)缺陷預(yù)測相比,跨項目缺陷預(yù)測具有以下3個優(yōu)勢[2]:

        (1)項目內(nèi)缺陷預(yù)測依靠于軟件項目前期活動的數(shù)據(jù),需要花費大量時間在數(shù)據(jù)處理與特征提取上。而跨項目缺陷預(yù)測可以直接使用已提取的各類其他項目特征數(shù)據(jù)。

        (2)一些項目在初期沒有足夠的項目數(shù)據(jù),無法建立缺陷預(yù)測模型。而跨項目缺陷預(yù)測技術(shù)不受項目限制,存在大量的可用其他項目數(shù)據(jù)集。

        (3)軟件技術(shù)更新快,大項目由于周期長,其數(shù)據(jù)存在過時隱患。而跨項目缺陷預(yù)測,可以選擇性挑選最新的軟件倉庫數(shù)據(jù)進(jìn)行處理,利用潛在相關(guān)聯(lián)系保證跨項目缺陷預(yù)測的效果。

        然而,跨項目缺陷預(yù)測的最終輸出結(jié)果較于項目內(nèi)部的缺陷預(yù)測,精確度較低。其主要原因是,不同軟件項目的預(yù)測特征與數(shù)據(jù)集存在差異性,若利用大量不相關(guān)數(shù)據(jù)進(jìn)行預(yù)測,會影響最終結(jié)果的準(zhǔn)確性。

        本文從項目差異性問題出發(fā),將遷移學(xué)習(xí)技術(shù)引入跨項目缺陷預(yù)測,對自適應(yīng)增強算法進(jìn)行多源改進(jìn),提出了基于實例遷移的跨項目缺陷預(yù)測方法。它通過自適應(yīng)迭代和加權(quán),從其他項目數(shù)據(jù)集中提取并遷移轉(zhuǎn)化出與目標(biāo)數(shù)據(jù)集關(guān)聯(lián)性高的訓(xùn)練數(shù)據(jù)集,訓(xùn)練出更有效的預(yù)測模型。

        本文主要貢獻(xiàn)包括:

        (1)跨項目的實例遷移技術(shù)。以目標(biāo)項目數(shù)據(jù)樣本和其他項目數(shù)據(jù)集為基礎(chǔ),通過基于實例的遷移學(xué)習(xí),進(jìn)行跨項目缺陷預(yù)測建模。實驗表明,在目標(biāo)項目數(shù)據(jù)集不足的情況下,實例遷移技術(shù)能使跨項目缺陷預(yù)測達(dá)到甚至超過項目內(nèi)缺陷預(yù)測的效果。

        (2)MergeTrAdaBoost模型訓(xùn)練算法。利用聚類和數(shù)據(jù)篩選算法,從大量訓(xùn)練數(shù)據(jù)中提取與目標(biāo)數(shù)據(jù)集相關(guān)性高的數(shù)據(jù)子集,再采用自適應(yīng)增強技術(shù),訓(xùn)練出有效的預(yù)測模型。

        (3)MultiTrAdaBoost模型訓(xùn)練算法?;诘m應(yīng),多次訓(xùn)練自適應(yīng)單源單目標(biāo)模型;基于訓(xùn)練結(jié)果錯誤率,降低相關(guān)性低的數(shù)據(jù)實例權(quán)重以及錯誤率高的單源單目標(biāo)模型權(quán)重,形成多源最優(yōu)訓(xùn)練模型。

        實驗結(jié)果表明MergeTrAdaBoost和MultiTrAda-Boost適應(yīng)于跨項目缺陷預(yù)測多訓(xùn)練集的情況,獲得了更高的預(yù)測準(zhǔn)確率和查全率。

        本文組織結(jié)構(gòu)如下:第2章綜述和分析了跨項目軟件缺陷預(yù)測的相關(guān)工作;第3章提出了基于實例遷移的跨項目缺陷預(yù)測方法;第4章對新方法進(jìn)行了實驗及對比分析;第5章進(jìn)行總結(jié)。

        2 相關(guān)工作

        近年來研究者們從數(shù)據(jù)集處理、項目相似性分組、自適應(yīng)預(yù)測模型等角度研究跨項目軟件缺陷預(yù)測方法和技術(shù),取得了一定的成果。

        2.1數(shù)據(jù)預(yù)處理

        研究者通過轉(zhuǎn)換數(shù)據(jù)分布與篩選相關(guān)數(shù)據(jù)等方式,降低項目數(shù)據(jù)差異性。

        Briand等人[3]最早探索跨項目缺陷預(yù)測,通過線性回歸和MARS(multivariate adaptive regression splines)測兩極分化問題,獲得了更高的預(yù)測準(zhǔn)確率和查全率;在目標(biāo)項目數(shù)據(jù)集不足的情況下,能達(dá)到甚至超過數(shù)據(jù)集充足時項目內(nèi)缺陷預(yù)測的預(yù)測效果。

        關(guān)鍵詞:跨項目缺陷預(yù)測;遷移學(xué)習(xí);基于實例的遷移;自適應(yīng)增強

        Table 1 Analysis of related works表1 相關(guān)技術(shù)分析

        Turhan等人[7]提出了一種選擇相鄰數(shù)據(jù)并過濾不相干數(shù)據(jù)的方法,使得建立的跨項目缺陷預(yù)測模型的預(yù)測效果接近項目內(nèi)缺陷預(yù)測。但是該方法受限于目標(biāo)數(shù)據(jù)集實例數(shù)目,需要足夠大小的目標(biāo)數(shù)據(jù)集,不能運用在項目初期。Peters等人[8]改進(jìn)了Turhan所提出的過濾技術(shù),從源數(shù)據(jù)集出發(fā),不斷增量式查找與之相似的目標(biāo)數(shù)據(jù)。對每一個源數(shù)據(jù)實例,若接近某個目標(biāo)數(shù)據(jù)實例,則將源數(shù)據(jù)實例加入最終訓(xùn)練數(shù)據(jù)子集。

        Tosun等人[9]利用過濾技術(shù),成功利用NASA系統(tǒng)的數(shù)據(jù)來預(yù)測其他項目,證明了采用基于目標(biāo)數(shù)據(jù)進(jìn)行過濾挑選所獲得的訓(xùn)練數(shù)據(jù)集,可以有效預(yù)測目標(biāo)項目數(shù)據(jù)集的缺陷。

        2.2項目相似性分組

        Jureczko和Madeyski[10]認(rèn)為相似的項目之間預(yù)測效果會更好,通過對一個項目進(jìn)行缺陷預(yù)測建模,能夠?qū)⒛P椭赜玫狡渌M群中的項目上,并實驗驗證了這些預(yù)測模型的結(jié)果優(yōu)于項目內(nèi)缺陷預(yù)測。

        Zhang等人[11]提出六元上下文因素組,定義了項目的相關(guān)屬性,依據(jù)六元屬性將項目分組,并建立了一個全局的跨項目缺陷預(yù)測框架。他們認(rèn)為,對任意一個項目,可以依據(jù)其六元組找到相似的其他項目分組,并運用該組項目數(shù)據(jù)集進(jìn)行缺陷預(yù)測。

        2.3自適應(yīng)預(yù)測模型

        研究者認(rèn)為,跨領(lǐng)域技術(shù)的使用可以為解決問題提供新的想法。在大量的可選項目數(shù)據(jù)集中,選擇一個大小適中、預(yù)測效果好的訓(xùn)練集,是一個重要的研究方向。Liu等人[12]引入基于搜索的選擇策略,采用遺傳算法逐步選擇訓(xùn)練集數(shù)據(jù),使用不同的機(jī)器學(xué)習(xí)方法對候選數(shù)據(jù)進(jìn)行打分排序,選擇最優(yōu)數(shù)據(jù)集,得到了較為理想的實驗結(jié)果。

        2.4小結(jié)

        表1總結(jié)了上述技術(shù)的優(yōu)點和不足,當(dāng)前的跨項目缺陷預(yù)測相關(guān)研究仍然處于初期。

        3 實例遷移與跨項目軟件缺陷預(yù)測

        3.1跨項目軟件缺陷預(yù)測方法概述

        針對跨項目缺陷預(yù)測的挑戰(zhàn),本文從已有技術(shù)的不足點出發(fā),吸取相關(guān)優(yōu)點,采用基于實例的遷移學(xué)習(xí)技術(shù),提出了一種有效的跨項目缺陷預(yù)測方法,如圖1所示。整個預(yù)測過程以大量已標(biāo)注的其他項目數(shù)據(jù)集和少量已標(biāo)注的目標(biāo)項目數(shù)據(jù)樣本為輸入,采用基于實例遷移的跨項目缺陷預(yù)測模型訓(xùn)練方法,訓(xùn)練得到適合目標(biāo)項目的有效預(yù)測模型,針對目標(biāo)項目數(shù)據(jù)集進(jìn)行跨項目缺陷預(yù)測。

        該方法不受限于特定的項目特征集,可以根據(jù)目標(biāo)項目的特點任意選擇所需的項目特征集合,從其他項目中提取相關(guān)特征的數(shù)據(jù)集,訓(xùn)練并獲得一個適用于目標(biāo)項目的缺陷預(yù)測模型。方法的本質(zhì)是不斷尋找項目間的相似性,增加數(shù)據(jù)實例間關(guān)聯(lián)性的過程。通過篩選從其他項目中獲得與目標(biāo)項目關(guān)聯(lián)性高的數(shù)據(jù)實例子集;通過數(shù)據(jù)遷移,使得最終獲得的訓(xùn)練數(shù)據(jù)分布與目標(biāo)數(shù)據(jù)分布相近。

        Fig.1 Cross-project defect prediction based on instance transfer圖1 基于實例遷移的跨項目缺陷預(yù)測

        預(yù)測模型訓(xùn)練是方法的核心,當(dāng)前最有效的模型訓(xùn)練方法之一是自適應(yīng)增強算法(Boosting)[13]。缺陷預(yù)測可以歸納為一個分類問題,即預(yù)測一個程序或模塊是否有缺陷。自適應(yīng)增強算法能夠整合多個弱分類器,輸出一個強分類器。本文結(jié)合遷移學(xué)習(xí)中基于實例的數(shù)據(jù)遷移思想,改進(jìn)自適應(yīng)增強訓(xùn)練模型,在訓(xùn)練數(shù)據(jù)過程中,多次迭代,基于數(shù)據(jù)對訓(xùn)練結(jié)果錯誤率的影響,降低相關(guān)性低的數(shù)據(jù)實例權(quán)重,側(cè)重選擇那些對目標(biāo)項目分類有利的訓(xùn)練樣本實例,最終輸出一個分類能力較高的強分類器。以下各節(jié)將闡述基于實例遷移的預(yù)測模型訓(xùn)練。

        3.2TrAdaBoost算法的多源改進(jìn)

        項目數(shù)據(jù)集的差異性是導(dǎo)致跨項目缺陷預(yù)測結(jié)果不理想的重要原因,本文研究的出發(fā)點是如何從大量其他軟件項目數(shù)據(jù)集中,提取適應(yīng)于目標(biāo)軟件項目的跨項目缺陷預(yù)測訓(xùn)練集。

        3.2.1TrAdaBoost算法及其優(yōu)缺點分析

        Dai等人[14]擴(kuò)展自適應(yīng)增強算法到遷移學(xué)習(xí)中,提出了基于實例遷移的迭代加權(quán)TrAdaBoost(transfer AdaBoost)算法。在每次迭代中改變樣本采樣的權(quán)重,源領(lǐng)域中的無關(guān)樣本權(quán)重被減弱,有利于模型訓(xùn)練的目標(biāo)領(lǐng)域中的樣本權(quán)重被加強。TrAdaBoost能夠發(fā)現(xiàn)與目標(biāo)數(shù)據(jù)集關(guān)聯(lián)大的訓(xùn)練實例,并依據(jù)錯誤率定量地提高其在預(yù)測過程中的影響力;同時能整合多個弱分類器,有效減弱分類器的缺點,強化其優(yōu)點。

        然而,TrAdaBoost算法存在單源局限性。TrAda-Boost的輸入為目標(biāo)項目數(shù)據(jù)樣本和單個其他項目訓(xùn)練數(shù)據(jù)。數(shù)據(jù)遷移結(jié)果的好壞,依賴于訓(xùn)練集與目標(biāo)數(shù)據(jù)集的關(guān)聯(lián)性,容易導(dǎo)致分類結(jié)果兩極分化。訓(xùn)練集與目標(biāo)數(shù)據(jù)集關(guān)聯(lián)越大,則遷移效果越好。若兩個數(shù)據(jù)集本身關(guān)聯(lián)小,TrAdaBoost將修改大部分?jǐn)?shù)據(jù)的權(quán)重,使得數(shù)據(jù)權(quán)重普遍較低,最終導(dǎo)致建立的分類模型預(yù)測能力較差。同時,若訓(xùn)練集空間某個分類值占比較低,則訓(xùn)練時該類的分類依據(jù)較少。

        3.2.2TrAdaBoost算法的改進(jìn)

        針對TrAdaBoost算法的單源局限性問題,本文的改進(jìn)措施是,輸入多個項目數(shù)據(jù)集,增加潛在相關(guān)數(shù)據(jù)的數(shù)目,這也正符合跨項目缺陷預(yù)測的背景。輸入多個其他項目數(shù)據(jù)集用于模型訓(xùn)練,在增加潛在相關(guān)聯(lián)數(shù)據(jù)數(shù)量的同時,也造成了最終分類誤報率的增加。一種解決方式是通過篩選增加關(guān)聯(lián)性高的數(shù)據(jù)的比例。然而關(guān)聯(lián)性低的數(shù)據(jù)不代表沒有影響力,因此另一種方式是基于自適應(yīng)模型,對每個數(shù)據(jù)和每個迭代輸出的分類器加權(quán)。綜上,本文提出了兩種TrAdaBoost算法的改進(jìn)方案。

        方案1訓(xùn)練集合并與預(yù)處理(merge-source TrAda-Boost,MergeTrAdaBoost)。合并篩選數(shù)據(jù),獲得大小合適且與目標(biāo)項目集關(guān)聯(lián)性高的訓(xùn)練數(shù)據(jù)集,進(jìn)行基于實例遷移的預(yù)測模型訓(xùn)練。

        方案2多源自適應(yīng)演化(multi-source TrAdaBoost,MultiTrAdaBoost)。通過多次單源單目標(biāo)訓(xùn)練,加權(quán)合并,形成強訓(xùn)練模型。

        3.3MergeTrAdaBoost算法

        訓(xùn)練數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集的關(guān)聯(lián)性低會導(dǎo)致TrAdaBoost算法分類效果變差,MergeTrAdaBoost在模型訓(xùn)練前根據(jù)目標(biāo)數(shù)據(jù)集,從多個其他項目數(shù)據(jù)集中篩選出相關(guān)性大的訓(xùn)練數(shù)據(jù)子集。

        MergeTrAdaBoost算法主要分為兩個階段:數(shù)據(jù)合并(merge)和數(shù)據(jù)遷移(transfer)。數(shù)據(jù)合并結(jié)果的好壞直接影響后期訓(xùn)練結(jié)果的準(zhǔn)確度和時間效率。使用k-鄰近算法會限制訓(xùn)練集樣本個數(shù),在跨項目缺陷預(yù)測背景下,存在大量其他項目訓(xùn)練數(shù)據(jù)。相對的,參照的目標(biāo)數(shù)據(jù)樣本只有少量。為了解決上述問題,從其他項目訓(xùn)練集出發(fā),逐個判斷,提取鄰近于目標(biāo)項目數(shù)據(jù)樣本的訓(xùn)練實例。

        MergeTrAdaBoost算法在TrAdaBoost算法的基礎(chǔ)上進(jìn)行篩選,以篩選后的其他項目數(shù)據(jù)集作為訓(xùn)練源,訓(xùn)練得到模型,并對目標(biāo)項目數(shù)據(jù)集進(jìn)行跨項目缺陷預(yù)測。算法的具體步驟包括:

        (1)基于目標(biāo)項目數(shù)據(jù)集Ts,使用k-means對其他項目訓(xùn)練集Td進(jìn)行分類。假設(shè)其他項目訓(xùn)練集實例個數(shù)為n,則k的值為n/10,保證每個簇至少包含10個訓(xùn)練數(shù)據(jù)實例和1個目標(biāo)項目數(shù)據(jù)實例。

        (2)刪除不包含數(shù)據(jù)的集合簇。

        (3)對于每個簇中的訓(xùn)練數(shù)據(jù)I,找到最接近的測試實例。若存在鄰近測試實例,則將I加入候選訓(xùn)練集Td'。

        3.4MultiTrAdaBoost算法

        多源自適應(yīng)演化MultiTrAdaBoost是一個多次迭代的集成算法。本文采用Yao等人[15]改進(jìn)的多源遷移算法MTrA,集成多個其他項目訓(xùn)練集,通過多次迭代,對目標(biāo)項目數(shù)據(jù)集進(jìn)行訓(xùn)練。每次迭代,從其他項目訓(xùn)練源中選擇與目標(biāo)項目數(shù)據(jù)集最相關(guān)的訓(xùn)練數(shù)據(jù)進(jìn)行遷移學(xué)習(xí),保證遷移后的知識與目標(biāo)項目數(shù)據(jù)的相關(guān)性大。然而,MTrA直接忽略了其他項目數(shù)據(jù)源的影響,因此本文在MTrA的基礎(chǔ)上,為與目標(biāo)項目數(shù)據(jù)集相關(guān)性較弱的訓(xùn)練集實例添加權(quán)重,最大限度上利用其他項目訓(xùn)練數(shù)據(jù)集。

        在TrAdaBoost算法基礎(chǔ)上改進(jìn)后的MultiTrAda-Boost算法的基本步驟包括:

        (1)對于任意一個其他項目訓(xùn)練數(shù)據(jù)集Tdk和目標(biāo)項目數(shù)據(jù)集Ts,合并獲得訓(xùn)練集Tk。

        (2)每次循環(huán),基于k個其他項目數(shù)據(jù)集。

        (2.1)通過基本分類算法Learner,學(xué)習(xí)Tk并構(gòu)建分類器。

        (2.2)計算分類器的錯誤率,并針對錯誤率為k個分類器添加權(quán)重。

        (2.3)針對本次迭代k個分類器的權(quán)重,合并分類器ht。

        (3)基于循環(huán)所得分類器ht,整合獲得強分類器hf(x)。

        MultiTrAdaBoost算法的優(yōu)點在于其考慮到所有其他項目訓(xùn)練集的影響,并為其影響力添加權(quán)重,不會忽視所有可用遷移知識。

        4 實驗

        本文采用公開的PROMISE數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行實驗,對比和分析基于TrAdaBoost、MergeTrAdaBoost 和MultiTrAdaBoost的跨項目缺陷預(yù)測的能力。

        4.1實驗數(shù)據(jù)和評估指標(biāo)

        本文按照項目的不同規(guī)模,從PROMISE數(shù)據(jù)集中選擇了9個項目進(jìn)行實驗:

        (1)小規(guī)模項目for08、pbeans2和sys,它們的實例數(shù)據(jù)分別為29、51和65條。

        (2)中規(guī)模項目luc20、poi20和jedit43,它們的實例數(shù)據(jù)分別為195、314和492條。

        (3)大規(guī)模項目prop6、xal24和cam16,它們的實例數(shù)據(jù)分別為660、723和965條。

        缺陷預(yù)測算法選擇了常用的樸素貝葉斯算法(na?ve Bayes,NB)和決策樹算法j48。

        本文采用F度量(F-measure)、G度量(G-measure)和ROC曲線下面積(area under the ROC curve,AUC)作為預(yù)測評估指標(biāo)。

        為了保證評估過程中訓(xùn)練數(shù)據(jù)和測試數(shù)據(jù)相互獨立,本文使用k折交叉方法,隨機(jī)打亂數(shù)據(jù)集,并將數(shù)據(jù)集分為N份,取其中1份作為測試數(shù)據(jù),其他N-1份作為訓(xùn)練數(shù)據(jù)。為了減少偶然性造成的數(shù)據(jù)特異性,評估過程將重復(fù)M次,最終輸出平均值。

        4.2TrAdaBoost實驗

        首先使用TrAdaBoost進(jìn)行基于單目標(biāo)單訓(xùn)練集遷移的跨項目預(yù)測實驗。基于NB和j48,TrAdaBoost算法缺陷預(yù)測結(jié)果的F度量、G度量和AUC的指標(biāo)值如表2至表7所示。

        Table 2 F-measure of TrAdaBoost cross-project defect prediction based on NB表2 基于NB的TrAdaBoost跨項目缺陷預(yù)測F度量指標(biāo)

        Table 3 G-measure of TrAdaBoost cross-project defect prediction based on NB表3 基于NB的TrAdaBoost跨項目缺陷預(yù)測G度量指標(biāo)

        從表2和表5中可以看出:當(dāng)訓(xùn)練集數(shù)目遠(yuǎn)大于測試集時,預(yù)測效果準(zhǔn)確率較好。例如for08為目標(biāo)項目時,由于其本身實例數(shù)據(jù)較少,可以有效利用大數(shù)據(jù)集進(jìn)行預(yù)測分析并獲得高準(zhǔn)確率。對于大部分目標(biāo)項目,基于NB和j48,TrAdaBoost可以有效地進(jìn)行遷移,并獲得較好的跨項目缺陷預(yù)測F度量指標(biāo),F(xiàn)度量值都在0.7以上。同時,j48比NB的分類效果相對更佳。少量目標(biāo)項目的跨項目預(yù)測F度量值小于0.5。以luc20和jedit43為例分析其原因,可以發(fā)現(xiàn)luc20和jedit43的缺陷率分別為46.7%和2.2%,jedit43沒有足夠的依據(jù)來分類缺陷較多的luc20,從而導(dǎo)致最終分類結(jié)果不理想。綜上,跨項目缺陷預(yù)測需要足夠多的訓(xùn)練樣本,因此可以使用多個項目集作為訓(xùn)練集。

        Table 4 AUC of TrAdaBoost cross-project defect prediction based on NB表4 基于NB的TrAdaBoost跨項目缺陷預(yù)測AUC指標(biāo)

        Table 5 F-measure of TrAdaBoost cross-project defect prediction based on j48表5 基于j48的TrAdaBoost跨項目缺陷預(yù)測F度量指標(biāo)

        Table 6 G-measure of TrAdaBoost cross-project defect prediction based on j48表6 基于j48的TrAdaBoost跨項目缺陷預(yù)測G度量指標(biāo)

        Table 7 AUC of TrAdaBoost cross-project defect prediction based on j48表7 基于j48的TrAdaBoost跨項目缺陷預(yù)測AUC指標(biāo)

        從表3和表6中可以看出:50%以上目標(biāo)項目誤分類現(xiàn)象嚴(yán)重,G度量值低于0.5。當(dāng)訓(xùn)練集數(shù)目遠(yuǎn)大于測試集(目標(biāo)項目for08、pbeans2和sys)時,誤報率增加,并使得最終G度量值較低。

        從表4和表7中的AUC值同樣可以看出,誤報率影響了最終的分類結(jié)果。如果能夠有效減少造成誤報率的數(shù)據(jù)實例,就能進(jìn)一步提高G度量和AUC的指標(biāo)。這也從另一角度證明了選擇訓(xùn)練集的重要性,即需要選擇關(guān)聯(lián)性較高的訓(xùn)練數(shù)據(jù)來減少誤報率。

        值得注意的是,表2中,基于NB用任何數(shù)據(jù)集預(yù)測jedit43得到的F度量值都為0.01。而表5中,基于j48進(jìn)行缺陷預(yù)測的結(jié)果甚至超過0.9。這是因為jedit43的缺陷率為2.2%,使得貝葉斯概率接近0。而使用決策樹,可以有效判斷實例所在的分支,不受實例缺陷率的影響。故而這個特殊現(xiàn)象將不作為驗證MergeTrAdaBoost和MultiTrAdaBoost效果的依據(jù)。

        總結(jié)上述實驗的分析結(jié)果,驗證了多源多目標(biāo)改進(jìn)算法的必要性:

        (1)使用多個其他項目集作為訓(xùn)練集,能提高最終預(yù)測結(jié)果的準(zhǔn)確度。

        (2)有效篩選或遷移其他項目集數(shù)據(jù),是基于實例遷移的跨項目缺陷預(yù)測模型訓(xùn)練減少誤報率的前提。

        4.3MergeTrAdaBoost和MultiTrAdaBoost實驗

        接下來,本文基于MergeTrAdaBoost和MultiTrAda-Boost算法進(jìn)行跨項目缺陷預(yù)測。當(dāng)選擇其中1個項目作為目標(biāo)項目時,其他8個項目數(shù)據(jù)則作為訓(xùn)練數(shù)據(jù)集。

        表8展示了基于NB分類算法的MergeTrAdaBoost 和MultiTrAdaBoost跨項目預(yù)測結(jié)果。采用MergeTr-AdaBoost,F(xiàn)度量值中7/8的結(jié)果高于0.75,G度量值中7/8的結(jié)果高于0.5,AUC值都不低于0.5。采用Multi-TrAdaBoost,F(xiàn)度量值中5/8的結(jié)果高于0.75,G度量值中6/8的結(jié)果高于0.5,AUC值都不低于0.5。

        Table 8 F-measure, G-measure and AUC of MergeTrAdaBoost and MultiTrAdaBoost based on NB表8 基于NB的MergeTrAdaBoost和MultiTrAdaBoost預(yù)測的F度量、G度量和AUC

        Table 9 F-measure, G-measure and AUC of MergeTrAdaBoost and MultiTrAdaBoost based on j48表9 基于j48的MergeTrAdaBoost和MultiTrAdaBoost預(yù)測的F度量、G度量和AUC

        表9展示了基于j48分類算法的MergeTrAdaBoost 和MultiTrAdaBoost跨項目預(yù)測結(jié)果。采用MergeTr-AdaBoost,F(xiàn)度量值中8/9的結(jié)果高于0.75,G度量值中6/9的結(jié)果高于0.5,AUC值都不低于0.5。采用MultiTrAdaBoost,F(xiàn)度量值中6/9的結(jié)果高于0.75,G度量值中5/9的結(jié)果高于0.5,AUC值都不低于0.5。

        圖2、圖3和圖4進(jìn)一步對比了TrAdaBoost、Merge-TrAdaBoost和MultiTrAdaBoost算法的跨項目缺陷預(yù)測結(jié)果的F度量、G度量和AUC指標(biāo)。圖中前8項數(shù)據(jù)是基于TrAdaBoost進(jìn)行單源單目標(biāo)遷移訓(xùn)練獲得的評估結(jié)果,后2項數(shù)據(jù)展示了通過MergeTrAdaBoost 和MultiTrAdaBoost兩種算法進(jìn)行模型學(xué)習(xí)和預(yù)測所得的評估結(jié)果。以圖2中for08為例,縱軸為F度量,橫軸為訓(xùn)練對象。藍(lán)色柱狀代表以j48進(jìn)行訓(xùn)練獲得的F度量值,紅色柱狀代表以NB進(jìn)行訓(xùn)練獲得的F度量值。

        由于基于NB訓(xùn)練jedit43時存在異常,故而對比實驗不考慮其預(yù)測結(jié)果。

        由圖2可以看出,MergeTrAdaBoost和MultiTrAda-Boost預(yù)測結(jié)果F度量值優(yōu)于單源單目標(biāo)TrAdaBoost訓(xùn)練模型,同時不會獲得比TrAdaBoost更差的預(yù)測準(zhǔn)確率。這是因為有足夠的實例用于建模,并且兩種新算法能對數(shù)據(jù)進(jìn)行篩選加權(quán),獲得一個與目標(biāo)數(shù)據(jù)關(guān)聯(lián)性大的訓(xùn)練模型。

        (1)MergeTrAdaBoost和MultiTrAdaBoost獲得的F度量值普遍高于0.75,同時準(zhǔn)確率優(yōu)于單源單目標(biāo)訓(xùn)練模型。

        Fig.2 Comparison of F-measure圖2 F度量指標(biāo)對比

        (2)對于大部分目標(biāo)訓(xùn)練項目,MergeTrAdaBoost的F度量值優(yōu)于MultiTrAdaBoost。

        Fig.3 Comparison of G-measure圖3 G度量指標(biāo)對比

        (3)當(dāng)訓(xùn)練集數(shù)據(jù)規(guī)模遠(yuǎn)大于目標(biāo)數(shù)據(jù),換句話說,當(dāng)僅有少量目標(biāo)樣本數(shù)據(jù)時(for08、pbeans2和sys),NB所獲得的F度量值較高;而當(dāng)有更多參照樣本時,j48分類精確度更優(yōu)。

        由圖3可以看出,MergeTrAdaBoost和MultiTr-AdaBoost預(yù)測結(jié)果G度量值優(yōu)于大部分單源單目標(biāo)TrAdaBoost訓(xùn)練模型,有效降低了誤報率的影響。

        (1)MergeTrAdaBoost和MultiTrAdaBoost獲得的G度量值普遍高于0.5,同時優(yōu)于或不低于單源單目標(biāo)訓(xùn)練模型。

        (2)對于大部分目標(biāo)訓(xùn)練項目,MergeTrAdaBoost訓(xùn)練模型所得的G度量值優(yōu)于MultiTrAdaBoost。同時,對比9個目標(biāo)訓(xùn)練項目,基于j48的MergeTrAda-Boost獲得的G度量值相對高于NB。

        (3)當(dāng)訓(xùn)練集數(shù)據(jù)規(guī)模遠(yuǎn)大于目標(biāo)數(shù)據(jù)時,例如for08、pbeans2和sys,NB所獲得的G度量值較高,而j48無法降低誤報率。

        (4)對于TrAdaBoost、MergeTrAdaBoost和Multi-TrAdaBoost,基于j48的自適應(yīng)模型所獲得的G度量值普遍較高。

        由圖4可以看出,MergeTrAdaBoost和MultiTrAda-Boost預(yù)測結(jié)果AUC值優(yōu)于大部分單源單目標(biāo)TrAda-Boost訓(xùn)練模型,有效降低了誤報率的影響。

        (1)MergeTrAdaBoost和MultiTrAdaBoost算法獲得的AUC值普遍高于0.5。

        Fig.4 Comparison of AUC圖4 AUC指標(biāo)對比

        (2)對于大部分目標(biāo)訓(xùn)練項目,MergeTrAdaBoost算法訓(xùn)練模型所得的AUC值優(yōu)于MultiTrAdaBoost。同時對比9個目標(biāo)訓(xùn)練項目,基于j48的MergeTrAda-Boost獲得的AUC值相對高于NB。

        綜上,MergeTrAdaBoost和MultiTrAdaBoost算法適應(yīng)于跨項目缺陷預(yù)測多訓(xùn)練集的情況,有效避免了TrAdaBoost算法單源單目標(biāo)缺陷預(yù)測的兩極分化問題。

        4.4與項目內(nèi)缺陷預(yù)測的對比實驗

        進(jìn)而,本文將基于實例遷移的跨項目軟件缺陷預(yù)測與項目內(nèi)軟件缺陷預(yù)測進(jìn)行對比實驗。預(yù)測算法選取Na?ve Bayes算法。

        為了使實驗更充分,增加了項目數(shù)。從PROMISE數(shù)據(jù)集選用的實驗數(shù)據(jù)如下:

        (1)其他項目數(shù)據(jù)集log11、ivy11、ant13、log10、syn10、ant14、luc20、vel14、vel15、syn11、vel16、poi15、ivy14、luc22、syn12、jedit32、ant15、jedit40、jedit41、poi20、cam10、ant16、jedit42、poi25、xer、xer12、poi30、xer13、xer14、cam12、prop6、xal24、xal25、cam14、xal26。

        (2)目標(biāo)項目數(shù)據(jù)集ckjm、wsp、skleb、szy、pb1、inter、kal、nier、for07、zuzel、for08、work、term、berek、sera、skar、pb2、pdf、elearn、sys。

        實驗結(jié)果如表10所示,從中可得出以下結(jié)論:在目標(biāo)項目數(shù)據(jù)集不足的情況下,MergeTrAdaBoost算法和MultiTrAdaBoost算法都能達(dá)到甚至超過數(shù)據(jù)集充足時項目內(nèi)缺陷預(yù)測的預(yù)測效果。

        Table 10 G-measure of prediction results for different algorithms表10 不同算法預(yù)測結(jié)果的G度量指標(biāo)對比

        5 結(jié)束語

        為了通過解決不同項目的差異性問題,提高跨項目缺陷預(yù)測精確度,降低預(yù)測結(jié)果誤報率,本文研究提出了基于實例遷移的跨項目缺陷預(yù)測方法。該方法采用遷移學(xué)習(xí)和自適應(yīng)增強技術(shù),在訓(xùn)練模型階段,多次迭代并對訓(xùn)練實例加權(quán),降低相關(guān)性低的數(shù)據(jù)造成的影響,最終輸出一個分類能力較高的強分類器。其中模型訓(xùn)練引入TrAdaBoost算法,為解決其單源單目標(biāo)的局限性,提出兩種改進(jìn)方案:訓(xùn)練集合并預(yù)處理MergeTrAdaBoost算法和多源自適應(yīng)演化MultiTrAdaBoost算法。

        實驗表明,MergeTrAdaBoost和MultiTrAdaBoost算法適應(yīng)于跨項目缺陷預(yù)測多訓(xùn)練集的情況,有效避免了TrAdaBoost算法的單源單目標(biāo)缺陷預(yù)測兩極分化問題,能獲得較于TrAdaBoost更好的預(yù)測結(jié)果。這是因為有足夠的實例用于建模,并且兩種改進(jìn)算法能對實例進(jìn)行篩選加權(quán),獲得一個與目標(biāo)項目關(guān)聯(lián)性大的缺陷預(yù)測訓(xùn)練模型。在克服項目開始時缺陷預(yù)測的冷啟動問題的同時,MergeTrAdaBoost和MultiTrAdaBoost能夠獲得與傳統(tǒng)項目內(nèi)缺陷預(yù)測更優(yōu)的預(yù)測效果。

        下一步的研究工作主要針對以下兩個方面:在更多的項目上進(jìn)行實踐,深入研究該類源項目和目標(biāo)項目存在較好結(jié)果的原因,并改進(jìn)預(yù)測模型;采用更多數(shù)據(jù)集,開展更多對比實驗,尋找算法新的改進(jìn)方向。

        References:

        [1] Wang Qing, Wu Shujian, Li Mingshu. Software defect prediction[J]. Journal of Software, 2008, 19(7): 1565-1580.

        [2] Turhan B, Menzies T, Bener A, et al. On the relative value of cross-company and within-company data for defect prediction[J]. Empirical Software Engineering, 2007, 14(5): 540-578.

        [3] Briand L C, Melo W L, Wust J. Assessing the applicability of fault-proneness models across object-oriented software projects[J]. IEEE Transactions on Software Engineering, 2002, 28(7): 706-720.

        [4] Cruz A, Ochimizu K. Towards logistic regression models for predicting fault-prone code across software projects[C]//Proceedings of the 3rd International Symposium on Empirical Software Engineering and Measurement, Lake Buena Vista, USA,Oct15-16,2009.Piscataway,USA:IEEE,2009:460-463.

        [5] Nam J, Pan S J, Kim S. Transfer defect learning[C]//Proceedings of the 2013 International Conference on Software Engineering, San Francisco, USA, May 18-26, 2013. Piscataway, USA: IEEE, 2013: 382-391.

        [6] Pan S J, Tsang I W, Kwok J T, et al. Domain adaptation via transfer component analysis[J]. IEEE Transactions on Neural Networks, 2010, 22(2): 199-210.

        [7] 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.

        [8] Peters F, Menzies T, Marcus A. Better cross company defect prediction[C]//Proceedings of the 10th International Workshop on Mining Software Repositories, San Francisco, USA, May 18-19, 2013. Piscataway, USA: IEEE, 2013: 409-418.

        [9] Tosun A, Bener A B, Kale R. AI-based software defect predictors: applications and benefits in a case study[J].AI Magzine, 2011, 32(2): 57-68.

        [10] Jureczko M, Madeyski L. Towards identifying software project clusters with regard to defect prediction[C]//Proceedings of the 6th International Conference on Predictive Models in Software Engineering, Timisoara, Romania, Sep 12-13, 2010. New York, USA:ACM, 2012: 9.

        [11] Zhang F, Mockus A, Keivanloo I, et al. Towards building a universal defect prediction model[C]//Proceedings of the 11th Working Conference on Mining Software Repositories, Hyderabad,India,May31-Jun1,2014.New York,USA:ACM, 2014: 182-191.

        [12] Liu Yi, Khoshgoftaar T M, Seliya N. Evolutionary optimization of software quality modeling with multiple repositories[J]. IEEE Transactions on Software Engineering, 2010, 36(6): 852-864.

        [13] Freund Y, Schapire R E. A decision-theoretic generalization of on-line learning and an application to boosting[J]. Journal of Computer and System Sciences, 1995, 55(1): 119-139.

        [14] Dai Wenyuan, Yang Qiang, Xue Guirong, et al. Boosting for transfer learning[C]//Proceedings of the 24th International Conference on Machine Learning, Corvallis, USA, Jun 20-24, 2007. New York, USA:ACM, 2007: 193-200.

        [15] Yao Yi, Doretto G. Boosting for transfer learning with multiple sources[C]//Proceedings of the 2010 IEEE Conference on Computer Vision and Pattern Recognition, San Francisco, USA, Jun 13-18, 2010. Piscataway, USA: IEEE, 2010: 1855-1862.

        附中文參考文獻(xiàn):

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

        MAO Fagui was born in 1992. He is an M.S. candidate at Shanghai Jiao Tong University. His research interests include software defect prediction and software quality, etc.

        毛發(fā)貴(1992—),男,江西萍鄉(xiāng)人,上海交通大學(xué)碩士研究生,主要研究領(lǐng)域為軟件缺陷預(yù)測,軟件質(zhì)量等。

        LI Biwen was born in 1990. She received the M.S. degree in software engineering from Shanghai Jiao Tong University in 2015. Her research interests include software defect prediction and software quality, etc.

        李碧雯(1990—),女,江蘇蘇州人,2015年于上海交通大學(xué)軟件工程專業(yè)獲得碩士學(xué)位,目前在VMware公司任質(zhì)量工程師,主要研究領(lǐng)域為軟件缺陷預(yù)測,軟件質(zhì)量等。

        SHEN Beijun was born in 1969. She received the Ph.D. degree in software engineering from Institute of Software, Chinese Academy of Sciences in 2002. Now she is an associate professor at Shanghai Jiao Tong University, and the senior member of CCF. Her research interests include software process and software repository mining, etc.

        沈備軍(1969—),女,浙江慈溪人,2002年于中國科學(xué)院軟件所軟件工程專業(yè)獲得博士學(xué)位,現(xiàn)為上海交通大學(xué)副教授,CCF高級會員,主要研究領(lǐng)域為軟件過程,軟件倉庫挖掘等。近年來發(fā)表學(xué)術(shù)論文100余篇,主持多項國家及省部級項目。

        Cross-Project Software Defect Prediction Based on Instance Transfer*

        MAO Fagui, LI Biwen, SHEN Beijun+
        School of Software, Shanghai Jiao Tong University, Shanghai 200240, China
        + Corresponding author: E-mail: bjshen@sjtu.edu.cn

        MAO Fagui, LI Biwen, SHEN Beijun. Cross-project software defect prediction based on instance transfer. Journal of Frontiers of Computer Science and Technology, 2016, 10(1):43-55.

        Abstract:Cross-project defect prediction is considered as an effective means for solving the data shortage early in the project. Unfortunately, the performance of cross-project defect prediction is generally poor largely because of project variation. Focusing on this issue, this paper proposes a cross-project defect prediction approach based on instance transfer. The approach uses transfer learning and boosting technology to extract and transfer the training dataset high-related with target dataset from other projects, and builds a stronger combined classification model. The experimental results on PROMISE datasets show that, the proposed approach is superior to single-source single-target boosting methods with higher precision and recall; and in early phase with short data, it can achieve similar or better prediction results than intra-project approach with rich data.

        Key words:cross-project defect prediction; transfer learning; instance-based transfer; boosting

        文獻(xiàn)標(biāo)志碼:A

        中圖分類號:TP311.5book=45,ebook=49模型對開源項目進(jìn)行跨項目缺陷預(yù)測建模,預(yù)測另一個開源項目。實驗結(jié)果并不讓人滿意,但跨項目缺陷預(yù)測效果至少優(yōu)于隨機(jī)預(yù)測和一個簡單的類級別預(yù)測模型。Cruz等人[4]嘗試在預(yù)測前對數(shù)據(jù)分布進(jìn)行調(diào)整,通過數(shù)據(jù)轉(zhuǎn)換算法,獲取分布相似的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集,同時修剪數(shù)據(jù)集中異常的數(shù)據(jù)點,減少誤報的發(fā)生。Nam等人發(fā)現(xiàn)源數(shù)據(jù)集與目標(biāo)數(shù)據(jù)集的數(shù)據(jù)分布差異導(dǎo)致缺陷預(yù)測效果不理想[5],提出了傳遞缺陷學(xué)習(xí)算法,通過傳遞成分分析[6],轉(zhuǎn)換源數(shù)據(jù)集數(shù)據(jù),使得其接近目標(biāo)數(shù)據(jù)集的數(shù)據(jù)分布,提高了跨項目缺陷預(yù)測的效果。

        doi:10.3778/j.issn.1673-9418.1505089

        日韩国产一区| 肥老熟妇伦子伦456视频| 毛片无码国产| 日韩一欧美内射在线观看| 波多野无码AV中文专区| 久久精品亚洲国产av网站| 中文字幕日韩人妻在线视频| 成人片黄网站色大片免费观看cn| 久久免费视亚洲无码视频| 一区二区三区视频免费观看在线 | 国产高潮精品一区二区三区av| 中文字幕高清不卡视频二区| 高潮内射双龙视频| 富婆如狼似虎找黑人老外| 一本色道久久综合狠狠躁中文| av网站免费在线浏览| 99久久人妻无码精品系列| 色婷婷七月| 日韩精品极品视频在线免费| 日韩亚洲一区二区三区四区| 伊在人天堂亚洲香蕉精品区| 91亚洲国产成人aⅴ毛片大全| 国产免费99久久精品| 久久成人国产精品一区二区| 国产做a爱片久久毛片a片| 亚洲精品成人国产av| 亚洲国产av综合一区| 亚洲国产成人精品无码区在线秒播| 国产乱沈阳女人高潮乱叫老| 国产一区二区三区杨幂| 粉嫩国产av一区二区三区| 国产人妻人伦精品1国产盗摄| av无码天堂一区二区三区| 久久久精品国产老熟女| 老子影院午夜伦不卡| 国产真人无遮挡作爱免费视频 | 国产三级av在线播放| 亚洲av综合色区无码一区| 中文字幕乱码人妻一区二区三区| 无码91 亚洲| 精品国产亚洲av高清大片|