国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

使用EBIC的軟件故障特征選擇方法*

2020-02-20 03:42涂吉屏范道遠(yuǎn)張涵宇
計(jì)算機(jī)與生活 2020年2期
關(guān)鍵詞:子集特征選擇排序

涂吉屏,錢 曄,王 煒,2,范道遠(yuǎn),張涵宇

1.云南大學(xué) 軟件學(xué)院,昆明 650500

2.云南省軟件工程重點(diǎn)實(shí)驗(yàn)室,昆明 650500

3.云南農(nóng)業(yè)大學(xué) 大數(shù)據(jù)學(xué)院(信息工程學(xué)院),昆明 650201

1 引言

軟件故障預(yù)測通過設(shè)計(jì)與代碼或軟件開發(fā)過程相關(guān)的度量指標(biāo)(metrics),并挖掘軟件歷史倉庫中的缺陷數(shù)據(jù)來建立預(yù)測模型,以確定待評估軟件模塊是否具有易發(fā)生故障的傾向[1-3]。故障預(yù)測中度量指標(biāo)即為特征,以一組代碼的特征xi及其類標(biāo)yi作為輸入構(gòu)建預(yù)測模型,并以新代碼模塊的特征xi預(yù)測其yi的傾向性,即預(yù)測該代碼模塊是否可能存在潛在的故障。實(shí)現(xiàn)高效的軟件故障預(yù)測幫助開發(fā)及維護(hù)人員將有限資源集中分配到有發(fā)生故障傾向性的軟件模塊[4-5],但由于構(gòu)建預(yù)測模型的數(shù)據(jù)種類較多,若采用大量度量指標(biāo)建立預(yù)測模型,容易造成維度災(zāi)難,且因其中含有無關(guān)特征,可能使預(yù)測模型性能受到不良影響[6-7],因此特征選擇方法是建立故障預(yù)測模型前的重要步驟[8]。特征選擇旨在選取一個(gè)特征子集x'i來代替原始特征集xi,以壓縮特征維數(shù),提高模型預(yù)測精度,減少計(jì)算資源消耗,建立預(yù)測模型之前對特征進(jìn)行選擇具有研究意義。

現(xiàn)有用于故障預(yù)測的特征選擇方法可分為特征排序和特征子集選擇兩類。特征排序方法單獨(dú)計(jì)算每個(gè)特征對結(jié)果的影響值,并根據(jù)影響值將特征降排列,常見的特征排序方法有卡方檢驗(yàn)[9]、相關(guān)性[10]、信息增益[11]、信息增益率[12]等;特征子集選擇方法評估各特征對結(jié)果的影響值,并基于搜索方法建立特征子集,部分特征子集選擇方法評估特征間的相關(guān)性[13]、一致性[14-15]來確定最終子集,屬過濾器方法;部分方法采用學(xué)習(xí)器的結(jié)果反饋調(diào)整所選特征個(gè)數(shù),屬包裝器方法?,F(xiàn)有方法主要存在以下不足:(1)特征排序方法僅考慮了單個(gè)特征對結(jié)果的影響,無法確定采用幾個(gè)排名靠前的特征建立預(yù)測模型,有效性不高;(2)特征子集選擇方法需搜索所有可能子集,消耗大量計(jì)算資源,且傾向于選擇較多特征建立模型,無法有效減少特征維度,算法復(fù)雜度較高,增加故障預(yù)測過程的復(fù)雜性。

針對以上問題,本文提出基于拓展貝葉斯信息準(zhǔn)則的特征選擇方法(extended Bayesian information criteria based feature selection technique,EBIC-FS)。本文方法屬特征排序方法,在排序的基礎(chǔ)上評估采用多少個(gè)排名靠前的特征建立故障預(yù)測模型,具體為利用拓展貝葉斯信息準(zhǔn)則[16]對特征進(jìn)行排序,再在特征排名列表的基礎(chǔ)上用該準(zhǔn)則評估前k個(gè)特征構(gòu)成的特征子集,選擇EBIC值最小的k個(gè)特征所構(gòu)成子集建立預(yù)測模型,所選特征子集維數(shù)較低且提高特征子集預(yù)測性能。本文主要貢獻(xiàn)如下:

(1)運(yùn)用拓展貝葉斯信息準(zhǔn)則對故障特征排序,并對排名前k的特征構(gòu)成的軟件故障特征子集進(jìn)行評估。該方法選擇的特征子集對類標(biāo)具有較好的解釋能力,即其對真實(shí)數(shù)據(jù)的擬合程度較高,克服了傳統(tǒng)特征排序方法有效性低的缺點(diǎn)。

(2)待評估特征子集個(gè)數(shù)較少,且所選特征子集維數(shù)較低,與特征子集選擇窮盡搜索方法相比,資源消耗小,且有效壓縮特征維度,降低了故障預(yù)測模型復(fù)雜度。

2 相關(guān)工作

軟件故障預(yù)測以預(yù)測程序模塊故障數(shù)量或故障傾向性為目標(biāo),可分為從軟件歷史倉庫中產(chǎn)生實(shí)例、對產(chǎn)生的程序模塊[17]進(jìn)行度量并標(biāo)記、數(shù)據(jù)預(yù)處理、建立預(yù)測模型幾個(gè)步驟。其中,特征選擇屬數(shù)據(jù)預(yù)處理步驟。

軟件故障預(yù)測研究關(guān)注度量指標(biāo)及故障數(shù)據(jù)集[4],以n個(gè)軟件模塊的度量指標(biāo)及類標(biāo)(xi,yi)為輸入訓(xùn)練預(yù)測模型,并用于預(yù)測新模塊yi的錯(cuò)誤傾向性。軟件故障度量指標(biāo)xi是建立預(yù)測模型的基礎(chǔ),xi=(mi1,mi2,…,mik)是對軟件質(zhì)量評估的量化,為一組從代碼、軟件存儲(chǔ)庫中獲取的與表征軟件故障有關(guān)的度量指標(biāo)及其取值。故障預(yù)測的度量指標(biāo)可分為代碼指標(biāo)、過程指標(biāo)和其他指標(biāo),代碼指標(biāo)及過程指標(biāo)在相關(guān)研究中被廣泛使用。

(1)代碼指標(biāo)

代碼指標(biāo)收集于現(xiàn)存源代碼,用于度量源代碼的復(fù)雜度,并認(rèn)為復(fù)雜度高的程序模塊更容易存在潛在的故障。Size指標(biāo)[18]是最為常用的軟件復(fù)雜度度量指標(biāo),最具代表性的Size指標(biāo)為代碼行數(shù)LOC(lines of code);Halstead指標(biāo)[19]以操作符和操作數(shù)的數(shù)量計(jì)算程序的長度、容量、程序語言等級等;McCabe指標(biāo)[20]根據(jù)源代碼的控制流程圖中的節(jié)點(diǎn)、弧和連接組件的數(shù)量計(jì)算,常用指標(biāo)有圈復(fù)雜度、基本復(fù)雜度、模塊設(shè)計(jì)復(fù)雜度;為使度量指標(biāo)適用于面向?qū)ο蟪绦?,Chidamber和Kemerer提出了CK指標(biāo)[21],度量面向?qū)ο蟪绦虻鸟詈?、?nèi)聚、繼承及每個(gè)類的復(fù)雜度;OO指標(biāo)[22]也是適用于面向?qū)ο蟪绦虻亩攘恐笜?biāo),計(jì)算軟件模塊的方法、屬性等數(shù)量。

(2)過程指標(biāo)

