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

?

一種跨項目缺陷預(yù)測的源項目訓(xùn)練數(shù)據(jù)選擇方法

2022-03-16 11:39:46蓋金晶于化龍
關(guān)鍵詞:散度實例分類器

蓋金晶,鄭 尚,于化龍,高 尚

(江蘇科技大學(xué)計算機學(xué)院,江蘇 鎮(zhèn)江 212100)

在軟件開發(fā)的過程中,需求分析、軟件設(shè)計以及開發(fā)人員的編碼實現(xiàn),每個過程都有可能由于開發(fā)人員的經(jīng)驗不足而出現(xiàn)軟件缺陷. 這些軟件缺陷可能會引起意想不到的問題,嚴重的情況下會給公司造成不可挽回的損失. 在軟件開發(fā)的過程中不可避免會出現(xiàn)軟件缺陷,而越早發(fā)現(xiàn)缺陷并且越早修復(fù)它們,則付出的代價越小. 若軟件發(fā)布后,修復(fù)缺陷的成本將大大增加. 我們希望在軟件開發(fā)初期就能夠有效地檢測出缺陷.

跨項目軟件缺陷預(yù)測(cross project defect prediction,簡稱CPDP)旨在軟件開發(fā)初期通過其他項目的歷史數(shù)據(jù),來構(gòu)建軟件缺陷預(yù)測模型,再在當前項目上進行預(yù)測,從而得到可能存在的潛在缺陷.

近年來,越來越多的研究者開始關(guān)注跨項目軟件缺陷預(yù)測. 主要圍繞同構(gòu)跨項目缺陷預(yù)測(homogeneous cross-project defect learning)和異構(gòu)跨項目缺陷預(yù)測(heterogeneous cross-project defect prediction)兩方面. 其中,同構(gòu)是指所有源項目和目標項目具有相同的度量元,而異構(gòu)是指源項目與目標項目具有不同的度量元,根據(jù)具體情況,源項目之間也可能具有不同的度量元. 而本文則是針對同構(gòu)跨項目缺陷預(yù)測開展研究.

Jureczko和Madeyski[1]從代碼所有權(quán)(code ownership)角度,考慮了3種不同類型(工業(yè)界、開源界、學(xué)術(shù)界)的項目,對CPDP的可行性進行了分析. 他們的研究結(jié)果表明,跨項目進行軟件缺陷預(yù)測的結(jié)果并不理想.

Turhan[2]為了深層次分析研究造成CPDP性能不理想的原因,引入了數(shù)據(jù)集漂移(dataset shift)的概念. 他們通過對數(shù)據(jù)集漂移類型進行分析,推薦了兩類解決方法:基于實例的方法和基于分布的方法. Zimmermann等[3]基于項目的上下文因素進行分析,共提出了40種不同的項目上下文因素來計算項目間的相似性. 他們的研究為源項目的選擇提供了指引.

由于大量不相關(guān)的跨項目數(shù)據(jù)往往使建立高性能的預(yù)測模型變得困難. 為了克服這一挑戰(zhàn),許多研究人員專注于篩選與CPDP任務(wù)無關(guān)的源實例或特性.

Turhan等[4]提出了Burak過濾法,他們通過計算訓(xùn)練集與目標項目中實例的歐式距離,選出最近的K個實例添加到訓(xùn)練集中. 他們的實驗結(jié)果表明,Burak過濾法能有效地提高CPDP模型的性能. He等[5]提出了一種兩階段的篩選方法TDS.第一階段他們根據(jù)目標項目度量元的分布特征取值,通過歐式距離篩選出前K個候選源項目;第二階段從前K個候選源項目中通過Burak過濾法或Peters過濾法[6]選出與目標項目最為接近的實例. 李勇等[7]隨后提出了相似的兩階段篩選方法,他們根據(jù)余弦距離選出與目標項目最為相關(guān)的前K個候選源項目,隨后借助Peters過濾法進一步選出相關(guān)實例.

除了上述基于實例選擇的研究成果,國內(nèi)外學(xué)者也對基于分布的跨項目缺陷預(yù)測開展了相關(guān)研究. Nam等[8]提出一種遷移學(xué)習(xí)方法,遷移學(xué)習(xí)通過調(diào)整源項目,使得源項目與目標項目的特征相似. 并且他們進一步拓展TCA,得到TCA+來提升跨項目缺陷預(yù)測性能.

