





摘 要:在移動App即時缺陷預測領域,大部分研究只關注預測模型的性能,而忽略了模型的可解釋性,因此會造成開發人員對缺陷預測模型的預測結果缺乏信任,并阻礙了缺陷預測模型在實踐中的應用。主要針對Android移動App即時缺陷預測模型的可解釋性展開研究,通過差分進化算法對局部可解釋技術LIME方法進行超參優化得到ExplainApp方法,該方法可以對預測結果生成高質量解釋。選擇了14個實際Android應用程序作為實驗對象,最終結果表明,ExplainApp方法可以解釋移動App即時缺陷預測模型得到的實例預測結果。ExplainApp方法在擬合優度上要優于原始的LIME方法,可以平均提高94.50%。
關鍵詞:即時缺陷預測;移動軟件;可解釋性;超參優化
中圖分類號:TP311.5 文獻標志碼:A
文章編號:1001-3695(2022)07-029-2104-05
doi:10.19734/j.issn.1001-3695.2021.12.0679
基金項目:國家自然科學基金資助項目(61202006);南京大學計算機軟件新技術國家重點實驗室開放課題(KFKT2019B14);南通市應用研究計劃項目(JC2021124)
作者簡介:胡新宇(1997-),男,江蘇徐州人,碩士研究生,主要研究方向為軟件質量保障;陳翔(1980-),男(通信作者),江蘇南通人,副教授,碩導,博士,主要研究方向為軟件質量保障(xchencs@ntu.edu.cn);夏鴻崚(1997-),男,江蘇泰州人,碩士研究生,主要研究方向為軟件質量保障;顧亞鋒(1998-),男,江蘇南通人,碩士研究生,主要研究方向為軟件質量保障.
Interpretable method of just-in-time defect prediction model for mobile App
Hu Xinyu1,Chen Xiang1,2?,Xia Hongling1,Gu Yafeng1
(1.School of Information Science amp; Technology,Nantong University,Nantong Jiangsu 226019,China;2.State Key Laboratory for Novel Software Technology,Nanjing University,Nanjing 210023,China)
Abstract:In the field of mobile App just-in-time (JIT) defect prediction,most studies only focus on the performance of the prediction model but ignore the interpretability of the model.Therefore,developers will lack trust in the prediction results of the defect prediction model and hinder the application of the defect prediction model in practice.This paper studied the interpretability of the mobile App JIT defect prediction model.And it proposed the method ExplainApp by hyperparameter optimization of the local interpretability technology LIME method via a differential evolution algorithm,which could generate explanations for the prediction results.This study selected 14 real-world Android applications as preposed experimental objects.The final results show that,the method ExplainApp can explain the prediction results of the instance generated by the mobile App JIT defect prediction model.And the method ExplainApp is superior to the original LIME method in terms of the goodness of fit.Specifi-cally,the performance can improve by 94.50% on average.
Key words:just-in-time defect prediction;mobile App;interpretability;hyper parameter optimization
0 引言
隨著互聯網技術的高速發展,軟件已成為人們工作、學習和日常生活中不可缺少的一部分。然而,由于軟件的規模和復雜性的不斷增加,當前使用的絕大部分軟件產品都不可避免地存在缺陷[1],軟件產品中隱藏的缺陷不僅給用戶帶來負面體驗,甚至還會造成嚴重的經濟損失。所以盡早地定位并修復缺陷對開發人員來說是一項至關重要,同時也是極具挑戰的任務。軟件缺陷預測旨在通過使用機器學習技術構建一個預測模型來檢測代碼片段(如文件、方法或類)是否含有缺陷[2]。
近年來,隨著移動互聯網的蓬勃發展和智能移動設備的迅速普及,越來越多的智能手機用戶通過他們的設備進行相互通信、獲取信息和娛樂[3]。用戶可以隨時在應用市場上下載各種應用軟件,開發人員也不斷地開發新的應用軟件或者優化已發布的軟件來滿足用戶的需求和優化用戶的體驗。然而,應用程序的頻繁更新會不可避免地給新版移動應用程序引入缺陷,從而影響應用的質量[4]。在移動應用程序的開發和維護過程中,及時發現缺陷并提交給相關開發人員進行解決,可以避免一些不必要的損失。因此,研究人員提出了即時軟件缺陷預測[5],用于識別新提交的代碼變更(即代碼提交)是否引入缺陷,從而為開發人員提供及時的反饋,以便盡早發現并修復缺陷。Catolino等人[6,7]首次嘗試探索針對移動App的即時軟件缺陷預測,對于更新頻繁的移動App,分析即時軟件缺陷預測是否有效。
軟件缺陷預測模型應用機器學習技術,可以很好地檢測出目標代碼片段內是否含有缺陷,但一些機器學習技術基于黑盒模型(如隨機森林、神經網絡等),并不具有可解釋性。也就是說,開發人員給模型一個輸入,模型給他們一個預測結果,但開發人員無法了解模型給出的預測結果背后的依據。缺乏可解釋性嚴重制約了機器學習在安全攸關任務中的廣泛應用,特別是醫學和金融領域。例如,在醫療護理方面,一個良好的可解釋性模型可以幫助醫護人員更好地了解和分析患者的病情,患者的護理質量也可以得到進一步的提高,從而提高解決患者病情的概率[8]。在一些地區的法律上也針對該問題提出了新的條例規定,例如歐盟的GDPR(general data protection regulation)中第22條[9]規定在影響個人或群體的決策中,需要對算法作出的任何決策提供解釋。因此針對機器學習可解釋性(即一套能夠產生準確預測,同時能夠解釋這些預測的人工智能/機器學習技術)的研究是非常必要的[10]。
與軟件缺陷預測模型一樣,移動App即時缺陷預測模型同樣基于機器學習技術,對于模型的可解釋性,本文通過一種局部可解釋性模型 (即LIME技術[11])進行研究。LIME技術是圍繞著要解釋的實例構建一個局部回歸模型,以確定每個特征對要解釋的實例預測的貢獻值。隨后本文使用差分進化算法[12]對LIME技術進行超參優化并提出ExplainApp方法,通過隨機森林分類技術生成缺陷預測模型,使用ExplainApp對選取的一個實例進行解釋。此外,本文通過差分進化算法以LIME的擬合優度(R2)為目標函數,來得到最佳擬合優度和擬合優度最佳時需要隨機生成的實例數。
本文的主要貢獻可總結如下:
a)首次將模型可解釋性方法應用到移動App即時缺陷預測問題上。
b)通過將局部可解釋模型LIME進行超參優化以提出ExplainApp方法,其可以提高線性回歸模型的擬合優度(R2)。
c)選擇了14個真實Android應用程序,對本文所提的ExplainApp方法的有效性進行了評估。
1 研究背景和相關工作
1.1 相關工作
移動應用軟件為滿足用戶的需求和優化用戶的體驗,會頻繁地更新,即時軟件缺陷預測特別適用于這種場景,對于代碼變更引入的缺陷會給開發人員提供及時的反饋。Catolino[6]選擇了5個移動應用程序來分析即時缺陷預測的有效性,并使用邏輯回歸模型,實驗結果表明,這些模型只能檢測出有限數量的缺陷,因此需要進行進一步研究。隨后,Catolino等人[7]比較了多種機器學習和集成學習方法的影響,在COMMIT GURU平臺上選取了14個Android移動App,對即時缺陷預測的有效性開展了實證研究,結果表明,樸素貝葉斯分類器的性能要明顯優于其他分類器。
與大多數基于類級別的研究工作相比,基于代碼變更級別的即時缺陷預測更適用于移動App的場景,因此本文研究針對Android移動App進行即時軟件缺陷預測。
1.2 研究背景
由于即時缺陷預測技術具有細粒度、即時性和可追溯性好等優點,近年來成為缺陷預測領域的一個研究熱點[13]。Mockus等人[14]首次提出在代碼變更層次上進行缺陷預測;Kim等人[15]首次提出了對每次代碼變更進行缺陷預測;Kamei等人[5]首次將這種缺陷預測技術稱為即時缺陷預測技術。
開發人員每次提交新的代碼變更時,即時缺陷預測技術會預測新的代碼變更是否包含缺陷。即時缺陷預測技術主要包括三個階段,分別是數據標注、特征提取和模型構建[13]。數據標注階段主要依賴版本控制系統(如Git)和缺陷追蹤系統(如Bugzlla或JIRA),并將代碼變更標注為有缺陷或無缺陷類型;特征提取階段主要通過提取不同維度的特征來表征代碼變更;模型構建階段主要依靠機器學習技術來構建預測模型[13]。
Kamei等人[5]對6個開源項目和5個商業項目進行了大規模研究,使用了14個指標來度量代碼變更,實驗結果表明,其模型的平均準確率為68%、平均召回率為64%。隨后,Kamei等人[16]評估了跨項目預測場景下即時缺陷預測模型的性能,通過對 11 個開源項目的實證研究發現,數據合并和集成學習方法可以提高跨項目缺陷預測方法的性能。Catolino等人[7]在移動App即時缺陷預測上使用了Kamei等人[5,16]考慮的14個度量指標。因此,本文研究中使用的度量指標也是參照他們研究所用的度量指標。
2 方法
圖1總結了本文方法的整體框架,即將ExplainApp方法應用到移動App即時缺陷預測模型上,對模型得到的單個實例結果進行局部解釋。該框架由兩個階段組成。第一階段構建缺陷預測模型,首先通過版本控制系統來搜集應用程序項目內的代碼變更,從而構建數據集;然后基于數據集使用隨機森林分類器來構建即時缺陷預測模型。第二階段應用可解釋性方法,本文對局部可解釋性技術LIME進行超參優化,通過差分進化算法[12]以最大化局部回歸模型的擬合優度(R2)為優化目標,得到最大擬合優度和最大擬合優度時對應的最佳隨機生成實例數;之后對一個新的代碼變更實例通過移動App即時缺陷預測模型進行預測,將超參優化后的LIME技術(即ExplainApp)對預測結果進行解釋,得到可視化的解釋結果。
2.1 LIME
LIME(local interpretable model-agnostic explanations)[11]是一種模型無關技術,即算法與要解釋的黑盒模型無關。LIME使用局部線性回歸模型來對單個樣本實例進行解釋。假設對于需要解釋的缺陷預測模型f,取測試的樣本實例x,在其附近對特征取值進行隨機擾動,生成新的虛擬樣本點,使用黑盒模型對新生成的虛擬樣本點進行預測,使用這些新的虛擬樣本點和黑盒模型得到的預測值構建可解釋模型(局部線性回歸模型),最后得到對黑盒模型良好的局部近似。
可解釋性方法LIME的偽代碼如算法1所示。
算法1 LIME算法[11]
輸入:黑盒預測模型f;要解釋的實例x;隨機生成的實例數n;預測概率最高的指標數s。
輸出:對實例x預測的各個特征貢獻值的集合W。
D=?
for i in {1,…,n}do
di=samples_around(x)
y′i=predict(f,di)
D=D∪(di,y′i)
end
l=s-Lasso(D,s)
W=get_coefficients(l)
return W
LIME算法的具體步驟如下:
a)LIME在測試樣本x附近對特征取值進行隨機擾動,生成n個虛擬的鄰域實例。
b)LIME使用缺陷預測模型f對生成的n個相鄰的虛擬實例進行預測,得到預測結果。
c)LIME使用生成的實例和其從缺陷預測模型f生成的預測結果構建了一個局部線性回歸模型g。
d)局部線性回歸模型的系數可以表示根據回歸模型g預測測試實例x時每個特征的重要性得分。
W中每個特征的重要性得分被限制在-1~1。積極的LIME的特征(0lt;w≤1)表明,該特征對測試實例x的估計概率有積極影響;消極的LIME的特性(-1≤wlt;0)表明,該特征對測試實例x的估計概率有負面影響。
目標函數是衡量可解釋模型(即局部線性回歸模型)和黑盒模型(即缺陷預測模型)之間的差異,目標函數設置如下:
ξ(x)=argming∈G L(f,g,πx)+Ω(g)(1)
其中:f表示缺陷預測模型,即要解釋的黑盒模型;g表示簡單的可解釋模型;G表示可解釋模型的一個集合;πx表示新數據集中的數據x′與原始數據 x的接近度,即擾動后樣本之間的距離;Ω(g)表示模型g的復雜程度。
可解釋模型的復雜度Ω(g) 保持在比較低的水平時,最小化損失函數L,目標函數ξ(x)即為對于樣本x的可解釋模型g與黑盒模型f 預測的接近程度。
2.2 ExplainApp
該方法使用超參優化算法來優化LIME算法的參數設置。其通過差分進化算法[12]來尋找線性模型擬合優度最佳時需要生成的實例數,其中目標函數是最大化局部回歸模型的擬合優度(R2)。
算法2是對LIME進行差分進化算法(即ExplainApp)的偽代碼描述,所求的生成實例數是一維的。
算法2 ExplainApp算法
輸入:種群大小np;最大迭代次數iter_num;目標函數,即線性模型的擬合優度score();生成實例數的最小值nmin;生成實例數的最大值nmax。
輸出:最佳擬合優度時的生成實例數n;線性模型的最佳擬合優度score(n)。
t= 1
for i in {1,…,np}do
ni,t=nmin+rand(0,1)*(nmax-nmin)
end
while (score(n) ≤ ε) or (t≤ iter_num) do
for i= 1 to np do
vi,t=mutation(ni,t);
ui,t=crossover(ni,t,vi,t)
if score(ui,t)gt;score(ni,t) then
ni,t=ui,t
if score(ni,t)gt;score(n) then
n=ni,t
end
end
end
t=t+1
end
return n,score(n)
給定一個黑盒預測模型f和一個要解釋的實例x,對LIME進行差分進化執行的步驟如下:
a)初始化種群,在總體邊界內隨機生成一組大小為np的初始種群,種群中每個個體是提交實例x周圍隨機生成的實例數n。
b)對于每個候選個體,使用LIME基于隨機生成的虛擬實例和黑盒模型f生成預測結果,構建局部回歸模型g。
c)根據隨機生成的實例數找到這一代的最佳候選者,從而得到具有最高擬合優度的局部線性回歸模型。
d)基于當前代的候選集,使用區間差分加權因子pr和交叉概率pc,通過變異、交叉和選擇操作,生成下一代的候選集。
e)重新執行程序,直到程序達到迭代次數。
f)最終得出該模型在所有迭代中產生最高的擬合優度和在最高擬合優度時模型所需的實例數。
表1給出了本文方法相關的超參取值或者取值范圍。
3 實證研究
本文在實證研究中嘗試回答以下兩個研究問題。
RQ1:ExplainApp方法能夠解釋Android移動App即時缺陷模型對測試實例的預測嗎?
傳統的全局解釋通常是對黑盒模型的決策過程進行解釋,而不能解釋單個樣本的決策結果[10]。最近一些研究[11,17~21]通過局部解釋的模型無關技術來解釋任何黑盒模型的單個樣本的預測結果。然而,局部可解釋性技術還沒應用于Android移動App的缺陷預測問題上,本文希望超參優化后的LIME模型(ExplainApp方法)能夠給移動App即時缺陷預測模型給出相應的解釋。
RQ2: ExplainApp方法與原始LIME模型在擬合優度(R2)上相比是否更優?
一些模型可以通過超參優化調整某些超參取值來提高模型的性能,本文通過對可解釋模型LIME的超參優化,以提高LIME作為可解釋模型的性能。由于LIME使用的是局部線性回歸模型來對單個樣本進行解釋,所以本文使用回歸模型的擬合優度(R2)來衡量LIME的性能,比較超參優化后的LIME模型(ExplainApp方法)在擬合優度(R2)上是否優于原始LIME模型。
3.1 數據集
為了訓練移動軟件缺陷預測模型,本文使用了一個基準數據集,其包含了14個Android應用程序,這個數據集由最近的研究[7,22,23]提供。其中,Android Firewall是一款防火墻應用程序;Alfresco是一個商業辦公應用程序;Android Sync是一個Android同步管理器;Android Wallpaper是一個提供各種高質量壁紙的軟件;AnySoftKeyboard是可以為Android移動設備提供多種語言的屏幕鍵盤;Apg為Android 移動設備提供電子郵件加密;Applozic Android SDK是一個實時聊天和通信的應用程序;Delta Chat是一種基于電子郵件的即時消息工具;Android Universal Image Loader提供了同步和異步的圖像加載;Kiwis是用于離線讀取用戶文件的應用程序;Own Cloud Android提供了一個同步個人文件的云存儲平臺;Page Turner提供了一個電子書閱讀器;Notify Reddit可以從穿戴設備上獲取消息。
表2總結了這些應用程序的基本統計信息,包括App名稱、代碼行數(#LOC)、代碼變更總數(#TC)、有缺陷代碼變更數量(#DC)、無缺陷代碼變更數量(#CC)和有缺陷代碼變更數量所占比例(%DR)。這些應用程序來自不同領域,并且從代碼行數看,這些程序的規模各不相同。本文遵循原始工作[16]的設定,每個Android應用程序的數據集都使用了來自五個維度的14個度量特征。表3給出了對代碼變更進行度量的14個特性的簡要描述。
3.2 實驗細節
本文的整體研究框架如圖1所示,具體細節如下:
a)構建即時缺陷預測模型。首先通過版本控制系統來搜集應用程序項目內的代碼變更,構建數據集。然后使用隨機森林分類器,基于數據集來構建即時缺陷預測模型。選擇隨機森林的原因是隨機森林具有較高的預測精度和穩定性,能同時滿足本實驗對模型可解釋性的需求,即需要一個待解釋的黑盒模型。
b)對LIME方法進行超參優化。本實驗使用差分進化算法來尋找擬合優度最佳時生成的實例數,其優化目標是最大化局部回歸模型的擬合優度(R2)。由于該方法使用的LIME模型是局部線性回歸,所以本文使用擬合優度作為評測局部線性回歸的性能指標,最后得到最大擬合優度和最大擬合優度時最佳的隨機生成實例數。差分進化算法是最新的優化算法,具有概念簡單、易于實現、收斂速度快等優點,在軟件缺陷數預測方法的優化[24]上也有應用,因而本文選擇其作為超參優化算法。
c)使用超參優化后的LIME模型(ExplainApp方法)對測試實例進行解釋。首先使用數據集構建LIME解釋器,選定數據集中一個特定的實例,然后將使用ExplainApp方法得到的最佳生成實例數應用到LIME解釋器上,最后對數據集中要解釋的實例測試結果生成解釋。
值得注意的是,由于LIME通過在測試實例附近隨機擾動特征取值以生成新的實例,所以每次執行LIME擾動后生成的實例可能有所不同。為了減少LIME生成實例解釋的隨機性,本文給LIME設置一個隨機種子,超參優化的LIME(即ExplainApp方法)也同樣設置了隨機種子。
3.3 結果分析與討論
1) 針對RQ1的結果分析
為了解決RQ1的問題,本實驗使用ExplainApp方法對缺陷預測模型進行解釋。該實驗使用隨機森林分類器在數據集上構建分類預測模型。對于構建超參優化后的LIME模型(即ExplainApp方法),該實驗通過LIME工具包創建一個解釋器,然后使用差分進化算法以最大化局部回歸模型的擬合優度(R2)為優化目標,得到最大擬合優度時最佳的隨機生成實例數。本文將最佳的隨機生成實例數替換原始的生成實例數,然后對測試集中要解釋的實例進行解釋。
本文選取Firewall應用程序數據集中的一個實例,使用ExplainApp對其進行解釋。圖2(a)指出該實例被預測為有缺陷的概率是73%,被預測為無缺陷的概率是27%。圖2(b)顯示了由超參優化后的LIME模型(即ExplainApp方法)生成的對該實例的可視化解釋。右邊深色條形圖表示對該實例預測為有缺陷支持的度量特征的分數,而左邊淺色條形圖表示對該實例預測為有缺陷反對的度量特征的分數。本文查看對該實例預測結果影響最大的五個特征,條件{LAgt;57.00}支持的分數(貢獻值)為0.122,條件{entropygt;1.30}支持的分數為0.098,條件{NUCgt;31.00}支持的分數為0.090,條件{FIXgt;0.00}支持的分數為0.089,條件{1.00lt;NDEV≤5.00} 反對的分數為0.072。這些特征支持或反對的分數是該實例被預測為有缺陷的重要依據。
2)針對RQ2的結果分析
為了解決RQ2的問題,本實驗首先對每個應用程序的數據集都用10折交叉驗證,將其劃分為測試集和訓練集,通過設置shuffle參數值為1,使得每次劃分的數據集都相同。然后對每個應用程序的測試數據集的每個實例都進行超參優化,本實驗分析了同一實例的LIME和ExplainApp的擬合優度。該實驗使用LIME對測試實例生成解釋,然后使用LIME包中的score函數得到擬合優度值。對于超參優化的LIME(即ExplainApp方法),本文使用差分進化算法以最大化局部回歸模型的擬合優度為優化目標,得到最大擬合優度的值和擬合優度最大時的隨機生成實例數。
表4給出了14個應用程序使用LIME和ExplainApp方法構建的局部線性回歸模型的擬合優度的平均值。從表中可以看出,就局部回歸模型的擬合優度而言,超參優化的LIME(即ExplainApp方法)總是優于原始的LIME。對于這14個應用程序,就所有的測試實例而言,平均提高了94.50%。在Alfresco應用程序上提升最多,提升了1.43倍。在Applozic 應用程序上提升最少,僅提升了0.18%,這是因為Applozic使用原始的LIME得到的擬合優度本身就很高,平均值是0.976,所以很難有所提高。
4 結束語
本文首次將模型的可解釋性方法應用到移動App即時缺陷預測問題上。通過差分進化算法對局部可解釋技術LIME進行超參優化,得到ExplainApp方法,然后使用ExplainApp對選取的樣本實例的預測結果進行解釋。該方法在14個Android應用程序上進行實驗,基于實驗結果,本文發現:a)對于移動App即時缺陷預測模型,使用超參優化后的LIME模型(即ExplainApp方法)可以給出預測模型生成實例的預測結果的解釋;b)在局部線性回歸模型的擬合優度(R2)上,ExplainApp方法優于原始的LIME模型。
參考文獻:
[1]Wang Lu,Sun Xiaobing,Wang Jingwei,et al.Construct bug knowledge graph for bug resolution[C]//Proc of the 39th International Confe-rence on Software Engineering Companion.Piscataway,NJ:IEEE Press,2017:189-191.
[2]陳翔,顧慶,劉望舒,等.靜態軟件缺陷預測方法研究[J].軟件學報,2016,27(1):1-25.(Chen Xiang,Gu Qing,Liu Wangshu,et al.Research on static software defect prediction methods[J].Journal of Software,2016,27(1):1-25.)
[3]Ricky M Y,Purnomo F,Yulianto B.Mobile application software defect prediction[C]//Proc of IEEE Symposium on Service-Oriented System Engineering.Piscataway,NJ:IEEE Press,2016:307-313.
[4]Zhao Kunsong,Xu Zhou,Yan Meng,et al.Just-in-time defect prediction for Android Apps via imbalanced deep learning model[C]//Proc of the 36th Annual ACM Symposium on Applied Computing.New York:ACM Press,2021:1447-1454.
[5]Kamei Y,Shihab E,Adams B,et al.A large-scale empirical study of just-in-time quality assurance[J].IEEE Trans on Software Engineering,2012,39(6):757-773.
[6]Catolino G.Just-in-time bug prediction in mobile applications:the domain matters![C]//Proc of the 4th International Conference on Mobile Software Engineering and Systems.Piscataway,NJ:IEEE Press,2017:201-202.
[7]Catolino G,Di Nucci D D,Ferrucci F.Cross-project just-in-time bug prediction for mobile Apps:an empirical assessment[C]//Proc of the 6th International Conference on Mobile Software Engineering and Systems.Piscataway,NJ:IEEE Press,2019:99-110.
[8]Kerr K F,Bansal A,Pepe M S.Further insight into the incremental value of new markers:the interpretation of performance measures and the importance of clinical context[J].American Journal of Epidemiology,2012,176(6):482-487.
[9]General Data Protection Regulation.Regulation (EU) 2016/679 of the European parliament and of the council of 27 April 2016[EB/OL](2016).https://cnpd.public.lu/en/legislation/droit-europ/union-europeenne/rgpd.html#:~:text=General%20Data%20Protection%20Regulation%20Regulation%20%28EU%29%202016%2F679%20of,movement%20of%20such%20data%2C%20and%20repealing%20Directive%2095%2F46%2FEC.
[10]Jiarpakdee J,Tantithamthavorn C K,Dam H K,et al.An empirical study of model-agnostic techniques for defect prediction models[J].IEEE Trans on Software Engineering,2022,48(1):166-185.
[11]Ribeiro M T,Singh S,Guestrin C.“Why should I trust you?”Explaining the predictions of any classifier[C]//Proc of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining.New York:ACM Press,2016:1135-1144.
[12]Storn R,Price K.Differential evolution:a simple and efficient heuristic for global optimization over continuous spaces[J].Journal of Global Optimization,1997,11(4):341-359.
[13]蔡亮,范元瑞,鄢萌,等.即時軟件缺陷預測研究進展[J].軟件學報,2019,30(5):1288-1307.(Cai Liang,Fan Yuanrui,Yan Meng,et al.Just-in-time software defect prediction:literature review[J].Journal of Software,2019,30(5):1288-1307.)
[14]Mockus A,Weiss D M.Predicting risk of software changes[J].Bell Labs Technical Journal,2000,5(2):169-180.
[15]Kim S H,Whitehead E J,Zhang Yi.Classifying software changes:clean or buggy?[J].IEEE Trans on Software Engineering,2008,34(2):181-196.
[16]Kamei Y,Fukushima T,Mclntosh S,et al.Studying just-in-time defect prediction using cross-project models[J].Empirical Software Engineering,2016,21(5):2072-2106.
[17]Lundberg S M,Lee S I.A unified approach to interpreting model predictions[C]//Proc of the 31st International Conference on Neural Information Processing Systems.Red Hook,NY:Curran Associates Inc.,2017:4768-4777.
[18]Gosiewska A,Biecek P.IBreakDown:uncertainty of model explanations for non-additive predictive models[EB/OL].(2020-03-27).https://arxiv.org/abs/1903.11420v1.
[19]Staniak M,Biecek P.Explanations of model predictions with live and breakDown packages[EB/OL].(2018-04-05).https://arxiv.org/abs/1804.01955.
[20]Guidotti R,Monreale A,Ruggieri S,et al.Local rule-based explanations of black box decision systems[EB/OL].(2018-05-28).https://arxiv.org/abs/1805.10820v1.
[21]Ribeiro M T,Singh S,Guestrin C.Anchors:high-precision model-agnostic explanations[C]//Proc of the 32nd AAAI Conference on Artificial Intelligence and the 30th Innovative Applications of Artificial Intelligence Conference and the 8th AAAI Symposium on Educational Advances in Artificial Intelligence.Palo Alto,CA:AAAI Press,2018:1527-1535.
[22]Zhao Kunsong,Xu Zhou,Zhang Tao,et al.Simplified deep forest mo-del based just-in-time defect prediction for Android mobile Apps[J].IEEE Trans on Reliability,2021,70(2):848-859.
[23]Zhao Kunsong,Xu Zhou,Yan Meng,et al.A compositional model for effort-aware just-in-time defect prediction on Android Apps[J].IET Software,2022,16(3):259-278.
[24]Chen Xiang,Zhang Dun,Zhao Yingquan,et al.Software defect number prediction:unsupervised vs supervised methods[J].Information and Software Technology,2019,106:161-181.