過程指標(biāo)收集于軟件存儲(chǔ)庫中的歷史信息,它反映代碼的變更程度,認(rèn)為代碼的變更容易導(dǎo)致故障發(fā)生:Change指標(biāo)[23]運(yùn)用版本控制系統(tǒng)中的歷史更改記錄,衡量文件的重構(gòu)、錯(cuò)誤修改、重構(gòu)次數(shù);Bacchelli等人[24]認(rèn)為在開發(fā)人員往來電子郵件中常被討論的軟件模塊更易于發(fā)生故障,設(shè)計(jì)了Popularity指標(biāo);Bird等人[25]提出了Ownership and Authorship指標(biāo),包含次要貢獻(xiàn)者的數(shù)量、主要貢獻(xiàn)者的數(shù)量、貢獻(xiàn)者總數(shù)等,認(rèn)為所有權(quán)高的錯(cuò)誤傾向性低;Lee等人[5]提出了Microinteraction指標(biāo),認(rèn)為某個(gè)源代碼文件錯(cuò)誤與編寫時(shí)間有關(guān)。

由于各類指標(biāo)從不同角度衡量代碼的故障傾向性,單一種類的度量指標(biāo)無法全面反映源代碼綜合性能及其故障傾向性,因此進(jìn)行故障預(yù)測需考慮多種指標(biāo);但采用多種度量指標(biāo)建立預(yù)測模型易造成維度災(zāi)難,且其中可能存在某些指標(biāo)對預(yù)測效果有負(fù)影響,故對故障特征進(jìn)行選擇是建立故障預(yù)測模型的重要步驟。

特征選擇是軟件故障預(yù)測中數(shù)據(jù)預(yù)處理的方法之一,分為特征排序和特征子集選擇兩大類[26],又可進(jìn)一步劃分為過濾器特征排序方法、過濾器特征子集選擇方法以及包裝器特征子集選擇方法[8]。除此之外,還有部分聚類的方法[4,27-28]及特征提取方法[29-30]。文獻(xiàn)[1,8]研究了大量特征選擇方法對故障預(yù)測的影響;Shivaji等人[6]將卡方檢驗(yàn)、信息增益、信息增益率方法運(yùn)用在故障預(yù)測特征選擇中,預(yù)測模型的綜合性能提高;Turhan等人在文獻(xiàn)[31]中運(yùn)用信息增益進(jìn)行特征選擇。文獻(xiàn)[4,7,28]分別提出兩種特征選擇方法,運(yùn)用聚類選擇各類中信息量較大的特征組成故障預(yù)測數(shù)據(jù)集。

以下對部分特征選擇方法進(jìn)行簡要介紹。

(1)特征排序方法

特征排序方法單獨(dú)給每個(gè)特征評分,根據(jù)單個(gè)指標(biāo)對分類結(jié)果的影響值對特征進(jìn)行排序。

①卡方檢驗(yàn)公式描述如下:

該方法計(jì)算各度量指標(biāo)xi與類標(biāo)y的卡方值,選擇卡方值低于閾值的特征建立預(yù)測模型。

②相關(guān)系數(shù)公式描述如下:

該方法單獨(dú)計(jì)算每一度量指標(biāo)xi與類標(biāo)y的相關(guān)系數(shù)來度量特征與類標(biāo)間的線性關(guān)系,選擇相關(guān)系數(shù)較高的特征建立預(yù)測模型。

③信息增益公式描述如下:

信息增益方法基于信息熵,數(shù)據(jù)集D有無某一特征mik時(shí)信息量發(fā)生改變,其差值即為特征mik所含信息量。

④信息增益率公式描述如下:

信息增益有一缺陷,即傾向于選擇值較多的特征;信息增益率可通過懲罰多值特征解決信息增益方法的缺陷,其中分子為信息增益,分母為特征mik的固有值。

以上過濾器特征排序方法易于理解,耗時(shí)較短,被廣泛運(yùn)用于現(xiàn)有研究中[1,8,26,32-33]。但基于排序的特征選擇方法彼此間差異較小且對提高模型預(yù)測性能無顯著有效性,在減少特征個(gè)數(shù)的同時(shí)易發(fā)生信息損失,雖降低了軟件故障預(yù)測模型復(fù)雜度,但對提高預(yù)測模型精度作用較小[1,26,34]。

(2)特征子集選擇方法

特征子集選擇方法查找具有良好預(yù)測能力的特征子集,計(jì)算各特征重要性并選擇一組特征建立預(yù)測模型。

①基于相關(guān)的特征子集選擇(correlation-based feature subset selection,CFS)

基于相關(guān)性的特征子集選擇方法不僅考慮了單個(gè)特征與類標(biāo)間的相關(guān)性,還考慮各特征間的相關(guān)性,選擇與類標(biāo)相關(guān)性高且彼此間相關(guān)性低的特征構(gòu)成特征子集。

②基于一致性的特征子集選擇(consistencybased feature subset selection,CBS)

基于一致性的特征子集選擇方法搜索該方法與原特征集一致性相等的最小特征子集建立預(yù)測模型。

特征子集選擇方法需結(jié)合貪心搜索方法實(shí)現(xiàn)特征子集選擇,所選特征子集訓(xùn)練的模型預(yù)測準(zhǔn)確度高。特征子集選擇方法可提高模型準(zhǔn)確度及預(yù)測能力[1,8,35-38]。但此類方法待選特征子集個(gè)數(shù)隨特征個(gè)數(shù)增多呈指數(shù)級增長,窮盡搜索耗費(fèi)大量時(shí)間;且特征子集選擇方法選擇特征個(gè)數(shù)較多,無法有效減少特征維度,預(yù)測模型復(fù)雜度高,耗費(fèi)計(jì)算資源[39-41]。

與上述方法不同,本文提出了EBIC特征選擇方法。該方法先運(yùn)用拓展貝葉斯信息準(zhǔn)則[16]對各個(gè)特征進(jìn)行排序,再根據(jù)特征排名列表,以最佳屬性——最佳屬性+次佳屬性——最佳屬性+次加屬性+再次佳屬性的次序評估大小遞增的由前k個(gè)特征構(gòu)成的特征子集的EBIC值,從中選出最佳特征子集。該方法綜合了特征排序及特征子集選擇的優(yōu)點(diǎn),與傳統(tǒng)特征排序方法相比對采用幾個(gè)排序靠前的特征進(jìn)行了評估,所建立的預(yù)測模型有效性較高,且與特征子集選擇方法相比耗費(fèi)計(jì)算資源少,特征集壓縮程度高。

3 本文研究方法

本文研究過程包含獲取故障數(shù)據(jù)、EBIC-FS特征選擇、建立預(yù)測模型三部分,其方法框架如圖1所示,本章重點(diǎn)闡述EBIC-FS特征選擇方法,對故障數(shù)據(jù)及訓(xùn)練預(yù)測模型部分進(jìn)行簡要概述。

Fig.1 Proposed method framework圖1 本文方法框架

3.1 軟件故障預(yù)測數(shù)據(jù)

軟件故障數(shù)據(jù)集Dn={(x1,y1),(x2,y2),…,(xn,yn)},包含n條程序模塊故障信息;xi為第i個(gè)模塊的特征向量,xi=(mi1,mi2,…,mik),每個(gè)特征向量包含k個(gè)度量指標(biāo)(即特征);yi表示第i個(gè)程序模塊的類標(biāo),yi∈{0,1},“yi=0”表示該模塊無故障,“yi=1”表示該模塊有故障。故障特征選擇旨在減少特征維度,挑選部分特征構(gòu)成特征子集中含特征個(gè)數(shù)為。故障特征選擇工作選擇復(fù)雜度低、解釋能力強(qiáng)的最佳故障特征子集,以使后續(xù)預(yù)測模型有較強(qiáng)預(yù)測能力。表1為一個(gè)軟件故障數(shù)據(jù)集示例。