Zhao等[9]提出了NN過濾器,他們通過刪除那些不在目標項目數(shù)據(jù)的最近鄰居中出現(xiàn)的源項目實例,這樣使得源項目和目標項目在分布上更加相似. Ma等[10]提出了一種名為transfer naive Bayes(TNB)的方法,該方法首先通過data gravitation(DG)方法[11]對源實例進行權(quán)重調(diào)整,以削弱不相關(guān)源數(shù)據(jù)的影響,然后對這些權(quán)重調(diào)整后的源數(shù)據(jù)構(gòu)建樸素Bayes分類器.

最近,一些研究表明,在目標項目中添加一定比例的標記數(shù)據(jù),可能有助于提高CPDP的性能. Chen等[12]提出了一種新的方法(DTB),它在目標項目中使用少量的標記數(shù)據(jù),同樣使用DG方法初始化源項目數(shù)據(jù)的權(quán)值,然后利用TrAdaboost[13]建立預(yù)測模型,利用目標項目中有限數(shù)量的標簽數(shù)據(jù)對源數(shù)據(jù)進行重估.

上述跨項目缺陷預(yù)測方法雖已經(jīng)取得了一定的成果,但是仍有改進的空間. 具體來說,即基于相似性選取的方法仍不精確,同時盲目使用大量的訓(xùn)練數(shù)據(jù)所訓(xùn)練出的預(yù)測模型容易導(dǎo)致較高的誤報率,因此,本文在一對一同構(gòu)跨項目缺陷預(yù)測領(lǐng)域做了相應(yīng)的改進工作:

(1)從數(shù)據(jù)分布的角度,利用JS散度測算找到與目標項目最相似的源項目,提升源項目選取的準確度;

(2)提出相對密度,對選定的源項目進行數(shù)據(jù)選擇,提高預(yù)測模型的精度;

(3)通過實驗驗證,本文方法對不同項目的訓(xùn)練集和分類器的選擇,皆表現(xiàn)出較好的性能.

1 相關(guān)概念

1.1 JS散度

JS散度也稱JS距離,是KL散度的一種變形. Kullback-Leibler divergence(KL散度[14])又稱為相對熵,信息散度,信息增益. KL散度是兩個概率分布P和Q差別的非對稱性的度量.典型情況下,P表示數(shù)據(jù)的真實分布,Q表示數(shù)據(jù)的理論分布、模型分布、或P的近似分布.那么離散變量KL散度見式(1):

(1)

由于KL散度不具有對稱性,即KL(P||Q)≠KL(Q||P),為了解決這個問題,有人提出了Jensen-Shannon divergence(JS散度)[15]作為相似度度量的指標.現(xiàn)有兩個概率分布P和Q,其JS散度公式如式(2):

(2)

在計算JS散度的過程中使用了蒙特卡洛[16]方法(Monte Carlo),蒙特卡洛法是一種用來模擬隨機現(xiàn)象的數(shù)學(xué)方法,這種方法在模擬中能直接反映過程中的隨機性.如公式(3)所示:

(3)

不同于KL散度,JS散度的值域范圍是[0,1],相同為0,相反則為1. 相比較于KL,對相似度的判別更準確了. 同時其對稱性能讓散度度量更準確. 因此,本研究擬利用JS散度去衡量任意兩個項目的相似性,即JS散度越接近,兩個項目的分布也就越相似.

1.2 相對密度

經(jīng)過JS散度選定與目標項目分布最為相似的源項目需要對其訓(xùn)練數(shù)據(jù)選擇,以便構(gòu)建預(yù)測模型. 一般來說,若能精確地測出每一個訓(xùn)練樣本的概率密度,從噪聲點和離群點中區(qū)分出具有重要信息的樣本則變得比較容易. 但是,在高維特征空間中,獲得精確的概率密度是極為困難的,要獲取相對精確的概率密度也是十分耗時的. 因此,本文采用了一種避免概率密度測量的方法,即精確提取任意兩個訓(xùn)練樣本的概率密度的比例關(guān)系,我們稱這種反映比例關(guān)系的信息為相對密度.

