• 
    

    
    

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

      基于元學(xué)習(xí)的軟件缺陷預(yù)測推薦方法

      2015-06-24 13:56:40張雪瑩李瑞賢
      關(guān)鍵詞:軟件缺陷集上度量

      程 俊,張雪瑩,李瑞賢

      基于元學(xué)習(xí)的軟件缺陷預(yù)測推薦方法

      程 俊1,張雪瑩1,李瑞賢2

      (1.中國電子科學(xué)研究院,北京 100041;2.北京自動化控制設(shè)備研究所,北京 100074)

      基于機(jī)器學(xué)習(xí)的分類算法已被廣泛地應(yīng)用于預(yù)測軟件缺陷。然而,軟件缺陷數(shù)據(jù)的多樣化,導(dǎo)致單一分類算法難以在所有的軟件缺陷預(yù)測過程中均獲得最優(yōu)的分類性能,即不同的數(shù)據(jù)集上最適用的分類算法也不盡相同。本文提出了一種基于元學(xué)習(xí)和實(shí)例學(xué)習(xí)的軟件缺陷預(yù)測算法推薦方法。該方法僅依據(jù)待預(yù)測軟件缺陷數(shù)據(jù)的特征,為其推薦最適用的分類算法。

      軟件缺陷預(yù)測;元學(xué)習(xí);實(shí)例學(xué)習(xí);算法推薦

      0 引 言

      軟件缺陷預(yù)測是軟件工程中的一個非常重要的研究課題,它基于數(shù)據(jù)中的模塊缺陷記錄,如軟件模塊的靜態(tài)代碼數(shù)量、耦合度和復(fù)雜度等,對新的軟件模塊進(jìn)行缺陷預(yù)測,還能用以指導(dǎo)軟件項(xiàng)目的規(guī)劃與過程管理[1]。

      為了更好構(gòu)建軟件缺陷數(shù)據(jù)集中各屬性與模塊缺陷之間的關(guān)系模型,基于統(tǒng)計(jì)概率理論、優(yōu)化理論、決策理論等多學(xué)科理論的機(jī)器學(xué)習(xí)方法,近年來已被用于預(yù)測軟件缺陷,由于機(jī)器學(xué)習(xí)方法能夠建立多屬性到軟件缺陷值之間的更為復(fù)雜的函數(shù)關(guān)系,因此基于機(jī)器學(xué)習(xí)的分類算法能夠有效地預(yù)測軟件缺陷。

      常用軟件缺陷預(yù)測模型,包括基于實(shí)例學(xué)習(xí)的k最近鄰預(yù)測模型,基于決策樹的預(yù)測模型,基于樸素貝葉斯的預(yù)測模型,基于支持向量機(jī)的預(yù)測模型及集成的預(yù)測模型等等。經(jīng)實(shí)驗(yàn)比較分析[1],發(fā)現(xiàn)并不存在單一的分類算法在所有的軟件缺陷預(yù)測問題上均獲得最優(yōu)的分類性能。正如“No Free Lunch”(NFL)理論[2]所述:沒有一種算法適用于解決所有問題,數(shù)據(jù)集不同,所適用的方法也不相同。

      對于給定的軟件缺陷預(yù)測數(shù)據(jù)集,如何找出該數(shù)據(jù)集上最適用的分類算法是一個亟待解決的難題。針對該問題,本文提出了一種基于元學(xué)習(xí)的軟件缺陷預(yù)測算法推薦方法,依據(jù)待預(yù)測的軟件缺陷數(shù)據(jù)集本身的特征,利用基于實(shí)例學(xué)習(xí)的k-最近鄰分類方法,即可為其推薦出最適用的分類算法。

      1 推薦方法原理

      推薦方法主要由元知識數(shù)據(jù)庫的構(gòu)建與缺陷預(yù)測算法推薦兩部分構(gòu)成,具體過程如圖1所示。

      圖1 基于元學(xué)習(xí)的缺陷預(yù)測算法推薦框架

      (1)元知識數(shù)據(jù)庫構(gòu)建

      首先,抽取各軟件缺陷數(shù)據(jù)集中描述數(shù)據(jù)集本身特征的度量,生成相應(yīng)的特征向量,同時評估各數(shù)據(jù)集上所有候選軟件缺陷預(yù)測算法的性能,選出最優(yōu)的預(yù)測算法作為目標(biāo)概念;然后,將各數(shù)據(jù)集的特征向量與最優(yōu)的軟件缺陷預(yù)測算法一一對應(yīng),建立“數(shù)據(jù)集特征-最優(yōu)軟件缺陷預(yù)測算法”元知識數(shù)據(jù)庫。

      (2)軟件缺陷預(yù)測算法推薦

      若軟件缺陷數(shù)據(jù)集相似,那么其上最適用的缺陷預(yù)測算法的性能也相似。利用基于實(shí)例學(xué)習(xí)的k-最近鄰分類方法給出待預(yù)測的軟件缺陷數(shù)據(jù)集上最適用的預(yù)測算法。

      當(dāng)待預(yù)測軟件缺陷數(shù)據(jù)集到來時,首先,抽取該數(shù)據(jù)集的特征向量;然后,從元知識數(shù)據(jù)庫中找到距離該特征向量最近的k個近鄰,對k最近鄰上的最優(yōu)預(yù)測算法進(jìn)行投票,可獲得該數(shù)據(jù)集上最優(yōu)的軟件缺陷預(yù)測算法。

      (3)元知識庫更新

      每次推薦結(jié)果都揭示了新數(shù)據(jù)集上軟件缺陷預(yù)測算法與數(shù)據(jù)集特征之間的內(nèi)在聯(lián)系。該信息被添加到元知識數(shù)據(jù)庫中,元知識數(shù)據(jù)庫中信息越多,則越有利于提高軟件缺陷預(yù)測算法推薦方法的準(zhǔn)確率。因此,每次推薦后,新數(shù)據(jù)集上的<數(shù)據(jù)集特征,最優(yōu)軟件缺陷預(yù)測算法>二元關(guān)系,均被添加到元知識數(shù)據(jù)庫,進(jìn)而實(shí)現(xiàn)元知識數(shù)據(jù)庫的更新。

      2 元特征抽取

      學(xué)者們從不同的角度提出了許多數(shù)據(jù)集特征度量用以描述數(shù)據(jù)集特征與分類算法之間的關(guān)系,如傳統(tǒng)特征量、問題復(fù)雜度、Landmarking度量、基于模型度量以及結(jié)構(gòu)信息度量等。

      (1)傳統(tǒng)特征度量

      Brazdil等人[3]在實(shí)驗(yàn)研究中采用了一些與分類性能有關(guān)的傳統(tǒng)特征度量,包括簡單度量、統(tǒng)計(jì)度量和信息理論度量。其中,簡單度量主要用于描述數(shù)據(jù)集的基本信息,如樣本數(shù)量、屬性個數(shù)、類別個數(shù)及缺失樣本數(shù)量等;統(tǒng)計(jì)度量主要包括中心趨勢、方差分析和相關(guān)分析,描述了數(shù)據(jù)集中數(shù)據(jù)分布、數(shù)值特征及隨機(jī)變量之間的相關(guān)性;信息理論度量則常用于描述數(shù)據(jù)集中屬性特征及屬性間的關(guān)系,熵是信息理論度量中的一個關(guān)鍵度量,用于量化隨機(jī)變量的不確定性。傳統(tǒng)特征度量的表示符號和具體含義詳見表1。

      (2)問題復(fù)雜度

      Ho和Basu[4]實(shí)驗(yàn)證明問題復(fù)雜度度量與分類算法性能緊密相關(guān)。問題復(fù)雜度則關(guān)注于類邊界的復(fù)雜度,突出刻畫不同類別之間的關(guān)系,如分離或交叉重疊度等特征。問題復(fù)雜度的含義及其表示符號詳見表2。

      表1 傳統(tǒng)特征度量

      表2 問題復(fù)雜度度量

      (3)Landmarking度量

      Duin等人[5]利用簡單有效的學(xué)習(xí)算法分類性能上的差異性,間接地描述待分類問題的特征,即Landmarking度量。該度量不僅能夠判別不同類型的分類問題,還能突出分類算法的適用范圍。本文利用一組簡單有效的分類算法(Na?ve Bayes,IB1和C4.5)在各數(shù)據(jù)集上的分類性能作為Landmarking度量,用以描述不均衡數(shù)據(jù)集的特征。

      (4)基于模型的度量

      Peng等人[6?提出了基于決策樹的數(shù)據(jù)特征度量,將原始數(shù)據(jù)集歸納成決策樹的形式,而后抽取決策樹的模型信息來描述數(shù)據(jù)集本身特征。本章采用了C4.5算法為每個數(shù)據(jù)集構(gòu)建決策樹,用以描述不均衡數(shù)據(jù)集的特征?;谀P偷臄?shù)據(jù)集特征度量的詳細(xì)信息見表3。

      表3 基于模型的度量

      (5)結(jié)構(gòu)信息度量

      Song等人[7]提出了一種結(jié)構(gòu)信息度量,用以描述數(shù)據(jù)集特征與分類算法之間的關(guān)系,實(shí)現(xiàn)分類算法的自動推薦。表4給出了結(jié)構(gòu)信息度量。與傳統(tǒng)的數(shù)據(jù)集特征度量不同,結(jié)構(gòu)信息度量并不是從原始的數(shù)據(jù)集上直接獲取,而須將原始數(shù)據(jù)集轉(zhuǎn)換為二元數(shù)據(jù)集,獲得二元數(shù)據(jù)集的一項(xiàng)集VI和二項(xiàng)集VII。其中,VI是由二元數(shù)據(jù)集中每一項(xiàng)出現(xiàn)的頻率組成的項(xiàng)集,而二項(xiàng)集則是由二元數(shù)據(jù)集中每兩項(xiàng)同時出現(xiàn)的頻率組成的項(xiàng)集。為了實(shí)現(xiàn)不同數(shù)據(jù)集的同一比較,將兩個項(xiàng)集VI和VII升序排列,并抽取VI和VI中的最小值、八分位數(shù)和最大值描述數(shù)據(jù)集特征。

      表4 基于結(jié)構(gòu)信息的度量

      3 最優(yōu)算法識別

      軟件缺陷預(yù)測算法的性能主要通過軟件缺陷數(shù)據(jù)集上的分類算法的性能來體現(xiàn)。為了評估候選軟件缺陷預(yù)測算法的性能,本文采用了接收者操作特征曲線(Receive Operating Characteristics,ROC)曲線下面積(Area of the Curve,AUC)來評價(jià)軟件缺陷預(yù)測算法的分類性能。依據(jù)AUC對軟件缺陷預(yù)測算法進(jìn)行排序,選取最高AUC對應(yīng)的分類算法作為最優(yōu)預(yù)測算法。

      ROC曲線[8]是一種用于比較分類模型有效性的可視化工具,它顯示了分類模型的真正例率(TPR)與假正例率(FPR)的權(quán)衡。其中,TPR和FPR是兩個進(jìn)行比較的操作特征。軟件缺陷預(yù)測數(shù)據(jù)集大多類不均衡分布數(shù)據(jù)集,對于這一類數(shù)據(jù)集,ROC曲線可用于直觀地描述分類模型正確地識別少數(shù)類樣本的比例與誤分多數(shù)類樣本的比例之間的權(quán)衡。ROC曲線下方的面積AUC是分類精度,AUC越大,分類精度越高。計(jì)算公式如下:

      4 缺陷預(yù)測算法推薦

      推薦方法旨在不需對所有候選缺陷預(yù)測算法進(jìn)行反復(fù)試驗(yàn)評估,即可給出待預(yù)測軟件缺陷數(shù)據(jù)集上最優(yōu)的預(yù)測算法,圖2給出了詳細(xì)的推薦過程。

      圖2軟件缺陷預(yù)測算法推薦過程

      首先,由于各指標(biāo)度量單位不同,為了能夠使各指標(biāo)能夠參與評價(jià)計(jì)算,需要對元知識數(shù)據(jù)庫中的特征向量進(jìn)行規(guī)范化,本章采用了極值法將特征度量統(tǒng)一地映射到[0,1]區(qū)間。

      然后,從規(guī)范化的元知識數(shù)據(jù)庫MetaDB中,找出與待分類數(shù)據(jù)集最相似的k個最近鄰。其中,利用無權(quán)重的L1范數(shù)[168]度量數(shù)據(jù)集間的相似性,不僅易于計(jì)算且便于理解,計(jì)算公式如下:

      式中,data表示待分類數(shù)據(jù)集,di代表元知識數(shù)據(jù)庫MetaDB中第i個數(shù)據(jù)集,vx,data和vx,di分別代表數(shù)據(jù)集data和di中第x個元特征值。

      最后,對k最近鄰上的最優(yōu)預(yù)測算法進(jìn)行投票,即可獲得待分類數(shù)據(jù)集上最適用的軟件缺陷預(yù)測算法。

      推薦算法的計(jì)算開銷主要在于構(gòu)建“數(shù)據(jù)集特征-最優(yōu)缺陷預(yù)測算法”元知識數(shù)據(jù)庫。假設(shè)有n個歷史數(shù)據(jù)集,抽取數(shù)據(jù)特征的時間復(fù)雜度為O(n);評估所有候選軟件預(yù)測算法性能的時間復(fù)雜度為∑iO(Ci(n)),其中,Ci為第i種軟件缺陷預(yù)測算法;構(gòu)建元知識數(shù)據(jù)庫的時間復(fù)雜度為O(n)+∑iO(Ci(n))。

      當(dāng)待分類軟件缺陷數(shù)據(jù)集到來時,利用基于實(shí)例學(xué)習(xí)的k-最近鄰方法,為其推薦最適用的軟件缺陷預(yù)測算法。k-最近鄰方法的優(yōu)點(diǎn)在于它不預(yù)先構(gòu)建分類模型,而只是從元知識數(shù)據(jù)庫中,找出離該數(shù)據(jù)集最近的k個近鄰,并對k最近鄰上最優(yōu)的軟件缺陷預(yù)測算法進(jìn)行投票,即可獲得待分類軟件缺陷數(shù)據(jù)集上最優(yōu)的軟件缺陷預(yù)測算法,預(yù)測過程的時間度為O(n)。

      5 實(shí)驗(yàn)結(jié)果與分析

      為了保證實(shí)驗(yàn)的客觀性和可再現(xiàn)性,本章在公開的軟件缺陷預(yù)測數(shù)據(jù)集上對基于實(shí)例學(xué)習(xí)的軟件缺陷預(yù)測算法推薦方法進(jìn)行了實(shí)驗(yàn)評估與驗(yàn)證。

      5.1實(shí)驗(yàn)數(shù)據(jù)

      本實(shí)驗(yàn)在18個來自Promise[9]數(shù)據(jù)庫的軟件缺陷數(shù)據(jù)集,其中5個源自PROMISE軟件工程數(shù)據(jù)庫,13個源自美國宇航局(NASA)MDP項(xiàng)目的數(shù)據(jù)集。MDP是由美國宇航局提供一個軟件度量庫,并通過網(wǎng)站提供給普通用戶。MDP的數(shù)據(jù)存儲了系統(tǒng)在模塊(函數(shù)/方法)級的軟件產(chǎn)品的度量數(shù)據(jù)和相關(guān)的缺陷數(shù)據(jù);實(shí)驗(yàn)數(shù)據(jù)集的樣本數(shù)量分布在115~5472之間,屬性數(shù)量分布于5~63之間,不均衡率分布在1.06~41.1之間。表5給出了18個軟件缺陷數(shù)據(jù)集的統(tǒng)計(jì)信息,其中F、I、IR分別代表屬性數(shù)量、樣本數(shù)量以及不均衡率。

      表5 18軟件缺陷數(shù)據(jù)集的統(tǒng)計(jì)信息

      5.2實(shí)驗(yàn)設(shè)置

      為了全面地驗(yàn)證推薦算法的有效性,并保證實(shí)驗(yàn)的可再現(xiàn)性,本節(jié)對實(shí)驗(yàn)中的各個環(huán)節(jié)進(jìn)行了如下設(shè)置:

      (1)數(shù)據(jù)集特征

      在軟件預(yù)測方法推薦過程中,哪些數(shù)據(jù)集特征更能刻畫出不均衡數(shù)據(jù)處理方法的適用范圍是未知的。因此,實(shí)驗(yàn)過程中收集了所有可用的數(shù)據(jù)集特征度量,以便盡可能全面地描述軟件缺陷數(shù)據(jù)集的特性,主要包括傳統(tǒng)特征度量(Traditional Metrics)、問題復(fù)雜度(ComplexityMetrics)、Landmarking度量、基于模型的度量(Model Based Metrics)以及結(jié)構(gòu)信息度量(NewMetrics和NewMetricXor)。

      (2)軟件缺陷預(yù)測算法

      給定待分類不均衡數(shù)據(jù)集,為了能夠推薦出最適用的軟件缺陷預(yù)測算法,收集了7種最常用的軟件缺陷預(yù)測算法作為候選預(yù)測算法,在各實(shí)驗(yàn)數(shù)據(jù)集上進(jìn)行學(xué)習(xí)。

      ①基于實(shí)例學(xué)習(xí)的最近鄰分類算法[1,10](k-NN),該算法并不預(yù)先構(gòu)建預(yù)測模型,而是當(dāng)待分類元組到來時,從訓(xùn)練樣本中尋找距離待分類樣本最近的元組,即最近鄰,該最近鄰的類別即為待分類元組的類別。該算法能快速地學(xué)習(xí)復(fù)雜的目標(biāo)函數(shù),同時不會丟失信息,而且對噪聲有較強(qiáng)的魯棒性。然而,該算法在預(yù)測時花銷很大。此外,該算法的性能與樣本間的相似性及最近鄰個數(shù)的確定有著密切的關(guān)系。

      ②決策樹分類算法[1,11](J48),該算法是一種類似于流程圖的樹結(jié)構(gòu),其中,每個內(nèi)部節(jié)點(diǎn)(非樹葉節(jié)點(diǎn))表示在一個屬性上的測試,每個分枝代表該測試的一個輸出,而每個樹葉節(jié)點(diǎn)(或終端節(jié)點(diǎn))存放一個類標(biāo)號。數(shù)的最頂層節(jié)點(diǎn)是根節(jié)點(diǎn)。給定一個類標(biāo)號未知的元組,在決策樹上測試該元組的屬性值。跟蹤一條由根到葉節(jié)點(diǎn)的路徑,葉節(jié)點(diǎn)就存放著該元組的類預(yù)測。決策樹很容易轉(zhuǎn)換成分類規(guī)則。該算法的性能取決于樹節(jié)點(diǎn)的分裂規(guī)則以及修剪技術(shù)。

      ③神經(jīng)網(wǎng)絡(luò)分類算法[1,12](MLP),神經(jīng)網(wǎng)絡(luò)是一組連接的輸入/輸出單元,其中每個連接都與一個權(quán)重相關(guān)聯(lián)。在學(xué)習(xí)階段,通過調(diào)整這些權(quán)重,使得它能夠預(yù)測輸入元組的正確類標(biāo)號來學(xué)習(xí)。目前發(fā)展最為成熟、應(yīng)用最為廣泛,且常用語軟件缺陷預(yù)測的是基于后向傳播的多層前饋神經(jīng)網(wǎng)絡(luò)。該算法對噪聲數(shù)據(jù)具有較高的承受能力,并能夠?qū)ξ唇?jīng)訓(xùn)練的數(shù)據(jù)模式進(jìn)行分類,尤其適用于屬性與類間的聯(lián)系知識缺失時的分類任務(wù)。然而,該算法訓(xùn)練時間較長,且有大量的參數(shù)需預(yù)先設(shè)定,大多靠經(jīng)驗(yàn)來確定。

      ④樸素貝葉斯分類法[1,13](NB),是一種統(tǒng)計(jì)學(xué)分類方法,可用以預(yù)測類隸屬關(guān)系的概率。該算法假定一個屬性值在給定類上的影響?yīng)毩⒂谄渌麑傩缘闹担悧l件獨(dú)立性)。理論上,貝葉斯分類法具有最小的錯誤率。然而,實(shí)踐中并非總是如此,因?yàn)轭悧l件獨(dú)立是理想情況。Menzies等[14]和Rish[15]采用了樸素貝葉斯分類算法構(gòu)建了軟件缺陷預(yù)測模型,獲得了很好的分類性能。

      ⑤支持向量機(jī)SVM分類法[16,17](SVM),使用一種非線性映射,把原訓(xùn)練數(shù)據(jù)映射到較高的維上。在新的維上,搜索最佳分離超平面(即將一個類的元組與其他類分離的“決策邊界”)。該算法對復(fù)雜的非線性邊界具有較強(qiáng)建模能力,對噪聲有較好的魯棒性,不易過分?jǐn)M合,且能夠提供全局最佳的決策平面。邢飛等人[18]利用支持向量機(jī)分類算法構(gòu)建了軟件缺陷預(yù)測模型,并獲得了較好的分類性能。

      ⑥邏輯回歸法[19,20](Log),將軟件缺陷預(yù)測模型看作是學(xué)習(xí)一個近似函數(shù),若是預(yù)測缺陷數(shù)量,該學(xué)習(xí)任務(wù)就是統(tǒng)計(jì)方法中的回歸問題;若是預(yù)測軟件模塊是否有缺陷,則是二元分類問題。McCabe[18]和Ostrand[19]利用回歸方法建立了軟件缺陷預(yù)測模型,獲得了較低的回歸誤差。然而,基于回歸方法建立的軟件缺陷預(yù)測模型缺乏可解釋性,無法對預(yù)測模型給出的結(jié)果難以分析其原因。

      ⑦隨機(jī)森林[21,22](Random Forest),是一種組合分類方法。其中每個分類器都是一棵決策樹,因此分類器的集合就是一個“森林”。隨著森林中數(shù)的個數(shù)增加,森林的泛化誤差收斂。隨機(jī)森林的準(zhǔn)確率對錯誤和離群點(diǎn)更魯棒,在大型數(shù)據(jù)庫上非常有效,且可能比裝袋和提升方法更快。

      (3)性能評估方法

      在評估不均衡數(shù)據(jù)處理方法的分類性能時,采用10×10折交叉驗(yàn)證,充分利用數(shù)據(jù)信息的同時,盡可能地減少隨機(jī)序列產(chǎn)生的偶然誤差。為了無偏地評估推薦方法的預(yù)測性能,采用了Jackknife方法[23],每次將建模數(shù)據(jù)集分成兩部分,測試集中只包含一個樣本,其余樣本作為訓(xùn)練集,用于構(gòu)建推薦模型,直至每一個樣本都被推薦一個軟件缺陷預(yù)測算法。Jackknife方法不僅能夠降低序列相關(guān)性評估量的偏差,也能夠提高預(yù)測模型的泛化能力。

      (4)性能評價(jià)指標(biāo)

      利用后向傳播神經(jīng)網(wǎng)絡(luò)方法預(yù)測各軟件缺陷數(shù)據(jù)集上最適用的缺陷預(yù)測算法。為了更全面地評價(jià)推薦方法的性能,采用了命中率以及分類性能。

      ①命中率(HR),用以評價(jià)推薦算法的準(zhǔn)確性。每個軟件缺陷數(shù)據(jù)集都對應(yīng)著一個最優(yōu)的分類算法。當(dāng)推薦的軟件缺陷預(yù)測方法與實(shí)際最優(yōu)的分類算法相同時,即命中;否則,沒有命中,即推薦的不準(zhǔn)確。

      ②分類性能(AUC),通過評估推薦的分類算法在軟件缺陷數(shù)據(jù)集上的分類性能,間接地評價(jià)推薦算法的準(zhǔn)確性。

      5.3結(jié)果與分析

      5.3.1命中率

      本節(jié)了軟件缺陷預(yù)測算法推薦方法在18個軟件缺陷數(shù)據(jù)集上的推薦結(jié)果,并針對每一種數(shù)據(jù)集特征度量,給出了推薦模型的命中率,詳見表6。其中,Org代表各數(shù)據(jù)集上實(shí)際最優(yōu)的軟件缺陷預(yù)測算法,其他各列代表基于不同的數(shù)據(jù)集度量推薦出的軟件缺陷預(yù)測算法。HR表示命中率。

      表6 推薦命中率比較分析

      通過比較分析,基于決策樹的模型度量(Model-Metrics)時,采用基于實(shí)例學(xué)習(xí)的IBk(k=3)推薦算法的命中率最高,意味著基于決策樹的模型度量(ModelBasedMetrics)能夠更好地用于描述軟件缺陷數(shù)據(jù)集的特性。

      5.3.2分類性能

      本節(jié)給出軟件缺陷預(yù)測算法推薦方法在18個軟件缺陷數(shù)據(jù)集上的推薦性能。表7給出了各數(shù)據(jù)集上實(shí)際最優(yōu)的分類算法(AC),推薦出的最優(yōu)分類算法(RC),實(shí)際最優(yōu)分類性能(AP),推薦算法對應(yīng)的分類性能(RP),IB1、J48、Log、MP、NB、RF及SVM分別代表采用指定單一分類算法進(jìn)行軟件缺陷預(yù)測時對應(yīng)的分類性能。

      通過比較可以發(fā)現(xiàn),雖然推薦出的軟件缺陷預(yù)測算法的分類性能相較于實(shí)際最優(yōu)的分類性能平均低了2.17%,但相比于采用其他單一算法的分類性能,推薦算法的分類性能平均提高了1.58~55.39%。分別來看,推薦出的軟件缺陷預(yù)測算法的分類性能平均比IB1提高了24.27%,比J48提高了21.68%,比Log提高了5.28%,MP提高了2.04%,NB提高了1.58%,比RF提高了2.92%,比SVM提高了55.39%。

      表7 推薦分類算法的性能比較

      6 結(jié) 語

      針對如何為待預(yù)測的軟件缺陷預(yù)測問題推薦最適用的缺陷預(yù)測算法的問題,本文提出了一種基于元學(xué)習(xí)和實(shí)例學(xué)習(xí)的軟件缺陷預(yù)測算法推薦方法。實(shí)驗(yàn)結(jié)果表明,基于元學(xué)習(xí)和實(shí)例學(xué)習(xí)的軟件缺陷預(yù)測算法推薦方法能夠有效地為未知數(shù)據(jù)推薦出最適用的軟件缺陷預(yù)測算法。在未來的研究工作中,隨著元知識庫的不斷擴(kuò)充,推薦方法的性能將會越來越高。

      [1] 馬櫻.基于機(jī)器學(xué)習(xí)的軟件缺陷預(yù)測技術(shù)研究[D].成都.電子科技大學(xué),2012.

      [2] Wolpert DH.The supervised learning no-free-lunch theorems[M].Soft Computing and Industry.Springer,2002:25-42.

      [3] Brazdil P,Gama Ja,o,Henery B.Characterizing the applicability of classification algorithms using meta-level learning[C].European Conference on Machine Learning,1994:83-102.

      [4] Ho TK,Basu M.Complexitymeasures of supervised classification problems[J].IEEE Transactions on Pattern A-nalysis and Machine Intelligence,2002,24(3):289-300.

      [5] Duin RPW,Pekalska E,Tax DMJ.The characterization of classification problems by classifier disagreements[C]. Proceedings of the 17th International Conference on Pattern Recognition,2004:141-143.

      [6] Peng Y,F(xiàn)lach PA,Brazdil P,etal.Decision Tree-Based Data Characterization for Meta-Learning[J].IDDM,2002:111.

      [7] Song Q,Wang G,Wang C.Automatic recommendation of classification algorithms based on data set characteristics[J].Pattern Recognition,2012,45(7):2672-2689.

      [8] Fawcett T.ROC graphs:Notes and practical considera-tions for researchers[J].Machine Learning,2004,31:1-38.

      [9] Boetticher G,Menzies T,Ostrand T.Promise repository of empirical software engineering data http://promisedata.org/repository.Department of Computer Science[J]. West Virginia University,2007.

      [10]Fix E,Hodges Jr JL.Discriminatory analysis-nonparametric discrimination:consistency properties[R].CaliforniaUniv Berkeley,1951.

      [11]Quinlan JR.C4.5:programs formachine learning[M]. Morgan kaufmann,1993.

      [12]Hecht-Nielsen R.Theory of the backpropagation neural network[C].International Joint Conference on Neural Networks,1989:593-605.

      [13]Ezawa KJ,Singh M,Norton SW.Learning goal oriented Bayesian networks for telecommunications risk management[C].International Conference on Machine Learning,1996:139-147.

      [14]T.Menzies,J.Greenwald,A.Frank.Datamining static code attributes to learn defect predictors.IEEE Transactions on Software Engineering,2007,33(1):2-13.

      [15]I.Rish.An empirical study of the naive Bayes classifier. In:Proceedings of the Workshop on Empirical Methods in Artificial Intel ligence,Seattle,Washington,USA,2001,41-46.

      [16]于安雷.基于數(shù)據(jù)挖掘的軟件缺陷數(shù)據(jù)預(yù)測方法研究[D].南京:南京大學(xué),2012.

      [17]王洋,張延華.基于數(shù)據(jù)挖掘的電信故障分類及回歸預(yù)測[J].中國電子科學(xué)研究院學(xué)報(bào).2012(6):617-622.

      [18]F.Xing,P.Guo,M.R.Lyu.A novelmethod for early software quality prediction based on support vector machine.In:Proceedings of the 16th IEEE International Symposium on.Software Reliability Engineering,Chicago,Illinois,USA,2005,213-222.

      [19]T.J.Mc Cabe.A complexity measure.IEEE Transactions on Software Engineering,1976,SE-2(4):308-320.

      [20]T.J.Ostrand,E.J.Weyuker,R.M.Bell.Predicting the location and number of faults in large software systems.IEEE Transactions on Software Engineering,2005,31(4):340-355.

      [21]韓家煒,坎伯.數(shù)據(jù)挖掘:概念與技術(shù)[J].北京:機(jī)械工業(yè)出版社,2001.

      [22]Breiman L.Random forests[J].Machine Learning,2001,45(1):5-32.

      [23]Shao J.The efficiency and consistency of approximations to the jackknife variance estimators[J].Journalof the A-merican Statistical Association,1989,84(405):114-119.

      A Meta-Learning Based Recommendation Method for Software Defect Prediction

      CHENG Jun1,ZHANG Xue-ying1,LIRui-xian2
      (1.China Academy of Electronics and Information Technology,Beijing 100041,China;2.Beijing Institute of Aerospace Control Devices,Beijing 100074,China)

      Machine learning based classification algorithms have been widely used for software defect prediction.Actually,it is difficult for one single classification algorithm to perform well on all tasks due to the diversity of the software defect data sets.The optimal classification algorithms on different data sets are different.Therefore,we propose ameta-learning and instance learning based recommendationmethod for software defect prediction,which can be used for recommending an optimal classification algorithm for the given software defect data set.

      software defect prediction;meta-learning;instance-based learning;algorithm recommendation

      TP39

      :A

      :1673-5692(2015)06-620-08

      程 ?。?979—),男,安徽合肥人,高級工程師,碩士,主要研究方向?yàn)橛?jì)算機(jī)軟件;

      E-mail:scaven@163.com

      張雪瑩(1987—),女,北京人,工程師,博士,主要研究方向?yàn)閿?shù)據(jù)挖掘與機(jī)器學(xué)習(xí);

      李瑞賢(1987—),男,北京人,工程師,碩士,主要研究方向?yàn)榍度胧綉?yīng)用開發(fā)。

      10.3969/j.issn.1673-5692.2015.06.011

      2015-11-09

      2015-12-10

      猜你喜歡
      軟件缺陷集上度量
      有趣的度量
      模糊度量空間的強(qiáng)嵌入
      基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
      Cookie-Cutter集上的Gibbs測度
      鏈完備偏序集上廣義向量均衡問題解映射的保序性
      迷向表示分為6個不可約直和的旗流形上不變愛因斯坦度量
      基于NPE-SVM的軟件缺陷預(yù)測模型
      復(fù)扇形指標(biāo)集上的分布混沌
      開源程序的軟件缺陷分布特征的量化分析研究
      地質(zhì)異常的奇異性度量與隱伏源致礦異常識別
      焦作市| 玉林市| 福贡县| 宁明县| 宁陵县| 潜江市| 富裕县| 平武县| 汝阳县| 新疆| 河北区| 隆安县| 康平县| 天全县| 常州市| 库尔勒市| 庆云县| 延安市| 安图县| 南澳县| 昌黎县| 德州市| 白玉县| 东城区| 绥滨县| 邹城市| 天全县| 抚远县| 万源市| 阳原县| 泗水县| 礼泉县| 英吉沙县| 贵溪市| 长汀县| 台前县| 开封市| 巴中市| 麦盖提县| 鹰潭市| 南城县|