Table 1 Example of software defect dataset表1 軟件故障數(shù)據(jù)集示例

3.2 EBIC-FS特征選擇方法

3.2.1 拓展貝葉斯信息準(zhǔn)則及其特征選擇應(yīng)用

本文利用EBIC準(zhǔn)則,選擇在特征維度上及對數(shù)據(jù)集的描述能力之間達(dá)到最佳平衡的特征子集,以降低模型復(fù)雜度,提高預(yù)測模型性能。拓展貝葉斯信息準(zhǔn)則(EBIC)[16]是對傳統(tǒng)貝葉斯信息準(zhǔn)則(Bayesian information criteria,BIC)[42]的改進(jìn),二者均是模型選擇方法,可在特定的模型空間內(nèi)選擇一個(gè)有合適復(fù)雜度的最佳模型。BIC準(zhǔn)則及EBIC準(zhǔn)則公式如下:

BIC傾向于在特征較多的子集中選擇最佳特征集,不利于壓縮特征維度;為解決該問題,EBIC準(zhǔn)則在BIC的基礎(chǔ)上增加了一個(gè)懲罰項(xiàng)。EBIC公式第一項(xiàng)用于擬合數(shù)據(jù),因在故障數(shù)據(jù)集中,無法獲取各度量指標(biāo)與類標(biāo)之間的具體關(guān)系,可對其進(jìn)行參數(shù)估計(jì),即可對數(shù)據(jù)進(jìn)行線性回歸,其中RSS(residual sum of squares)為殘差平方和,用于衡量模型擬合程度:

RSS計(jì)算原始數(shù)據(jù)與其相對應(yīng)的擬合數(shù)據(jù)點(diǎn)之間的誤差的平方和,RSS越小表明該組特征對類標(biāo)yi的解釋能力越強(qiáng),即數(shù)據(jù)擬合程度越高。

當(dāng)x'的維度增加,即故障特征個(gè)數(shù)增多時(shí),特征子集的解釋能力隨之增強(qiáng),即數(shù)據(jù)擬合程度增加,RSS隨特征維數(shù)增加而降低,但同時(shí)也無法有效減少特征個(gè)數(shù),增加了故障預(yù)測模型的復(fù)雜度。因此,兩個(gè)懲罰項(xiàng)用以解決該問題,選擇較少數(shù)量的故障特征構(gòu)成最佳特征子集。其中,公式第二項(xiàng)k'為當(dāng)前子集特征維數(shù),n為故障數(shù)據(jù)樣本量。

公式第三項(xiàng)解決傳統(tǒng)BIC所選特征維數(shù)較多的問題,其中為含k'個(gè)變量的模型空間。例如,當(dāng)k'=1時(shí),模型空間為包含所有僅含1個(gè)故障特征的特征子集模型:

參數(shù)γ平滑了在不同維度的模型空間內(nèi)選擇最佳模型的概率,使得在故障特征個(gè)數(shù)較多時(shí),所選擇的模型復(fù)雜度得以控制,以選擇較少數(shù)量特征并使后續(xù)預(yù)測模型達(dá)到較優(yōu)性能,當(dāng)γ=0時(shí),EBIC即等于BIC。

3.2.2 EBIC-FS方法流程

EBIC-FS特征選擇方法采用特征排序方法實(shí)現(xiàn),并在特征排序基礎(chǔ)上選擇一組模型擬合程度較高且特征維數(shù)較低的特征。假設(shè)原數(shù)據(jù)集含k個(gè)特征,其可能的特征子集共有2k-1個(gè),窮盡搜索耗費(fèi)大量計(jì)算資源,而特征排序共需計(jì)算k次,子集評估階段將特征排名列表中各特征依次加入特征向量并評估其EBIC值也僅需計(jì)算k次。

EBIC-FS特征選擇方法分為特征排序和特征子集評估兩個(gè)階段,其中特征排序階段通過評估單個(gè)特征解釋能力,將所有含1個(gè)特征的模型按EBIC值遞增排序,形成特征排名列表;特征子集評估階段按第一階段特征排名列表將特征依次加入特征向量,組成k個(gè)待選模型,從中選出最佳模型,最佳模型所對應(yīng)的特征向量中所含特征即為所選特征子集。圖2為EBIC-FS特征選擇過程,以一條故障數(shù)據(jù)實(shí)例表明,實(shí)際特征選擇過程包含n條故障數(shù)據(jù)。3.2.3小節(jié)特征排序階段及3.2.4小節(jié)特征子集評估均根據(jù)圖2進(jìn)行說明。

Fig.2 Flowchart of EBIC-FS method圖2 EBIC-FS方法流程圖

3.2.3 特征排序階段

第一階段為特征排序,該階段的實(shí)現(xiàn)可獲得與類標(biāo)相關(guān)程度的降序排名列表,是后續(xù)評估采用多少個(gè)排名靠前的特征建立預(yù)測模型的基礎(chǔ)。圖2中故障數(shù)據(jù)Di=(mi1,mi2,mi3,…,mik,yi),原始特征集xi=(mi1,mi2,mi3,…,mik),每個(gè)白色方塊為一個(gè)特征,代表一個(gè)度量指標(biāo)mik;每組度量指標(biāo)有一個(gè)類標(biāo)yi,用灰底方塊表示。將每個(gè)特征與類標(biāo)組成k個(gè)僅含單個(gè)度量指標(biāo)的模型,可評估每個(gè)度量指標(biāo)導(dǎo)致是否發(fā)生故障的影響參數(shù),即計(jì)算模型空間X1中所有模型(mi1,yi),(mi2,yi),(mi3,yi),…,(mik,yi)的EBIC值。計(jì)算X1中所有模型的EBIC值,按升序排列,即按每個(gè)特征對類標(biāo)解釋能力降序排列,圖2中以方塊顏色漸淺表示。最終,形成該故障數(shù)據(jù)集的特征排名列表mi4,mi13,mi10,…,mik。因特征排序階段各模型EBIC公式第2、3項(xiàng)參數(shù)相同,其本質(zhì)為計(jì)算該度量指標(biāo)對類標(biāo)影響值。特征排序階段偽代碼如算法1所示。

算法1特征排序

輸入:故障數(shù)據(jù)Di,包括原特征向量xi及類標(biāo)yi,xi=(mi1,mi2,mi3,…,mik)。

輸出:特征排名列表。

1./*計(jì)算每個(gè)單特征模型EBIC值*/

2.forj=1 tok

3.組合mij及類標(biāo)yi,構(gòu)成單變量模型

4.計(jì)算模型(mij,yi)的EBIC值

5.end for

6./*排序*/

7.forj=0;j <k;j++

8.找最小EBIC值模型,與第j個(gè)模型交換位置

9.end for

10.得到特征排名列表

特征排序階段輸入故障數(shù)據(jù),包含原特征向量xi及類標(biāo)yi,輸出特征排名列表,是后續(xù)特征子集評估的基礎(chǔ)。

3.2.4 特征子集評估階段