為了計算相對密度,本文使用了與基于K最近鄰概率密度估計法(K-nearest neighbors-based probability density estimation,KNN-PDE[17])相似的策略. 作為一種非參數(shù)概率密度估計方法,KNN-PDE通過測量每個訓(xùn)練實例的K最近鄰距離來估計多維連續(xù)空間中的概率密度分布. 當訓(xùn)練實例的數(shù)量達到無窮大時,從KNN-PDE獲得的結(jié)果可以近似收斂到實際概率密度分布. 因此,本文提出的相對密度策略也采用了K最近鄰距離估計相對密度.

圖1 研究框架Fig.1 Research framework

(4)

顯然,在相對密度方法中,K值的選擇是十分重要的.若K值太小,則很難將低樣本從普通樣本中區(qū)分出來;若K值太大,則那些重要樣本與低樣本的區(qū)別便會變得模糊不清,而這些微小的差距將更難獲取.因此,需要給參數(shù)K選擇合適的值.

2 研究方法

文章以源項目數(shù)據(jù)選擇為研究對象,從項目分布的相似性角度出發(fā),首先利用JS散度進行源項目選擇,其次提出相對密度進行訓(xùn)練數(shù)據(jù)選擇,最后采用CPDP中常見的分類器對數(shù)據(jù)進行訓(xùn)練,并將模型用于目標項目的預(yù)測. 具體的研究框架和方法描述分別見圖1和表1.

2.1 數(shù)據(jù)標準化

本文使用Z-Score標準化方法來處理數(shù)據(jù). Z-Score標準化方法是常見的數(shù)據(jù)處理方法,通過將不同量級的數(shù)據(jù)轉(zhuǎn)化為同一量級Z-Score分值進行比較.

表1 研究方法Table 1 Research method

該方法計算出原始數(shù)據(jù)的均值μ和標準差σ,對數(shù)據(jù)進行標準化處理. Z-Score標準化方法的公式可表示如式(5):

(5)

2.2 基于JS散度的源項目確定

本文在對候選源項目集使用Z-Score標準化處理之后,將進行JS散度的計算,進而完成源項目的確定.

根據(jù)前文描述,JS散度能夠度量兩個項目數(shù)據(jù)分布的相似度,且JS越小證明分布越接近. 因此,本節(jié)工作主要是計算所有源項目與目標項目的JS散度,并選取與目標項目最接近的源項目.

具體流程如表2所示. 首先,將候選源項目集和目標項目分別擬合混合高斯(Gaussian mixture model,GMM)[18]模型. 高斯混合模型可以看作是由K個單高斯模型組合而成的模型,這K個子模型是混合模型的隱變量(hidden variable). 一般來說,一個混合模型可以使用任何概率分布,這里使用高斯混合模型是因為高斯分布具備很好的數(shù)學(xué)性質(zhì)以及良好的計算性能. 其次通過蒙特卡洛公式,計算候選項目集和目標項目的JS散度,其中JS(Si,T)表示為當前第i個候選項目與目標項目計算得出的JS散度值;并通過比較所得JS散度的大小,選取出與目標項目JS散度最小的源項目,即確定其為訓(xùn)練項目.

表2 源項目挑選流程Table 2 Source project selection

2.3 基于相對密度的源項目數(shù)據(jù)選擇

挑選后的源項目仍包含少量的噪聲或離群點樣本,如若盲目選擇將影響預(yù)測的效果. 為了篩選合適的訓(xùn)練數(shù)據(jù),本文通過相對密度反映類別中每個實例的重要性,并有選擇地截取數(shù)據(jù),提高訓(xùn)練模型的精度. 具體的方法流程如表3所示.

首先,根據(jù)2.2選取的源項目,統(tǒng)計其所有樣本數(shù)量,記為N;其次,計算每個樣本與第K個最近鄰的距離,獲得相對密度;最后,根據(jù)相對密度進行重要性排序,同時設(shè)定閾值p(percent)選擇合適數(shù)量的樣本作為訓(xùn)練集. 由表3可以看出,參數(shù)K和p的設(shè)定將決定模型訓(xùn)練的質(zhì)量,文中將在后續(xù)章節(jié)討論兩個參數(shù)的選擇.

表3 源項目的訓(xùn)練數(shù)據(jù)選擇Table 3 Training data selection of the source project

2.4 構(gòu)建跨項目軟件缺陷預(yù)測模型

