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

        ?

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

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

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

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

        Received 2015-05,Accepted 2015-07.

        CNKI網(wǎng)絡優(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

        ?

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

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

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

        Received 2015-05,Accepted 2015-07.

        CNKI網(wǎng)絡優(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

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

        1 引言

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

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

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

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

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

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

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

        本文主要貢獻包括:

        (1)跨項目的實例遷移技術。以目標項目數(shù)據(jù)樣本和其他項目數(shù)據(jù)集為基礎,通過基于實例的遷移學習,進行跨項目缺陷預測建模。實驗表明,在目標項目數(shù)據(jù)集不足的情況下,實例遷移技術能使跨項目缺陷預測達到甚至超過項目內缺陷預測的效果。

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

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

        實驗結果表明MergeTrAdaBoost和MultiTrAda-Boost適應于跨項目缺陷預測多訓練集的情況,獲得了更高的預測準確率和查全率。

        本文組織結構如下:第2章綜述和分析了跨項目軟件缺陷預測的相關工作;第3章提出了基于實例遷移的跨項目缺陷預測方法;第4章對新方法進行了實驗及對比分析;第5章進行總結。

        2 相關工作

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

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

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

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

        關鍵詞:跨項目缺陷預測;遷移學習;基于實例的遷移;自適應增強

        Table 1 Analysis of related works表1 相關技術分析

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

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

        2.2項目相似性分組

        Jureczko和Madeyski[10]認為相似的項目之間預測效果會更好,通過對一個項目進行缺陷預測建模,能夠將模型重用到其他組群中的項目上,并實驗驗證了這些預測模型的結果優(yōu)于項目內缺陷預測。

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

        2.3自適應預測模型

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

        2.4小結

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

        3 實例遷移與跨項目軟件缺陷預測

        3.1跨項目軟件缺陷預測方法概述

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

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

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

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

        3.2TrAdaBoost算法的多源改進

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

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

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

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

        3.2.2TrAdaBoost算法的改進

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

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

        方案2多源自適應演化(multi-source TrAdaBoost,MultiTrAdaBoost)。通過多次單源單目標訓練,加權合并,形成強訓練模型。

        3.3MergeTrAdaBoost算法

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

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

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

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

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

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

        3.4MultiTrAdaBoost算法

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

        在TrAdaBoost算法基礎上改進后的MultiTrAda-Boost算法的基本步驟包括:

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

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

        (2.1)通過基本分類算法Learner,學習Tk并構建分類器。

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

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

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

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

        4 實驗

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

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

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

        (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條。

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

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

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

        4.2TrAdaBoost實驗

        首先使用TrAdaBoost進行基于單目標單訓練集遷移的跨項目預測實驗?;贜B和j48,TrAdaBoost算法缺陷預測結果的F度量、G度量和AUC的指標值如表2至表7所示。

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

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

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

        Table 4 AUC of TrAdaBoost cross-project defect prediction based on NB表4 基于NB的TrAdaBoost跨項目缺陷預測AUC指標

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

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

        Table 7 AUC of TrAdaBoost cross-project defect prediction based on j48表7 基于j48的TrAdaBoost跨項目缺陷預測AUC指標

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

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

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

        總結上述實驗的分析結果,驗證了多源多目標改進算法的必要性:

        (1)使用多個其他項目集作為訓練集,能提高最終預測結果的準確度。

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

        4.3MergeTrAdaBoost和MultiTrAdaBoost實驗

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

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

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

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

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

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

        由于基于NB訓練jedit43時存在異常,故而對比實驗不考慮其預測結果。

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

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

        Fig.2 Comparison of F-measure圖2 F度量指標對比

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

        Fig.3 Comparison of G-measure圖3 G度量指標對比

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

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

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

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

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

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

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

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

        Fig.4 Comparison of AUC圖4 AUC指標對比

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

        綜上,MergeTrAdaBoost和MultiTrAdaBoost算法適應于跨項目缺陷預測多訓練集的情況,有效避免了TrAdaBoost算法單源單目標缺陷預測的兩極分化問題。

        4.4與項目內缺陷預測的對比實驗

        進而,本文將基于實例遷移的跨項目軟件缺陷預測與項目內軟件缺陷預測進行對比實驗。預測算法選取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)目標項目數(shù)據(jù)集ckjm、wsp、skleb、szy、pb1、inter、kal、nier、for07、zuzel、for08、work、term、berek、sera、skar、pb2、pdf、elearn、sys。

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

        Table 10 G-measure of prediction results for different algorithms表10 不同算法預測結果的G度量指標對比

        5 結束語

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

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

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

        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.

        附中文參考文獻:

        [1]王青,伍書劍,李明樹.軟件缺陷預測技術[J].軟件學報, 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)人,上海交通大學碩士研究生,主要研究領域為軟件缺陷預測,軟件質量等。

        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年于上海交通大學軟件工程專業(yè)獲得碩士學位,目前在VMware公司任質量工程師,主要研究領域為軟件缺陷預測,軟件質量等。

        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年于中國科學院軟件所軟件工程專業(yè)獲得博士學位,現(xiàn)為上海交通大學副教授,CCF高級會員,主要研究領域為軟件過程,軟件倉庫挖掘等。近年來發(fā)表學術論文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

        文獻標志碼:A

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

        doi:10.3778/j.issn.1673-9418.1505089

        猜你喜歡
        遷移學習
        《宋史·曾公亮傳》傳主形象論析
        文學教育(2018年7期)2018-07-17 18:50:52
        基于深度神經(jīng)網(wǎng)絡的人體動作識別研究
        威斯頓相互作用法在社會保險學課程教學中的實踐
        基于卷積神經(jīng)網(wǎng)絡的圖像分類技術
        科技視界(2017年32期)2018-01-24 17:54:40
        遷移學習在專業(yè)課程教學中的實踐研究
        遷移學習研究綜述
        從認知角度探討大學英語網(wǎng)絡教學模式
        基于多特征融合的跨域情感分類模型研究
        奇異值分解與移移學習在電機故障診斷中的應用
        一種基于遷移極速學習機的人體行為識別模型
        全国一区二区三区女厕偷拍| 欧美激情五月| 毛片在线啊啊| 中文字幕亚洲乱码熟女1区2区| 无人区乱码一区二区三区| 国产免费av片在线播放| 国产特级全黄一级毛片不卡| 日本一极品久久99精品| 亚洲国产av一区二区四季| 久久精品夜色国产亚洲av| 狠狠躁夜夜躁人人爽超碰97香蕉| 亚洲国产成人久久综合三区| 国产一区二区精品人妖系列在线| 三年的高清电影免费看| 8888四色奇米在线观看| 亚洲精品美女久久久久99| 中文字幕乱码亚洲在线| 国产成人无码精品久久二区三区| 免费无码av片在线观看网址| 久久久久久一本大道无码 | 无码在线观看123| 亚洲女同高清精品一区二区99| av人摸人人人澡人人超碰下载| 日本边添边摸边做边爱的网站| 91青草久久久久久清纯| 亚洲国产女同在线观看| 麻花传媒68xxx在线观看| 全免费a级毛片| 偷拍熟女亚洲另类| 亚洲日本人妻少妇中文字幕| 亚洲av日韩av在线观看| 精品 无码 国产观看| 美女把内衣内裤脱了给男人舔| 免费国产线观看免费观看 | 另类一区二区三区| 看大陆男女真人草逼视频| 无码国产成人午夜电影在线观看| 国产精品麻豆欧美日韩ww| 亚洲色欲色欲欲www在线| 亚洲中文字幕久久精品色老板 | 美腿丝袜在线观看视频|