第二階段為特征子集評估,以確定采用多少個(gè)排名靠前的特征組成所選特征子集。第一階段得到特征排名列表mi4,mi13,mi10,…,mik,本階段對排名前k的特征組成的特征子集進(jìn)行評估。首先,將最佳屬性mi4加入特征向量,構(gòu)成第一個(gè)待選特征子集,與類標(biāo)yi構(gòu)成待選模型1。其次,將排名列表中第二個(gè)特征mi13加入特征向量,=(mi4,mi13),構(gòu)成待選模型2。再次,將第三個(gè)特征mi10加入特征向量,此時(shí)=(mi4,mi13,mi10),構(gòu)成待選模型3。以此類推,直至將特征排名列表中最后一個(gè)特征mik加入特征向量,此時(shí)得到k個(gè)待選模型,第k個(gè)模型即為原特征集。計(jì)算每個(gè)待選特征子集的EBIC值,結(jié)果最小的模型為最佳模型,所對應(yīng)即為EBIC-FS方法選出的特征子集。如圖2所示,待選模型3為最佳模型,對應(yīng)=(mi4,mi13,mi10) 為所選特征子集,EBIC-FS方法選出特征mi4、mi13、mi10,將特征個(gè)數(shù)由k個(gè)減少至3個(gè)。特征子集評估階段偽代碼如算法2所示。

算法2EBIC-FS特征子集評估

輸入:特征排名列表及類標(biāo)。

1.將類標(biāo)yi放入模型

3./*根據(jù)排名列表組建待選特征子集并計(jì)算EBIC值*/

4.令m為特征列表序號(hào)

5.form=1 tok

6.將第m個(gè)特征mik加入特征向量

7.計(jì)算當(dāng)前模型EBIC值

8.end for

特征子集評估階段輸入特征排名列表及類標(biāo),輸出最佳模型及其特征向量中所包含特征即為所選度量指標(biāo)。因特征子集評估采用排名列表確定前k個(gè)特征構(gòu)成的特征子集,待評估特征子集共k個(gè),消耗計(jì)算資源小。

3.3 軟件故障預(yù)測模型

本文采用5個(gè)分類器分別訓(xùn)練預(yù)測模型,分別為邏輯回歸(logistic regression,LR)、樸素貝葉斯(naive Bayesian,NB)、決策樹(decision tree,DT)、K近鄰(K-nearest neighbor,KNN)和隨機(jī)森林(random forest,RF)。訓(xùn)練預(yù)測模型輸入進(jìn)行特征選擇后的故障特征數(shù)據(jù)集,即輸入n條,包含特征向量及類標(biāo)yi。輸出待測軟件模塊是否有故障,即待測模塊預(yù)測后被標(biāo)記為“0”或“1”。

4 證實(shí)研究

本章討論對EBIC-FS方法有效性的證實(shí)研究,需回答以下幾個(gè)研究問題:

RQ1:EBIC-FS方法是否有效,能否提升預(yù)測模型性能?

RQ2:與特征排序方法相比,EBIC-FS方法有效性是否有提升?

RQ3:與特征子集選擇方法相比,EBIC-FS方法能否壓縮特征維度,用其建立的預(yù)測模型性能如何?

證實(shí)研究部分介紹所用故障數(shù)據(jù)集、對實(shí)驗(yàn)結(jié)果的評價(jià)方法、實(shí)驗(yàn)設(shè)計(jì)以及對實(shí)驗(yàn)結(jié)果的分析。

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

本文采用D'Ambros等人[43]發(fā)表的基準(zhǔn)數(shù)據(jù)集(http://bug.inf.usi.ch/)M&R中Mylyn插件的故障數(shù)據(jù)M&R-Mylyn、Promise公開數(shù)據(jù)集[44](http://openscience.us/repo/defect/ck/)中Promise-ant1.7、Promisexalan2.6作為本文的實(shí)驗(yàn)數(shù)據(jù),數(shù)據(jù)集中各度量指標(biāo)及其含義如表2所示。

M&R-Mylyn包含類標(biāo)bug及6個(gè)CK指標(biāo)(表2:1~6),1個(gè)Size指標(biāo)(表2:11),10個(gè)OO指標(biāo)(表2:14~23),15個(gè)Change指標(biāo)(表2:30~44),共計(jì)度量指標(biāo)32個(gè),即 特征個(gè)數(shù)k=32 。Promise-ant1.7及Promise-xalan2.6包含類標(biāo)bug及10個(gè)CK指標(biāo)(表2:1~10),1個(gè)Size指標(biāo)(表2:11),2個(gè)McCabe指標(biāo)(表2:12~13),7個(gè)OO指標(biāo)(表2:23~29),共計(jì)度量指標(biāo)20個(gè),即特征個(gè)數(shù)k=20。

本文預(yù)測模型均為分類模型,故將各故障數(shù)據(jù)集中類標(biāo)為“0”的數(shù)據(jù)保留,將類標(biāo)>0數(shù)據(jù)的類標(biāo)更改為“1”。由于以上數(shù)據(jù)集中正樣本(類標(biāo)為1)占整個(gè)數(shù)據(jù)集的比例分別為13.5%、22.3%、46.4%,類不平衡問題易導(dǎo)致模型不準(zhǔn)確[45-46],故本文根據(jù)文獻(xiàn)[45]建議進(jìn)行下采樣,通過均勻抽樣減少負(fù)樣本個(gè)數(shù),具體抽樣方法如下:(1)將數(shù)據(jù)集中正樣本取出,計(jì)數(shù)m個(gè);(2)原數(shù)據(jù)集中負(fù)樣本為n個(gè),將負(fù)樣本減少至m個(gè);(3)將負(fù)樣本等距劃分,間距為,隨機(jī)設(shè)置起點(diǎn)a,則抽取a共m個(gè)作為數(shù)據(jù)集的負(fù)樣本;(4)原數(shù)據(jù)集中所有正樣本與所抽負(fù)樣本組成本文實(shí)驗(yàn)的數(shù)據(jù)集,并打亂數(shù)據(jù)樣本順序。

最終M&R-Mylyn采用245條正樣本數(shù)據(jù)及245條負(fù)樣本數(shù)據(jù)構(gòu)成故障數(shù)據(jù)集Dn,n=n1+n0=490,即490個(gè)類的故障數(shù)據(jù);Promise-ant1.7采用166條正樣本數(shù)據(jù)及166條負(fù)樣本數(shù)據(jù)構(gòu)成故障數(shù)據(jù)集Dn,n=n1+n0=332,即332個(gè)類的故障數(shù)據(jù);Promisexalan2.6采用411條正樣本數(shù)據(jù)及411條負(fù)樣本數(shù)據(jù)構(gòu)成故障數(shù)據(jù)集Dn,n=n1+n0=822,即822個(gè)類的故障數(shù)據(jù)。

4.2 評價(jià)方法

本文用5種分類器訓(xùn)練故障預(yù)測模型,實(shí)驗(yàn)結(jié)果將采用5種常見機(jī)器學(xué)習(xí)評價(jià)指標(biāo):Accuracy(準(zhǔn)確率)、Precision(精確度)、Recall(召回率)、F-measure(F值)、FPR(假陽率)對實(shí)驗(yàn)結(jié)果進(jìn)行評價(jià)。

計(jì)算以上5種評價(jià)指標(biāo)需考慮真實(shí)值與預(yù)測值之間的關(guān)系。

如表3所示,故障預(yù)測研究中TN、FN、FP、TP含義如下。

TN:沒有故障的程序模塊被預(yù)測為沒有故障。

FN:有故障的程序模塊被預(yù)測為沒有故障。

FP:沒有故障的程序模塊被預(yù)測為有故障。

TP:有故障的程序模塊被預(yù)測為有故障。

Table 3 Relationship between real and predicted value表3 真實(shí)值與預(yù)測值關(guān)系

已知真實(shí)值與預(yù)測值的關(guān)系,可定義以下評價(jià)指標(biāo):

(1)準(zhǔn)確率(Accuracy)