為了證明我們方法的適應(yīng)性,我們分別采取CPDP中常用的分類器邏輯回歸(LR)、貝葉斯(NB)、支持向量機(SVM)、K近鄰(KNN)訓(xùn)練預(yù)測模型,并用于目標項目加以驗證,對得到的CPDP性能進行對比分析.

3 實驗驗證

3.1 數(shù)據(jù)集與評價指標

3.1.1 數(shù)據(jù)集

文中的數(shù)據(jù)集是來自Jureczko和Madeyski[19]收集的PROMISE庫中的開源項目,其已經(jīng)被廣泛應(yīng)用于跨項目缺陷預(yù)測研究. 表4展示了數(shù)據(jù)集的基本信息,包括項目名稱、項目版本、實例數(shù)量和缺陷率.

表4 PROMISE數(shù)據(jù)集Table 4 PROMISE data sets

3.1.2 評價指標

在軟件缺陷預(yù)測中,合理的評價指標能更好地評估預(yù)測結(jié)果,下文將介紹軟件缺陷預(yù)測中的基本的評價指標.

軟件缺陷可以看做是二分類問題,若將有缺陷的模塊設(shè)置為正例,無缺陷模塊為反例,則每個實例的分類過程中可能會出現(xiàn)以下4種情況:實際為有缺陷類被正確分類為有缺陷類,即真正例(true positive,TP);實際為無缺陷類被錯誤分類為有缺陷類,即假正例(false positive,FP);實際為無缺陷類被正確分類為無缺陷類,即真反例(true negative,TN);實際為有缺陷類被錯誤分類為無缺陷類,即假反例(false negative,FN). 在人工智能中,混淆矩陣是表示精度評價的一種標準格式,用n行n列的矩陣形式表示,如表5所示.

表5 混淆矩陣Table 5 Confusion matrix

根據(jù)上述描述,文章將采用F-measure作為本研究的評價指標,具體描述如下:

Precision:正確分類為正樣本的實例數(shù)目與分類為正樣本的實例數(shù)目的比率.

(6)

Recall:正確分類為正樣本的實例數(shù)目與所有正樣本實例數(shù)目的比率.

(7)

F-measure:對精確度和召回率的綜合衡量.f值越高,表現(xiàn)越好.

(8)

3.2 實驗設(shè)置與實驗結(jié)果

本文為了確認本方法是否優(yōu)于其他方法,我們在PROMISE數(shù)據(jù)集上與主流的跨項目缺陷預(yù)測方法以及設(shè)定的基線方法進行了對比.

首先,對8種方法進行簡述,如下所示:

(1)DTB[12]方法:在目標項目中使用少量的標記數(shù)據(jù),用來提高CPDP的效果.

(2)TrAdaboost[13]方法:構(gòu)建預(yù)測模型,利用目標項目中有限數(shù)量的標簽數(shù)據(jù)對源數(shù)據(jù)進行重估.

(3)TNB[10]方法:通過data gravitation(DG)方法對源數(shù)據(jù)進行權(quán)重調(diào)整,然后用權(quán)重調(diào)整后的源數(shù)據(jù)構(gòu)建樸素貝葉斯分類器.

(4)TCA+[8]方法:轉(zhuǎn)移成分分析方法,僅使用跨項目數(shù)據(jù)進行預(yù)測.

(5)NN filter[9]方法:通過刪除非目標項目最近鄰的源項目數(shù)據(jù)來對源項目數(shù)據(jù)進行篩選.

(6)KMM[20]方法:是KMM-MCW中的主要步驟,使用MMD最小化來對齊分布,降低域間差異,跳過概率密度估計,直接根據(jù)樣本估計權(quán)重.

(7)KMM-MCW[21]方法:多分量權(quán)重(MCWs)學(xué)習(xí)模型來分析源項目中多個分量從而不斷優(yōu)化.

(8)基線方法:不做任何數(shù)據(jù)選擇,直接對使用源項目訓(xùn)練模型進行目標項目預(yù)測.

表6 各類方法的F-measure結(jié)果比較Table 6 F-measure comparison of various methods

除對比方法實驗之外,本文為驗證所提方法能夠提高不同分類器構(gòu)建的模型性能,在邏輯回歸(LR)、貝葉斯(NB)、支持向量機(SVM)、K-近鄰(KNN)這幾種CPDP中常見分類器上也做了對比的實驗,具體結(jié)果如表7所示.