準(zhǔn)確率評價(jià)指標(biāo)簡單直觀,表征預(yù)測結(jié)果為正確分類所占比例,即true negative和true positive在所有結(jié)果中所占比例。

(2)精確度(Precision)

精確度表示所有在預(yù)測過程中被標(biāo)記為“1”的程序模塊中,有多少故障模塊。

(3)召回率(Recall)

召回率也叫真陽率,表示在所有真實(shí)值為1(即有故障)的程序模塊中,有多少模塊在預(yù)測過程中被標(biāo)記為“1”。

(4)F值(F-measure)

F值是一個(gè)綜合評價(jià)指標(biāo),是召回率和精確度的一個(gè)加權(quán)調(diào)和平均值。由于召回率和精確度有時(shí)是矛盾的,故F-measure更能準(zhǔn)確反映預(yù)測模型的性能,F(xiàn)-measure較高的模型更為健壯可靠。

(5)假陽率(false positive rate,F(xiàn)PR)

假陽率也被稱為誤報(bào)率,表示在所有真實(shí)值為“0”(即無故障)的程序模塊中,有多少模塊在預(yù)測過程中被錯(cuò)誤標(biāo)記為“1”。

4.3 實(shí)驗(yàn)設(shè)計(jì)

為驗(yàn)證EBIC-FS方法有效性,回答上述3個(gè)研究問題,本文進(jìn)行3組對照實(shí)驗(yàn),分別與原特征集、特征排序方法、特征子集選擇方法進(jìn)行對比:

(1)為回答RQ1,本文方法與不進(jìn)行特征選擇的原數(shù)據(jù)集CompleteSet建立的預(yù)測模型進(jìn)行對比,以驗(yàn)證EBIC-FS方法的有效性,能否提升預(yù)測模型性能。

(2)為回答RQ2,本文方法與卡方檢驗(yàn)Chi-Square、相關(guān)性Correlation、ReliefF方法進(jìn)行對比,以驗(yàn)證EBIC-FS方法能否解決基于排序的特征選擇方法有效性低的問題。

(3)文獻(xiàn)[8]驗(yàn)證了30種特征選擇方法,包括6種特征子集選擇方法,結(jié)果表明結(jié)合BestFirst搜索方法的基于相關(guān)性過濾器特征子集選擇方法CFS效果最優(yōu)。為回答RQ3,本文方法與該方法進(jìn)行對比,以驗(yàn)證EBIC-FS方法能否以較少特征建立性能較優(yōu)的預(yù)測模型。

為使Chi-Square、Correlation、ReliefF方法與CFS方法有對比性,上述3種方法選擇與CFS方法相同數(shù)量的特征。

本文采用5種分類器,其實(shí)現(xiàn)運(yùn)用scikit-learn第三方庫[47]。分別以EBIC-FS方法、原特征集Complete-Set、Chi-Square方法、Correlation方法、ReliefF方法及CFS方法所選特征子集作為數(shù)據(jù)集建立預(yù)測模型,各方法分別進(jìn)行特征選擇,以減少特征維數(shù)后的數(shù)據(jù)集作為訓(xùn)練及測試數(shù)據(jù),并進(jìn)行10次十折交叉驗(yàn)證(10×10-fold cross-validation),每次十折交叉驗(yàn)證前對數(shù)據(jù)進(jìn)行打亂重排(shuffle),取10次十折交叉驗(yàn)證的平均值作為最終結(jié)果,即:(1)將數(shù)據(jù)集劃分10份,編號(hào)a~j;(2)將第a~j份數(shù)據(jù)輪流作為測試集,剩余9份數(shù)據(jù)為訓(xùn)練集進(jìn)行實(shí)驗(yàn);(3)得出10次預(yù)測相應(yīng)準(zhǔn)確率等評價(jià)指標(biāo)并求其均值。10次十折交叉驗(yàn)證即為打亂數(shù)據(jù)順序后將以上步驟重復(fù)10次,并求其平均值。

所用分類器分別為邏輯回歸、樸素貝葉斯、決策樹、K近鄰、隨機(jī)森林;為客觀對比各特征選擇方法有效性,各分類器的參數(shù)均設(shè)置為默認(rèn)值,即采用如下參數(shù)設(shè)置:

(1)邏輯回歸

懲罰項(xiàng)penalty=L2,采用L2正則項(xiàng);正則化參數(shù)C=1.0;停止準(zhǔn)則tol=1E-4。

(2)樸素貝葉斯

假設(shè)特征符合高斯分布。

(3)決策樹

拆分內(nèi)部節(jié)點(diǎn)最小樣本數(shù)min_samples_split=2;葉子節(jié)點(diǎn)最小樣本數(shù)min_samples_leaf=1。

(4)K近鄰

K=5;葉子數(shù)leaf_size=30;p=2,使用歐幾里德距離。

(5)隨機(jī)森林

樹的棵數(shù)n_estimators=10 ;bootstrap=TRUE,進(jìn)行有放回的抽樣。

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

本文包含3個(gè)數(shù)據(jù)集實(shí)驗(yàn)結(jié)果,每個(gè)數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果分為兩部分,分別為特征選擇結(jié)果及預(yù)測模型性能結(jié)果。其中,特征選擇結(jié)果為EBIC-FS方法選出的特征子集,是中間結(jié)果;預(yù)測模型性能結(jié)果將驗(yàn)證EBIC-FS方法有效性。

4.4.1 特征選擇結(jié)果

EBIC-FS方法分為特征排序和特征子集評估兩個(gè)階段。

(1)特征排序階段

表4~表6為特征排序階段各單特征子集模型的EBIC值。

第一階段結(jié)果顯示,M&R-Mylyn數(shù)據(jù)集特征排序后的遞增特征排名列表為FanOut、NOPRM、NOM、RFC、CBO、WMC、LOC、CHURN(Max)、NOPR、NR、NOPRA、CHURN(Sum)、LINES(SumAdded)、NAUTH、LCOM、NFIX、LINES(SumRemoved)、CHURN(Avg)、NREF、FanIn、LINES(MaxAdded)、NOA、Age、LINES(MaxRemoved)、DIT、NOMI、LINES(AvgAdded)、NOC、NOAI、LINES(AvgRemoved)、NOPA、Age(Weighted);Promise-ant1.7數(shù)據(jù)集遞增特征排名列表為RFC、CE、WMC、LOC、CAM、NOPM、CC(max)、MOA、CC(avg)、DAM、LCOM、IC、CBM、LCOM3、CBO、NOC、CA、DIT、MFA、AMC;Promise-xalan2.6數(shù)據(jù)集遞增特征排名列表為LOC、AMC、LCOM3、RFC、WMC、NOPM、CC(max)、LCOM、MOA、CAM、CBO、MFA、CE、CC(avg)、DAM、CA、DIT、CBM、NOC、IC。

Table 4 EBIC values of single-metric models under M&R-Mylyn dataset表4 在M&R-Mylyn數(shù)據(jù)集下單特征模型EBIC值

Table 5 EBIC values of single-metric models under Promise-ant1.7 dataset表5 在Promise-ant1.7數(shù)據(jù)集下單特征模型EBIC值

Table 6 EBIC values of single-metric models under Promise-xalan2.6 dataset表6 在Promise-xalan2.6數(shù)據(jù)集下單特征模型EBIC值

(2)特征子集評估階段

M&R-Mylyn數(shù)據(jù)集特征子集評估階段包含32個(gè)待選模型,Promise數(shù)據(jù)集包含20個(gè)待選模型。Model-1包含1個(gè)特征,Model-2包含2個(gè)特征,以此類推,其中M&R-Mylyn第32個(gè)模型為原特征集,Promise第20個(gè)模型為原特征集。表7~表9為特征子集評估階段各待選模型EBIC值。

特征子集評估階段顯示:M&R-Mylyn數(shù)據(jù)集Model-4取得待選特征子集中的EBIC最小值,即Model-4為最佳模型,對應(yīng)特征排名列表中前4個(gè)特征FanOut、NOPRM、NOM、RFC;Promise-ant1.7數(shù)據(jù)集Model-7取得待選特征子集中的EBIC最小值,即Model-7為最佳模型,對應(yīng)特征排名列表中前7個(gè)特征RFC、CE、WMC、LOC、CAM、NOPM、CC(max);Promise-xalan2.6數(shù)據(jù)集Model-4取得待選特征子集中的EBIC最小值,即Model-4為最佳模型,對應(yīng)特征排名列表中前4個(gè)特征LOC、AMC、LCOM3、RFC。以上3個(gè)特征子集為用EBIC-FS方法進(jìn)行特征選擇后建立預(yù)測模型的數(shù)據(jù)集。

Table 7 EBIC values of candidate models under M&R-Mylyn dataset表7 在M&R-Mylyn數(shù)據(jù)集下待選模型EBIC值

Table 8 EBIC values of candidate models under Promise-ant1.7 dataset表8 在Promise-ant1.7數(shù)據(jù)集下待選模型EBIC值

Table 9 EBIC values of candidate models under Promise-xalan2.6 dataset表9 在Promise-xalan2.6數(shù)據(jù)集下待選模型EBIC值

4.4.2 預(yù)測模型性能結(jié)果

為驗(yàn)證本文方法有效性,在基準(zhǔn)數(shù)據(jù)集上進(jìn)行故障預(yù)測實(shí)驗(yàn),本文方法與基線方法所對應(yīng)特征集均采用邏輯回歸(LR)、樸素貝葉斯(NB)、決策樹(DT)、K近鄰(KNN)、隨機(jī)森林(RF)預(yù)測器進(jìn)行模型建立及故障預(yù)測,記錄其10×10折交叉驗(yàn)證平均預(yù)測結(jié)果并進(jìn)行比較。表10~表12記錄了3個(gè)數(shù)據(jù)集各分類器預(yù)測結(jié)果,圖3~圖5分別顯示了3個(gè)數(shù)據(jù)集上,不同方法取得的綜合性能指標(biāo)F-measure的對比情況。

從表10~表12可簡單看出,本文EBIC-FS方法在M&R-Mylyn數(shù)據(jù)集上5種分類器均取得較優(yōu)結(jié)果,與CompleteSet、Chi-Square、Correlation、ReliefF、CFS方法相比,各項(xiàng)指標(biāo)均有提升;在Promise-ant1.7數(shù)據(jù)集上,除部分分類器Recall值略低于基線方法、部分FPR高于基線方法外,其余指標(biāo)均有所提升,其中本文方法綜合性能F-measure均優(yōu)于基線方法;在Promise-xalan2.6數(shù)據(jù)集上,本文方法NB分類器的FPR較高,其余各指標(biāo)均優(yōu)于CompleteSet、Chi-Square、Correlation、ReliefF、CFS方法。

在3個(gè)數(shù)據(jù)集上,本文方法準(zhǔn)確率Accuracy較高,表征正確分類所占比例高,表明本文方法所選特征子集建立的預(yù)測模型將大部分模塊正確標(biāo)記,預(yù)測能力較強(qiáng);精確度Precision提升表明在被標(biāo)記為“1”的模塊中,真實(shí)值為“1”即有故障的模塊比例提升,表明本文方法對建立的故障預(yù)測模型預(yù)測性能有正向影響;Recall指標(biāo)表明真實(shí)值為“1”的程序模塊在預(yù)測過程中被標(biāo)記為“1”,該指標(biāo)提升是一個(gè)較為理想的狀態(tài),表明正確預(yù)測出有故障程序模塊的比例提升;由于Recall和Precision之間存在一定矛盾,故F-measure為一個(gè)更好、更可靠的評價(jià)指標(biāo),F(xiàn)值的大幅提升證明了本文方法建立的預(yù)測模型有較為良好的綜合性能,其預(yù)測能力較佳;FPR的降低表征誤報(bào)率的降低,可減少軟件開發(fā)和維護(hù)人員不必要的檢查。

Table 10 Results of defect prediction under M&R-Mylyn dataset表10 在M&R-Mylyn數(shù)據(jù)集下故障預(yù)測結(jié)果

Table 11 Results of defect prediction under Promise-ant1.7 dataset表11 在Promise-ant1.7數(shù)據(jù)集下故障預(yù)測結(jié)果

4.4.3 結(jié)果分析

4.4.3.1 RQ1分析

本小節(jié)對比EBIC-FS方法所選特征子集與原特征集建立的預(yù)測模型性能,針對RQ1進(jìn)行回答與分析。表13~表15顯示了用EBIC-FS方法選擇特征比不進(jìn)行特征選擇即進(jìn)行故障預(yù)測在5個(gè)指標(biāo)Accuracy、Precision、Recall、F-measure、FPR上的提升情況;圖6~圖8為各數(shù)據(jù)集EBIC-FS方法與CompleteSet建立預(yù)測的模型的綜合性能F-measure對比。

Table 12 Results of defect prediction under Promise-xalan2.6 dataset表12 在Promise-xalan2.6數(shù)據(jù)集下故障預(yù)測結(jié)果

對比EBIC-FS方法與不進(jìn)行特征選擇的故障預(yù)測實(shí)驗(yàn)結(jié)果可看出:

(1)在M&R-Mylyn上,用本文方法EBIC-FS以5個(gè)分類器LR、NB、DT、KNN、RF建立的預(yù)測模型相比不進(jìn)行特征選擇即建立預(yù)測模型Accuracy平均提升33.1%,Precision平均提升33.9%,Recall平均提升37.7%,F(xiàn)-measure指標(biāo)平均提升38.9%,F(xiàn)PR平均降低86.6%。在Promise-ant1.7上,Accuracy平均提升12.6%,Precision平均提升17.0%,Recall平均提升16.3%,在LR上略有降低,F(xiàn)-measure指標(biāo)平均提升17.3%,F(xiàn)PR在LR、DT、RF上降低,在NB、KNN上升高。在Promise-xalan2.6上,Accuracy平均提升21.4%,Precision平均提升15.9%,Recall平均提升29.3%,F(xiàn)measure指標(biāo)平均提升23.9%,F(xiàn)PR平均降低40.7%,在NB上有升高。

Fig.3 Comparison of F-measure of each model under M&R-Mylyn dataset圖3 在M&R-Mylyn數(shù)據(jù)集下各模型F-measure指標(biāo)對比

Fig.4 Comparison of F-measure of each model under Promise-ant1.7 dataset圖4 在Promise-ant1.7數(shù)據(jù)集下各模型F-measure指標(biāo)對比

Fig.5 Comparison of F-measure of each model under Promise-xalan2.6 dataset圖5 在Promise-xalan2.6數(shù)據(jù)集下各模型F-measure指標(biāo)對比

Table 13 Improvement of each indicator under M&R-Mylyn dataset:RQ1表13 在M&R-Mylyn數(shù)據(jù)集下各指標(biāo)提升情況:RQ1 %

Table 14 Improvement of each indicator under Promise-ant1.7 dataset:RQ1表14 在Promise-ant1.7數(shù)據(jù)集下各指標(biāo)提升情況:RQ1 %