表7 不同分類器下本方法獲得的F-measure結(jié)果比較Table 7 F-measure comparison under different classifiers

根據(jù)表6結(jié)果可以發(fā)現(xiàn),與其他方法相比,本文方法最終選取的訓(xùn)練數(shù)據(jù)在大多數(shù)項目上取得較高的F-measure,且整體結(jié)果的均值高于其他方法. 實驗結(jié)果表明,本文方法能夠在最大程度地利用源項目情況下,根據(jù)JS散度和相對密度選擇合適的訓(xùn)練集構(gòu)建預(yù)測模型,且獲得較優(yōu)的性能.

從表7可以發(fā)現(xiàn),不同分類器結(jié)合本文方法在整體結(jié)果的均值都有了提升,且在大多數(shù)項目提高預(yù)測性能. 實驗結(jié)果表明,本文方法能夠適應(yīng)于CPDP中常用的分類器,并提高模型性能.

4 參數(shù)討論

圖2展示了不同項目的K和p組合,相應(yīng)的F-measure分布情況. 由圖2可知,我們能夠根據(jù)最優(yōu)的F-measure找到合適的參數(shù)組合.

圖2 不同K和p組合的F-measureFig.2 F-measure under different K and p

圖3 xerces不同分類器的F-measureFig.3 F-measure of xerces under different classifiers

如圖3所示,文章進一步討論了K和p在相同數(shù)據(jù)集上的不同分類器下F-measure的值變化情況. 以xerces為例,圖中結(jié)果表明,當F-measure值達到最高時,不同分類器在當前數(shù)據(jù)集上的K和p的組合基本保持一致,這說明經(jīng)過本文方法所選擇的訓(xùn)練數(shù)據(jù)已經(jīng)達到最優(yōu),且能夠適應(yīng)CPDP中各類常用的分類器.

5 結(jié)論

本文圍繞一對一的同構(gòu)跨項目缺陷預(yù)測展開研究,主要針對源項目訓(xùn)練數(shù)據(jù)選擇的問題,提出基于JS散度和相對密度的跨項目缺陷預(yù)測方法. 該方法首先利用JS(Jensen-Shannon divergence)散度選擇與目標項目最相似的源項目;其次,提出基于相對密度的源項目數(shù)據(jù)選擇方法;最后,采用CPDP中常見的分類器構(gòu)建預(yù)測模型,并用于目標項目進行驗證. 實驗結(jié)果表明,在最大程度利用源項目的情況下,本方法不僅能夠提高缺陷預(yù)測模型的性能,同時對不同分類器表現(xiàn)出較高的適應(yīng)性.

后續(xù)工作中,我們將進一步在更多的軟件缺陷數(shù)據(jù)集上驗證方法的有效性,并對方法進行擴展,使其應(yīng)用于多對一跨項目缺陷預(yù)測.

猜你喜歡
散度實例分類器
帶勢加權(quán)散度形式的Grushin型退化橢圓算子的Dirichlet特征值的上下界
具有部分BMO系數(shù)的非散度型拋物方程的Lorentz估計
H型群上一類散度形算子的特征值估計
BP-GA光照分類器在車道線識別中的應(yīng)用
電子測試(2018年1期)2018-04-18 11:52:35
H?rmander 向量場上散度型拋物方程弱解的Orlicz估計
加權(quán)空-譜與最近鄰分類器相結(jié)合的高光譜圖像分類
結(jié)合模糊(C+P)均值聚類和SP-V-支持向量機的TSK分類器
完形填空Ⅱ
完形填空Ⅰ
基于LLE降維和BP_Adaboost分類器的GIS局部放電模式識別
教育| 康保县| 星子县| 永丰县| 上林县| 河曲县| 阳东县| 霍邱县| 墨脱县| 南昌市| 梅州市| 鄂温| 波密县| 航空| 青冈县| 金阳县| 涿州市| 泰顺县| 安溪县| 盐城市| 阳谷县| 清丰县| 安阳市| 张家港市| 泗洪县| 丰原市| 四川省| 招远市| 新余市| 柏乡县| 宜宾市| 东明县| 宽甸| 诏安县| 昭觉县| 出国| 郴州市| 板桥市| 山阳县| 平定县| 临汾市|