Table 15 Improvement of each indicator under Promise-xalan2.6 dataset:RQ1表15 在Promise-xalan2.6數(shù)據(jù)集下各指標(biāo)提升情況:RQ1 %

Fig.6 Comparison of F-measure of each model under M&R-Mylyn dataset:RQ1圖6 在M&R-Mylyn數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ1

Fig.7 Comparison of F-measure of each model under Promise-ant1.7 dataset:RQ1圖7 在Promise-ant1.7數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ1

Fig.8 Comparison of F-measure of each model under Promise-xalan2.6 dataset:RQ1圖8 在Promise-xalan2.6數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ1

(2)在3個(gè)數(shù)據(jù)集上,與基線方法相比,均為NB模型的故障預(yù)測性能提升幅度最大,綜合性能Fmeasure相比基線方法在M&R-Mylyn上提升了78.1%,在Promise-ant1.7上提升了30.2%,在Promisexalan2.6上提升了35.9%。

(3)在M&R-Mylyn上,EBIC-FS方法在DT模型上取得最佳預(yù)測性能,F(xiàn)-measure值達(dá)0.923;在Promise-ant1.7上,EBIC-FS方法在NB模型上取得最佳預(yù)測性能,F(xiàn)-measure值達(dá)0.874;在Promisexalan2.6上,EBIC-FS方法在KNN模型上取得最佳預(yù)測性能,F(xiàn)-measure值達(dá)0.911。

(4)實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法的有效性,能提升預(yù)測模型性能。

4.4.3.2 RQ2分析

本小節(jié)分別對比EBIC-FS方法與Chi-Square方法、Correlation方法、ReliefF方法所選特征子集建立的預(yù)測模型性能,針對RQ2進(jìn)行回答與分析。表16~表24分別顯示了EBIC-FS方法比Chi-Square、Correlation、ReliefF方法所選特征子集建立的預(yù)測模型在5個(gè)指標(biāo)Accuracy、Precision、Recall、F-measure、FPR上的提升情況;圖9~圖11為EBIC-FS方法與Chi-Square、Correlation、ReliefF方法建立的預(yù)測模型的綜合性能F-measure對比。

Table 16 Improvement of each indicator under M&R-Mylyn dataset:RQ2-Chi-Square表16 在M&R-Mylyn數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Chi-Square %

Table 17 Improvement of each indicator under Promise-ant1.7 dataset:RQ2-Chi-Square表17 在Promise-ant1.7數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Chi-Square %

Table 18 Improvement of each indicator under Promise-xalan2.6 dataset:RQ2-Chi-Square表18 在Promise-xalan2.6數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Chi-Square %

Table 20 Improvement of each indicator under Promise-ant1.7 dataset:RQ2-Correlation表20 在Promise-ant1.7數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Correlation %

Table 19 Improvement of each indicator under M&R-Mylyn dataset:RQ2-Correlation表19 在M&R-Mylyn數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Correlation %

Table 21 Improvement of each indicator under Promise-xalan2.6 dataset:RQ2-Correlation表21 在Promise-xalan2.6數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-Correlation %

Table 22 Improvement of each indicator under M&R-Mylyn dataset:RQ2-ReliefF表22 在M&R-Mylyn數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-ReliefF %

Table 23 Improvement of each indicator under Promise-ant1.7 dataset:RQ2-ReliefF表23 在Promise-ant1.7數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-ReliefF %

對比本文方法EBIC-FS與三種特征排序方法Chi-square、Correlation、ReliefF所選特征子集建立的預(yù)測模型性能的實(shí)驗(yàn)結(jié)果可看出:

(1)在M&R-Mylyn上,本文方法與Chi-Square相比,所選特征子集建立的預(yù)測模型在Accuracy平均提升45.9%,Precision平均提升40.4%,Recall平均提升66.6%,F(xiàn)-measure指標(biāo)平均提升61.0%,F(xiàn)PR平均降低87.0%。與Correlation相比,Accuracy平均提升40.3%,Precision平均提升38.3%,Recall平均提升49.5%,F(xiàn)-measure指標(biāo)平均提升48.2%,F(xiàn)PR平均降低89.2%。與ReliefF相比,Accuracy平均提升46.9%,Precision平均提升48.8%,Recall平均提升53.7%,F(xiàn)measure指標(biāo)平均提升55.1%,F(xiàn)PR平均降低89.2%。

Table 24 Improvement of each indicator under Promise-xalan2.6 dataset:RQ2-ReliefF表24 在Promise-xalan2.6數(shù)據(jù)集下各指標(biāo)提升情況:RQ2-ReliefF %

Fig.9 Comparison of F-measure of each model under M&R-Mylyn dataset:RQ2圖9 在M&R-Mylyn數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ2

Fig.10 Comparison of F-measure of each model under Promise-ant1.7 dataset:RQ2圖10 在Promise-ant1.7數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ2

Fig.11 Comparison of F-measure of each model under Promise-xalan2.6 dataset:RQ2圖11 在Promise-xalan2.6數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ2

(2)在Promise-ant1.7上,本文方法與Chi-Square相比,所選特征子集建立的預(yù)測模型在Accuracy平均提升14.8%,Precision平均提升18.1%,Recall平均提升22.1%,在LR上略有降低,F(xiàn)-measure指標(biāo)平均提升21.7%,F(xiàn)PR在LR、DT、RF上降低,在NB、KNN上升高。與Correlation相比,Accuracy平均提升14.0%,Precision平均提升18.6%,Recall平均提升19.6%,在LR上略有降低,F(xiàn)-measure指標(biāo)平均提升20.1%,F(xiàn)PR在LR、DT、RF上降低,在NB、KNN上升高。與ReliefF相比,Accuracy平均提升22.3%,Precision平均提升34.3%,Recall平均提升6.5%,在LR、NB上略有降低,F(xiàn)-measure指標(biāo)平均提升21.4%,F(xiàn)PR平均降低49.1%。

(3)在Promise-xalan2.6上,本文方法與Chi-Square相比,所選特征子集建立的預(yù)測模型在Accuracy平均提升20.9%,Precision平均提升13.9%,Recall平均提升29.2%,F(xiàn)-measure指標(biāo)平均提升23.2%,F(xiàn)PR平均降低37.7%,在NB上升高。與Correlation相比,Accuracy平均提升26.7%,Precision平均提升21.3%,Recall平均提升35.6%,F(xiàn)-measure指標(biāo)平均提升32.9%,F(xiàn)PR平均降低48.2%,在NB上升高。與ReliefF相比,Accuracy平均提升26.2%,Precision平均提升21.9%,Recall平均提升34.1%,F(xiàn)-measure指標(biāo)平均提升32.4%,F(xiàn)PR平均降低47.9%,在NB上升高。

(4)相較于特征排序方法Chi-Square、Correlation、ReliefF,EBIC-FS方法有效性較高,所選特征子集建立的預(yù)測模型綜合性能有較大提升。

4.4.3.3 RQ3分析

本小節(jié)對比EBIC-FS方法與CFS方法所選特征數(shù)量及對應(yīng)特征子集建立的預(yù)測模型性能,針對RQ3進(jìn)行回答與分析。表25~表27為不同特征選擇方法所選特征數(shù)量及占原數(shù)據(jù)集特征個(gè)數(shù)的百分比,表28~表30顯示了EBIC-FS方法比CFS方法所選特征子集建立的預(yù)測模型在5個(gè)指標(biāo)Accuracy、Precision、Recall、F-measure、FPR上的提升情況;圖12~圖14為EBIC-FS方法與CFS方法建立的預(yù)測模型的綜合性能F-measure對比。

Table 25 Number and proportion of features of each dataset under M&R-Mylyn dataset表25 在M&R-Mylyn數(shù)據(jù)集下各特征集特征數(shù)量及占比

Table 26 Number and proportion of features of each dataset under Promise-ant1.7 dataset表26 在Promise-ant1.7數(shù)據(jù)集下各特征集特征數(shù)量及占比

Table 27 Number and proportion of features of each dataset under Promise-xalan2.6 dataset表27 在Promise-xalan2.6數(shù)據(jù)集下各特征集特征數(shù)量及占比

Table 28 Improvement of each indicator under M&R-Mylyn dataset:RQ3表28 在M&R-Mylyn數(shù)據(jù)集下各指標(biāo)提升情況:RQ3 %

Table 29 Improvement of each indicator under Promise-ant1.7 dataset:RQ3表29 在Promise-ant1.7數(shù)據(jù)集下各指標(biāo)提升情況:RQ3 %

Table 30 Improvement of each indicator under Promise-xalan2.6 dataset:RQ3表30 在Promise-xalan2.6數(shù)據(jù)集下各指標(biāo)提升情況:RQ3 %

Fig.12 Comparison of F-measure of each model under M&R-Mylyn dataset:RQ3圖12 在M&R-Mylyn數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ3

Fig.13 Comparison of F-measure of each model under Promise-ant1.7 dataset:RQ3圖13 在Promise-ant1.7數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ3

對比EBIC-FS方法與特征子集選擇方法CFS所選特征個(gè)數(shù)及對應(yīng)特征子集建立的預(yù)測模型性能的實(shí)驗(yàn)結(jié)果可看出:

Fig.14 Comparison of F-measure of each model under Promise-xalan2.6 dataset:RQ3圖14 在Promise-xalan2.6數(shù)據(jù)集下各模型F-measure指標(biāo)對比:RQ3

(1)在M&R-Mylyn上,用本文方法所選特征子集建立的預(yù)測模型比CFS方法所選特征子集建立的預(yù)測模型Accuracy平均提升31.8%,Precision平均提升31.8%,Recall平均提升40.1%,F(xiàn)-measure平均提升39.3%,F(xiàn)PR平均降低86.0%。

(2)在Promise-ant1.7上,用本文方法所選特征子集建立的預(yù)測模型比CFS方法所選特征子集建立的預(yù)測模型Accuracy平均提升14.0%,Precision平均提升22.2%,Recall平均提升9.9%,F(xiàn)-measure平均提升16.2%,F(xiàn)PR平均降低26.7%,在KNN上升高。

(3)在Promise-xalan2.6上,用本文方法所選特征子集建立的預(yù)測模型比CFS方法所選特征子集建立的預(yù)測模型Accuracy平均提升20.3%,Precision平均提升15.6%,Recall平均提升24.8%,F(xiàn)-measure平均提升21.7%,F(xiàn)PR平均降低42.9%,在NB上有升高。

(4)EBIC-FS方法有效壓縮了特征維度。在M&R-Mylyn上,相比CFS方法所選特征占原特征集的21.9%,本文方法所選特征僅為原特征集的12.5%;在Promise-ant1.7上,相比CFS方法所選特征占原特征集的50.0%,本文方法所選特征為原特征集的35.0%;在Promise-xalan2.6上,相比CFS方法所選特征占原特征集的55.0%,本文方法所選特征為原特征集的20.0%。

(5)特征子集選擇方法CFS壓縮了特征維度,降低預(yù)測模型復(fù)雜性;與之相比,EBIC-FS方法在壓縮了特征維度的同時(shí)提升了預(yù)測模型的綜合性能。

5 存在的局限性及不足

本文方法存在局限性及不足,本章對其進(jìn)行討論,具體如下:

(1)為在各數(shù)據(jù)集上方便對比本文方法及不同基線特征選擇方法,本文用5個(gè)分類器訓(xùn)練故障預(yù)測模型時(shí)均使用默認(rèn)參數(shù),未來可通過調(diào)參使訓(xùn)練后的故障預(yù)測模型取得更優(yōu)預(yù)測結(jié)果。

(2)本文方法令EBIC公式中的參數(shù)γ=1,為最大程度壓縮待選特征子集中的特征個(gè)數(shù),但所選特征子集未必是能在特征維度上與對數(shù)據(jù)集的描述能力之間達(dá)到最佳平衡的特征子集,未來可根據(jù)數(shù)據(jù)集情況調(diào)整γ取值,以選出最佳特征子集。

(3)本文方法未評估所有特征子集的EBIC值,所選特征子集并非最佳特征子集,是一部分特征子集中的“最佳”特征子集。

(4)本文使用公開數(shù)據(jù)集M&R-Mylyn、Promiseant1.7、Promise-xalan2.6的故障數(shù)據(jù)進(jìn)行實(shí)驗(yàn),僅與三種特征排序方法和一種特征子集選擇方法進(jìn)行對比,一般性有一定局限,未來可使用其他公開數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),與更多特征排序、特征子集選擇及其他數(shù)據(jù)預(yù)處理方法進(jìn)行對比。

6 結(jié)束語

軟件故障預(yù)測通過軟件歷史數(shù)據(jù)建立預(yù)測模型,幫助開發(fā)人員及質(zhì)量保證人員集中關(guān)注易發(fā)生故障的軟件模塊;特征選擇等數(shù)據(jù)預(yù)處理方法能提高故障預(yù)測模型的性能。本文提出EBIC-FS特征選擇方法,先將故障數(shù)據(jù)集中各特征進(jìn)行排序,并根據(jù)特征排名列表對待選特征子集用EBIC準(zhǔn)則進(jìn)行評估,以確定“最佳特征子集”。本文在公開數(shù)據(jù)集上驗(yàn)證了EBIC-FS方法的有效性,與特征全集、Chi-Square、Correlation、ReliefF特征排序方法、CFS特征子集選擇方法進(jìn)行對比,取得了較好的實(shí)驗(yàn)結(jié)果,表明EBIC-FS方法能有效提高故障預(yù)測模型的綜合性能。未來可進(jìn)一步對故障預(yù)測中的特征選擇工作進(jìn)行擴(kuò)展:(1)調(diào)整預(yù)測模型參數(shù)以獲得更好的模型性能;(2)調(diào)整EBIC參數(shù)γ取值以獲得更好的實(shí)驗(yàn)結(jié)果;(3)采用不同數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),與更多其他特征選擇方法進(jìn)行對比,驗(yàn)證本文方法的一般性。

猜你喜歡
子集特征選擇排序
高一上學(xué)年期末綜合演練
拓?fù)淇臻g中緊致子集的性質(zhì)研究
作者簡介
恐怖排序
節(jié)日排序
基于智能優(yōu)化算法選擇特征的網(wǎng)絡(luò)入侵檢測
故障診斷中的數(shù)據(jù)建模與特征選擇
reliefF算法在數(shù)據(jù)發(fā)布隱私保護(hù)中的應(yīng)用研究
一種多特征融合的中文微博評價(jià)對象提取方法
集合的運(yùn)算
台中市| 吉隆县| SHOW| 勐海县| 遂溪县| 杭锦旗| 什邡市| 交口县| 萍乡市| 湘西| 新民市| 九江县| 贞丰县| 浪卡子县| 阿克陶县| 灯塔市| 海阳市| 宜川县| 巴楚县| 陇南市| 留坝县| 阳西县| 商河县| 鲜城| 文昌市| 邳州市| 长春市| 曲靖市| 孟州市| 昔阳县| 西林县| 新余市| 子长县| 鄂伦春自治旗| 崇义县| 雷波县| 苗栗县| 唐海县| 洱源县| 揭阳市| 阳西县|