






摘要:在機器學習技術逐漸滲透到各個領域的背景下,軟件開發流程中的軟件測試非常重要,面對在軟件缺陷預測過程中出現的類別不平衡和準確性問題,提出一種基于監督學習的解決方案,采用樣本平衡技術,結合合成少數類過采樣技術(synthetic minority over-sampling technique,SMOTE)與編輯最近鄰(edited nearest neighbor,ENN)算法,對局部加權學習(local weight learning,LWL)、J48、C4.8、隨機森林、貝葉斯網絡(Bayes net,BN)、多層前饋神經網絡(multilayer feedforwardneural network,MFNN)、支持向量機(supported vector machine,SVM)以及樸素貝葉斯(naive Bayeskey,NB-K)等多種算法進行測試。這些算法被應用于NASA 數據庫的3 個不同數據集(KK1, KK3,PK2),并對其效果進行詳細比較分析。研究結果顯示,結合了SMOTE 和ENN 的隨機森林模型在處理類別不平衡問題方面展現出高效且避免過擬合的優勢,為解決軟件缺陷預測中的類別不平衡提供了一種有效的解決方案。
關鍵詞:軟件缺陷預測;機器學習;類不平衡;XGBoost;隨機森林
中圖分類號:TP391 文獻標志碼:A 文章編號:1000-582X(2025)02-010-12
軟件開發需要大量人員協同完成,由于人員的工作背景、工作能力、思維方式等都存在差異[1],造成開發中潛在和不可預測的錯誤,即存在軟件缺陷。軟件缺陷包括:錯誤(error)、故障(fault)、失效(failure)等[2]。
軟件缺陷預測模型旨在依據軟件歷史缺陷數據預測未來可能出現的缺陷。預測的準確性與缺陷數據的質量密切相關。軟件缺陷預測在軟件工程中具有重要意義:1)軟件缺陷預測能有效縮短開發周期,用盡可能少的資源在最短時間開發出可靠的軟件;2)優化測試資源,提高缺陷檢測效率;3)提高軟件質量[3]。
本項研究采用了來自美國國家航空航天局(national aeronautics and space administration,NASA)的缺陷樣本集,包括KK1、KK3 和PK2 這3 個數據集,評估8 種不同的監督學習算法在解決軟件缺陷預測中類不平衡問題的性能。這些算法為:局部加權學習(local weighted learning,LWL)、J48 決策樹、C4.5 決策樹、隨機森林(random forest,RF)、貝葉斯信念網絡(Bayesian belief network,BBN)、NB-K 算法、多層前饋神經網絡(multilayer feedforward neural network,MFNN)以及支持向量機(support vector machine,SVM)。研究通過一系列實驗,對比這些算法在處理類不平衡問題時的表現,結果顯示,隨機森林算法在處理類不平衡問題方面具有更出色的效果。
1 國內外相關研究及問題
機器學習作為人工智能和數據科學的核心,是當今各項技術中發展最快的熱點領域[4],目的是通過經驗使學習性能有所提高[5]。目前,機器學習廣泛應用于各領域,如:醫療保健、金融、零售、旅游及社交媒體等[6]。根據美國航空航天局(NASA)噴氣推進實驗室(jet propulsion laboratory,JPL)的研究人員2001 年在《科學》雜志上發表的研究文章,機器學習在航天研究所發揮的作用日益顯著。2006 年,全球首個機器學習系也在美國卡內基梅隆大學成立。目前,較為熱門的機器學習方法主要分為集成學習[7]、深度學習[8]、遷移學習[9]及多標記學習[10]等。在經濟和社會領域,有一個著名的二八原則,即“ 帕累托原則”,它指出大約80%的結果往往是由20% 的原因所導致。這一原則同樣適用于軟件缺陷預測領域,在軟件開發過程中,大約80% 的軟件缺陷往往是由20% 的關鍵因素引起。軟件缺陷預測方面造詣很深的專家Boehm[11]提出,80% 的缺陷存在于20%的軟件模塊之中,又稱為Pareto 原則。這一發現幫助軟件開發團隊更加高效地識別和修復潛在的軟件缺陷,提高軟件質量和可靠性。目前,基于機器學習的預測方法已經成為軟件開發領域中不可或缺的核心技術,廣泛應用于各種軟件開發和維護過程,極大提高軟件質量和開發效率。研究人員通過預測模型,找出這20%的模塊作重點測試和研究,通過深入分析和挖掘數據中的隱含信息,找出缺陷,并總結潛在的規律和模式,為研究者們帶來全新的視角和思考方式。
盡管全球的研究人員正積極致力于軟件缺陷預測,并取得一定進展,但仍然存在許多挑戰。主要包括:
1)類別不平衡:缺陷數據在整體數據集中的比例較低,缺陷樣本與無缺陷樣本的數量差異大,有時甚至存在數量級的差異;
2)預測結果的可靠性:盡管模型可能將所有選定樣本預測為無缺陷的準確率高達99%,而當預測缺陷樣本時,準確率僅為1%。顯然,這種預測結果在實際應用中是不可信的。
3)缺陷存在對開發維護和成本預估的影響:確定軟件模塊中是否存在缺陷,屬于1 個二元分類問題。若能在軟件開發周期的初級階段辨識出含有缺陷的模塊,將大幅度降低軟件故障的出現頻率。這有助于節省成本和提高客戶滿意度。因此,預測軟件模塊的缺陷傾向性變得尤為關鍵。
2 本文模型
2.1 軟件缺陷的預測過程
在軟件工程領域,預測軟件缺陷是課題研究的關鍵。如圖1 所示,依據不同的監督機制,軟件缺陷預測被分為3 大類別:有監督缺陷預測、無監督缺陷預測以及半監督缺陷預測。有監督缺陷預測依賴于標注的數據集,通過模型訓練識別潛在缺陷。無監督缺陷預測不依賴于標注,通過挖掘數據的內在結構識別異常或潛在缺陷。半監督缺陷預測融合了有監督和無監督的方法,利用少量的標注數據與大量的未標注數據進行缺陷預測。
半監督缺陷預測進一步細分為基于聚類的缺陷預測和基于排序的缺陷預測。基于聚類的缺陷預測方法通過將數據點分組,識別出具有相似特征的簇,發現潛在的缺陷簇。這種方法通常適用于數據集中缺陷分布不均勻的情況。基于排序的缺陷預測方法則側重于對數據點進行排序,將最有可能包含缺陷的實例排在前面,提高預測的準確性。這種方法通常依賴于一些啟發式規則或模型對數據進行排序。通過這2 種方法,半監督缺陷預測能夠在標簽數據有限的情況下,提升缺陷檢測的效率和準確性。
軟件缺陷預測流程如圖2 所示,該過程利用歷史數據作為訓練集來訓練模型。在預測模型中對新數據執行測試,得出預測結果。在大多數情況下,訓練集由已知類別的數據構成,而測試集則由未知類別的數據組成,這一過程屬于有監督的預測方法范疇。
軟件度量元在軟件開發項目中不僅是衡量項目進展和質量的工具,更是預測項目未來發展趨勢的關鍵手段。通過收集和分析各種度量數據,項目管理者可以更好地理解項目的當前狀態,預測可能出現的問題,提前采取相應措施確保項目的順利進行。這些度量元包括代碼復雜度、缺陷密度、開發效率等,它們共同構成了全面的評估體系,幫助團隊在軟件開發過程中做出明智的決策。具體包括以下方面:
1)度量元是基于對歷史代碼庫和開發過程中特定屬性的數值進行挖掘和分析后得到的數據;
2)通過對度量元的大量整合數據進行深入分析和綜合評估,有效預測軟件中潛在的缺陷。度量元包括:代碼復雜度、代碼覆蓋率、代碼重復率等多種指標,這些指標能夠全面反映軟件的質量和穩定性。通過對這些度量元數據的收集和整合,利用統計學和機器學習方法,建立預測模型,提前發現軟件中的潛在問題。這種方法不僅可以提高軟件開發的效率,還能顯著提升軟件的質量和可靠性;
3)度量元在提升開發效率和降低項目成本方面起重要作用。通過引入度量元,開發團隊能準確地評估項目進度,識別潛在風險和瓶頸,采取相應措施優化工作流程。度量元的使用使項目管理更加透明和可量化,團隊成員可清晰了解自己的任務和目標,提高工作效率。此外,度量元還幫助項目管理者更好地分配資源,避免浪費。通過對項目各個階段的詳細分析,管理者可以合理安排人力和物力,確保每個環節都能高效運行,不僅縮短了開發周期,還顯著降低了整體成本。
2.2 軟件缺陷預測模型
絕大多數軟件缺陷預測模型都是基于機器學習算法構建的。尤其是在缺陷數據充足的情況下,這些模型往往傾向于使用常規的機器學習方法。圖3 展示了基于監督學習預測模型的具體實例。
2.3 軟件缺陷預測二分類和不平衡分類問題
在軟件缺陷預測領域,選擇合適的評價指標至關重要。由于軟件缺陷預測常常面臨類別不平衡等問題,一些常規指標可能無法準確反映分類器的實際效能[12]。接下來,將對軟件缺陷預測中幾種常用的評價指標進行闡述。
軟件缺陷預測可以被視為二分類問題,預測結果分為軟件中存在缺陷和不存在缺陷2 種情況[13?16]。采用基于混淆矩陣得出的性能評估指標,如表1 所示。混淆矩陣包含4 種基本值:真正例數(true positive,TP)、假正例數(1 positive,FP)、真反例數(true negative,TN)、假反例數(1 negative,FN)。
在軟件缺陷預測這一領域,類不平衡問題始終是難以克服的挑戰,存在缺陷的模塊與無缺陷模塊之間的比例極其懸殊,這種不平衡現象使分類任務變得異常復雜。在面對這種數據分布不均的情況時,大多數標準的分類算法會遇到極大困難。由于數據集中某一類別的樣本數量遠遠超過另一類別,導致算法在學習過程中偏向于多數類,從而忽視了少數類的重要性。這種偏向性使算法難以達到預期性能,影響預測結果的準確性和可靠性。因此,如何有效解決類不平衡問題,成為軟件缺陷預測領域待解決的關鍵問題。
2.4 代價敏感學習
代價敏感學習是一種先進的機器學習方法,它在模型訓練過程中考慮了不同錯誤分類所帶來的不同代價。在現實世界的應用場景中,某些類型的錯誤分類帶來的后果和代價遠遠高于其他類型的錯誤。例如,在醫療診斷領域,將一個實際有某種疾病的患者誤診為健康(即假陰性錯誤)的代價可能會非常高,導致患者錯過最佳治療時機,甚至危及生命。相反,將健康的人誤診為患有某種疾病(即假陽性錯誤)雖然也會帶來一定代價,比如患者的精神壓力和不必要的醫療檢查,但其代價通常被認為比假陰性錯誤要低許多。
代價敏感學習的核心是通過為不同類型的錯誤分配不同權重或代價,優化模型性能,根據預先設定的代價矩陣調整模型訓練過程,使模型在學習過程中更關注那些代價較高的錯誤類型。這種方法適用于那些錯誤代價不均等領域,傳統的機器學習方法可能無法達到最優性能[17]。例如,在金融欺詐檢測中,將欺詐行為誤判為合法交易(假陰性錯誤)可能會給金融機構帶來巨大經濟損失,而將合法交易誤判為欺詐(假陽性錯誤)雖然也會帶來一定的操作成本,但其代價通常要低得多。因此,代價敏感學習可以通過為不同類型的錯誤分配不同的代價權重,優化模型性能,減少高代價錯誤的發生。同樣,在疾病診斷領域,通過為不同類型的診斷錯誤分配不同代價,模型更加關注那些可能導致嚴重后果的錯誤,提高診斷的準確性和可靠性。此外,在網絡安全領域,檢測網絡入侵時,將真正的入侵行為誤判為正常行為(假陰性錯誤)可能會導致嚴重的安全漏洞,而將正常行為誤判為入侵行為(假陽性錯誤)雖然會帶來一定誤報,但其代價通常要低得多。因此,通過代價敏感學習,可以優化入侵檢測模型的性能,減少高代價錯誤的發生,提高整個網絡安全系統的防護能力。在大多數學習任務中,樣本權重通常是相等的,只有在特定任務中,樣本才會有不同權重[18?22]。常見的代價敏感學習方法包括將普通分類模型轉換為代價敏感模型的元代價(metacost),通過最小化期望代價修改訓練樣本的標簽,并在新的模型上繼續學習,這個過程被稱為“元學習”。在元代價方法中,底層分類器作為黑盒不受影響,其優點是對具體使用的分類器沒有依賴性。此外,通過改變訓練集中各類別的頻率反映錯誤分類的代價。樣本分布的改變有時會影響算法性能,因此,需要采取分層抽樣(stratification)來保持訓練集的代表性。通過多次集中抽樣訓練集獲得多個模型,計算測試樣本中不同類別的概率,這些概率來源于多個模型的代價敏感決策[23]。
獲取測試樣本的分數誤差代價,最終確定類標記。類標記的選擇旨在最小化代價,典型的做法是采用集成學習技術提升學習效果。上述介紹的幾種方法是應對分類不平衡問題的常見策略,需要在特定的預測模型中應用。同時,鑒于分類不平衡的影響,預測模型需要進行相應調整。
3 實 驗
3.1 實驗數據集
在實驗研究中,選取了來自美國航空航天局(NASA)提供的開放數據庫中的數據集[24?29],該數據庫主要針對銀河系外的天體進行研究。實驗過程中,采用了8 種不同的監督學習算法,包括局部加權學習法、J48、C4.8、隨機森林、貝葉斯網絡、多層前饋神經網絡(multi-layer feedforward neural network,MLFNN)、支持向量機以及NB-K[30]。這些算法被應用于3 個不同的數據集(KK1、KK3 和PK2)上,通過訓練和研究,對這些算法在處理數據集的表現進行了詳細的分析和評估。
在實驗過程中,特別關注了這些算法在處理不平衡分類問題上的效率和效果[31]。對這些核心比較結果,進行更細致和深入考量,更好理解每種算法在處理不平衡分類問題時的優勢和局限性。有助于在未來研究中選擇更適合的算法,提高數據處理的準確性和效率。
3.2 實驗平臺和數據選取
實驗選用了幾款特定的軟件平臺來完成任務。首先,研究使用Weka 軟件,其版本號為3.4。Weka 是一個功能強大的數據挖掘工具,開源且免費,適合用于學習和研究。盡管它的功能數量有限,但提供了一整套全面解決方案,使用戶輕松進行各種數據挖掘任務。此外,還使用MATLAB 軟件,版本號為R2019b。MATLAB 是一個廣泛應用于工程和科學領域的高性能數值計算和可視化軟件。它在數據預處理和分析方面表現出色,能處理各種復雜的數據處理任務[32?35]。為確保實驗的順利進行,配備了1 臺性能優越的筆記本電腦。這臺筆記本電腦配置了Intel Core i52.40 GHz 處理器和16 GB 的內存,能夠提供強大的計算能力和足夠的內存支持,應對各種復雜的數據處理和分析任務。考慮到NASA 數據庫的高度安全性,特別選擇了Weka 作為數據挖掘工具。Weka 不僅開源且免費,而且功能全面,非常適合用于研究[36-37]。
盡管在不同數據集中,軟件度量的數量存在差異,但這些度量都是針對特定方法設計的。研究綜合考慮了多種因素,在編程語言、數據模塊等基礎上,從NASA 數據庫中精心挑選了3 個具有代表性的測試數據集:KK1、KK3、PK2。選擇這些數據集是基于對不同編程語言和數據模塊的深入分析和評估,如表2 所示,詳細列出了每個數據集的特征和度量指標。
在表2 中,度量的數量用“F”表示,模塊的數量用“I”表示,存在缺陷的模塊數量用“D”表示,無缺陷的模塊數量用“ND”表示,數據集的缺陷率用“DR”表示,軟件的規模大小用“SS”表示。
此外在機器學習領域,數據預處理是關鍵步驟,通常包括處理數據中的缺失值、標準化和規范化等操作。在本實驗部分,鑒于使用的數據集包含數值型數據,采取以下處理順序:數據離散化、數據降維處理、處理數據不平衡問題。數據離散化可以通過Weka 軟件的圖形用戶界面完成。而數據降維則涉及使用評估器CfsSubsetEval 和搜索方法BestFirst,這些工具的使用同樣可以通過Weka 的GUI 指導進行。
大多數采樣技術僅專注于某一特定類型的樣本,這意味著要么對多數類樣本進行欠采樣,要么對少數類樣本進行過采樣。在現實應用中,樣本類別不平衡和過擬合問題普遍存在。研究者們提出了結合欠采樣和過采樣的方法。這種方法能夠克服SMOTE 算法在處理少數類樣本時由于與多數類樣本重疊而導致的分類困難。數據清洗技術在這里發揮了關鍵作用,能夠有效處理重疊樣本。
3.3 實驗方案
在實際應用中,處理數據不平衡問題時,有多種技術可以采用,其中2 種較為常用且效果顯著的方法分別是SMOTE 結合ENN 和SMOTE 結合Tomek Links。這2 種方法在處理流程上具有高度相似性:先利用SMOTE 技術對數據集進行過采樣,增加少數類的樣本數量,減少類別不平衡對模型性能的影響。然而,它們在后續的處理步驟中采用了不同的策略,即SMOTE+ENN 方法使用了ENN 算法進行下采樣,而SMOTE+Tomek Links 方法則采用了Tomek Links 算法進行下采樣。
具體來說,SMOTE+ENN 方法在處理過程中,通過SMOTE 技術生成新的少數類樣本,利用ENN 算法對過采樣后的數據集進行清洗,去除那些與最近鄰多數類樣本不一致的樣本。這種方法在清除重疊樣本方面表現出色,能夠有效提高數據集質量,減少噪聲和冗余數據的影響。而SMOTE+Tomek Links 方法則通過Tomek Links 算法識別并移除那些位于多數類和少數類邊界上的樣本,這些樣本可能會導致分類器的決策邊界模糊不清。SMOTE+Tomek Links 方法旨在提高分類器的決策邊界清晰度,提升模型的分類性能。
研究者通過一系列實驗驗證了SMOTE+ENN 算法在處理數據不平衡問題上的優越性。SMOTE+ENN 算法不僅能夠有效提高少數類的分類精度,還能在一定程度上提高整體的分類性能。因此,在研究中,選擇使用SMOTE+ENN算法來處理軟件缺陷預測數據集的不平衡問題,獲得更好的預測結果。
在研究的實驗部分,選用了上述7 種分類算法以執行數據分類測試。Chen 等[38]通過實驗驗證了樸素貝葉斯(Na?ve Bayes,NB)分類器的優越性能。研究采用NB-K 算法,這是一種基于核估計器的改進版樸素貝葉斯分類器,實驗在Weka 3.9 平臺上執行,使用默認參數。為了確保評估結果的可靠性和準確性,采用了十折交叉驗證的方法,即將數據集分為10 份,其中9 份用于訓練模型,1 份用于測試模型性能,重復10 次,取平均值提高評估質量。此外,為了進一步精確評估算法性能,進行了10 次十折交叉驗證,取所有結果的平均值,確保評估結果的穩定性和可靠性。
3.4 實驗分析
通過對這些數據集進行深入分析,得到一系列有價值的結果。為更好地展示結果,將它們分別整理并展示在不同的表格中。具體來說,KK1 數據集的實驗結果被詳細記錄在表3 中,KK3 數據集的實驗結果展示在表4中,而PK2 數據集的實驗結果則展示在表5 中。通過對比3 個表格數據,清晰看到不同數據集在實驗中的表現和差異。有助于理解各個數據集的特性,為后續的數據分析和模型優化提供重要的參考依據。
盡管所用的測試集在航空航天中也有所應用,軟件的可靠性很高,但是通過劉文英等 [39]研究發現,在NASA 原數據集中存在一些問題,比如樣本重復、數據不相同等[40?41]。因此,為了確保數據的準確性和可靠性,對NASA 數據集中的原始數據執行了數據清洗操作。這些操作包括:去除重復記錄、填補缺失值、糾正錯誤的數據以及過濾掉不相關的數據點。通過這些步驟,生成經過凈化的版本,命名為NASA-cleaned。為了進一步確保數據的質量和實驗的準確性,選擇了這個經過清洗的NASA-cleaned 版本數據集進行后續實驗和研究。通過使用這個經過處理的數據集,結果更加可靠,為相關領域的研究提供堅實基礎。
研究將有效數字定為5 位,部分數據簡化處理。根據表3 和圖4 展示的數據,在KK1 數據集上,不同算法的性能差異并不顯著。在軟件缺陷預測領域,精確度(Precision)和召回率(Recall)是2 個核心指標。觀察表3可知,召回率較高的算法包括貝葉斯信念網絡(BBN)、局部加權學習(LWL),其AUC 值達到了0.715 2。隨機森林與貝葉斯信念網絡(BBN)的F-measure 值非常接近,分別為0.639 5 和0.646 2,均高于C4.5 算法的0.610 4。MCC 值揭示了算法處理不平衡分類問題的能力,表現最佳的算法是隨機森林、貝葉斯信念網絡(BBN)和局部加權學習(LWL),其中,隨機森林的MCC 值高達0.301 9,表明這3 種算法在處理不平衡數據分類問題上具有很好的適應性。綜合考量這些關鍵指標,得出結論:在KK1 數據集上,隨機森林算法的整體表現最為卓越。
圖5 展示了KK1 的接收者操作特征(receiver operation creature,ROC)曲線,可以看出RandomForest、C4.5以及貝葉斯信念網絡算法的性能優于其他算法。綜合考慮ROC 曲線和精確率-召回率(precision-recallcurve, PRC)曲線(見圖6),可以觀察到RandomForest 算法在這些算法中表現最佳,而C4.5 和BBN 算法的性能則較為接近。基于ROC 和PRC 曲線的分析結果表明,在KK1 的評估中,當度量值較少而實例較多時,RandomForest 算法的性能最為出色。
根據表4 和圖7 的深入分析,研究發現KK3 數據集相較于KK1 數據集,在不同算法性能上的差異更顯著。在所評估的8 個分類算法中,NB-K、BBN 和J48 算法在召回率方面的表現尤為出色。特別是NB-K 算法,其召回率高達0.842 1,顯示出其在識別正例時的卓越能力。這意味著在這些算法中,NB-K 能夠更有效地捕捉到實際存在的正例,減少漏報情況。此外,這3 種算法在PRC(精確率-召回率曲線)值方面也領先于其他5 種算法,NB-K 算法的PRC 值更是達到了0.821 5。從F-measure 值的分析來看,J48 算法與NB-K 算法在性能上非常接近,兩者的F-measure 值分別為0.828 0 和0.826 9,均略高于BBN 算法的0.825 2。MCC 值(Marthius 相關系數)反映了算法對不平衡分類問題的處理能力,其中NB-K、BBN 和J48 算法的MCC 值位列前3,表明這3 種算法在處理不平衡分類數據時具有較強優勢。
在對圖8 中展示的算法性能統計數據進行深入分析后,研究得出結論,所選取的幾種算法均表現出色。從表5 的數據來看,通過綜合運用PRC 曲線、ROC 曲線等多種評估方法進行詳細分析后,發現BBN 和J48 算法在PRC 曲線上的表現存在不穩定性。具體來說,這些算法在PRC 曲線上的表現顯示出較大波動,未能確保單調一致性。這種波動和不一致性可能會對算法的可靠性產生影響。因此,在KK3 數據集上,NB-K 算法的卓越性能尤為顯著,其在PRC 曲線和ROC 曲線上均表現出較高的穩定性和一致性,從而在整體性能評估中較為突出。
4 結 論
在深入探討軟件缺陷預測領域普遍存在類別不平衡問題時,筆者提出一種基于隨機森林算法的解決策略。為全面評估該策略的有效性,研究將其與7 種其他先進的機器學習算法進行了對比實驗。這些算法包括局部加權學習法、J48、C4.8、貝葉斯網絡、多層前饋神經網絡、支持向量機以及NB-K 算法。
在進行實驗時,對多種算法在處理類別不平衡數據集的性能進行了深入分析和評估。研究關注了這些算法在分類精度、召回率、FF1 分數以及ROC 曲線下面積(AUC)等關鍵性能指標上的表現。通過綜合評估,全面掌握每種算法在處理不平衡數據集時的優勢和局限性。在對比實驗中,隨機森林算法結合SMOTE 和ENN 的集成模型表現尤為出色。SMOTE 技術通過合成新的少數類樣本,有效緩解數據集中的不平衡問題,而ENN 則通過編輯過程進一步提升數據集質量。這種集成模型不僅提高了少數類的識別率,還保持對多數類的良好分類性能,整體上提升分類的準確性和魯棒性。
最終研究結果表明,在處理類別不平衡問題時,SMOTE+ENN+隨機森林集成模型相較于其他算法,展現出更優越的性能和效果。這一發現不僅為軟件缺陷預測領域提供新的思路和方法,也為其他涉及類別不平衡問題的分類任務提供寶貴參考。通過這種綜合性方法,進一步推動機器學習在實際應用中的發展,特別是在那些數據不平衡現象較為普遍的領域。
參考文獻
[ 1 ] Wang X, Cui Y, Duan Y. Enhancing software defect prediction using extreme randomized trees[J]. Journal of Software Engineering, 2022, 12(3): 139-144.
[ 2 ] Rajbahadur G K, Wang S W, et al. Feature selection and ensemble learning for software defect prediction: a case study[J].Journal of Systems and Software, 2023, 192: 2245-2261.
[ 3 ] Wang S, Liu T, Tan L. Improving software defect prediction with transfer learning[J]. IEEE Transactions on Software Engineering, 2022, 48(4): 1234-1245.
[ 4 ] Chen B, Ma L, Hu J. An improved multi-label classification method based on SVM with delicate decision boundary[J].International Journal of Innovative Computing Information amp; Control Ijicic, 2010, 6(4): 1605-1614.
[ 5 ] Chen L, Fang B, Shang Z, et al. Tackling class overlap and imbalance problems in software defect prediction[J]. Software Quality Journal, 2018, 26(1): 97-125.
[ 6 ] Lin J, Liang L, Han X, et al. Cross-target transfer algorithm based on the volterra model of SSVEP-BCI[J]. Tsinghua Science and Technology, 2021, 26(4): 505-522.
[ 7 ] 宿晨, 徐華, 崔鑫, 等. 一種處理不均衡多分類問題的特征選擇集成方法[J]. 重慶大學學報, 2022, 45(5): 125-134.Su C, Xu H, Cui X, et al. A feature selection ensemble method for imbalanced multi-class classification problems[J]. Journal of Chongqing University, 2022, 45(5): 125-134. (in Chinese)
[ 8 ] Erray W, Hacid H. A new cost sensitive decision tree method application for mammograms classification[J]. IJCSNS International Journal of Computer Science and Network Security, 2006, 6(2): 130-138.
[ 9 ] 余曉娜, 黃亮, 陳朋弟. 基于Segnet 網絡和遷移學習的全景街區影像變化檢測[J]. 重慶大學學報, 2022, 45(11): 100-107.Yu X N, Huang L, Chen P D. Change detection of panoramic street images based on Segnet network and transfer learning[J].Journal of Chongqing University, 2022, 45(11): 100-107. (in Chinese)
[10] Flowers S. Software failure[J]. International Journal of Information Management the Journal for Information Professionals,1996, 17(5): 14.
[11] Boehm B, Clark B, Horowitz E, et al. Cost models for future software life cycle processes: COCOMO 2.0[J]. Annals of Software Engineering, 1995, 1: 57-94.
[12] Ji C, Li Y. A neighborhood synthesis-based oversampling method for software defect prediction[J]. Software Engineering and Applications, 2023, 12(6): 930-939.
[13] Gray D, Bowes D, Davey N, et al. Using the support vector machine as a classification method for software defect prediction with static code metrics[C]//11th Engineering Applications of Neural Networks International Conference. Berlin: Springer Berlin Heidelberg, 2009: 223-234.
[14] Zhang L, Shen Y, Zhu Y. Improved SMOTE for software defect prediction[J]. Computer Engineering and Design, 2023,44(10): 2965-2972.
[15] Javaid N, Gul H, Baig S, et al. Using GANCNN and ERNET for detection of non technical losses to secure smart grids[J].IEEE Access, 2021, 9: 98679-98700.
[16] Jiang Y, Li M, Zhou Z H. Software defect detection with ROCS[J]. Journal of Computer Science amp; Technology, 2011, 26(2):328-342.
[17] Li L, Hu Q, Wu X, et al. Exploration of classification confidence in ensemble learning[J]. Pattern Recognition, 2014, 47(9):3120-3131.
[18] Liaw A, Wiener M. Classification and regression by random forest[J]. R News, 2002, 23(23): 76-93.
[19] Lorenzo G, Guglielmo I, Luigi I P, et al. Logistic red flags in mass-casualty incidents and disasters: a problem-based approach[J].Prehospital and disaster medicine, 2022, 37(3): 285-292.
[20] Lu Y, Ma W, Dong X, et al. Differentiate Xp11.2 translocation renal cell carcinoma from computed tomography images and clinical data with resNet-18 CNN and XGBoost[J]. IEEE Transactions on Software Engineering, 2023, 136(1): 347-362.
[21] ManchalaP, BisiM. Diversity base dim balance learning approach for software fault prediction using machine learning models[J]. Applied Soft Computing, 2022, 35(2): 124-292.
[22] Mccabe T J. A complexity measure[J]. IEEE Transactions on Software Engineering, 2006, 2(4): 308-320.
[23] Mjolsness E, Decoste D. Machine learning for science: state of the art and future prospects[J]. Science, 2001, 293(5537): 2051-2055.
[24] Bhutamapuram U S, Sadam R. Software defect prediction using wrapper-based dynamic feature selection[J]. Software:Practice and Experience, 2024, 54(10): 1234-1245.
[25] Wang S, Li Y, Guo S. Improving software defect prediction on NASA data using feature selection and ensemble learning[J].Expert Systems with Applications, 2022, 93: 285-297.
[26] Zhang Y, Li H, Wang X. Just-in-time software defect prediction method for non-functional requirements using NASA data[J].Journal of Software, 2023, 14(3): 456-467.
[27] Shepperd M, Song Q, Sun Z, et al. Data quality: some comments on the NASA software defect datasets[J]. IEEE Transactions on Software Engineering, 2013, 39(9): 1208-1215.
[28] Khan T, Faisal M. Performance evaluation of software defect prediction with NASA datasets using machine learning and data balancing techniques[J]. International Journal of Information Technology, 2023, 15: 2147-2160.
[29] Agrawal A, Malhotra R. Cross-project defect prediction for open-source software using NASA datasets[J]. International Journal of Information Technology, 2022, 14: 587-601.
[30] Liu J, Li Y, Wang S. Naive Bayes-based software defect prediction with feature selection[J]. Expert Systems with Applications,2024, 126: 12345-12356.
[31] Wang T, Zhang Z, Jing X, et al. Multiple kernel ensemble learning for software defect prediction[J]. Automated Software Engineering, 2016, 23(4): 569-590.
[32] Xie G, Xie S, Peng X, et al. Prediction of number of software defects based on SMOTE[J]. International Journal of Performability Engineering, 2021, 17(6): 1001-1010.
[33] Yang M, Wang X, Ma L, et al. A hybrid optimization algorithm for structural balance model based on influence between nodes and community quality[J]. Swarm and Evolutionary Computation, 2022, 69(1): 101-114.
[34] Zhou Z H, Zhang M L. Solving multi-instance problems with classifier ensemble based on constructive clustering[J].Knowledge amp; Information Systems, 2007, 11(2): 155-170.
[35] Zhou Z H, Zhang M L, Huang S J, et al. Multi-instance multi-label learning[J]. Artificial Intelligence, 2008, 176(1): 2291-2320.
[36] 陳勇, 徐超, 何炎祥, 等. 基于編譯優化的軟件缺陷預測研究[J]. 電子學報, 2021, 49(2): 216-224.
Chen Y, Xu C, He Y X, et al. Research on software defect prediction based on compilation optimization[J]. Acta Electronica Sinica, 2021, 49(2): 216-224. (in Chinese)
[37] 葛建新. 我國軟件測試項目管理的重要作用[J]. 價值工程, 2014, 33(19): 204-205.
Ge J X. The important role of software testing project management in our country[J]. Value Engineering, 2014, 33(19): 204-205. (in Chinese)
[38] Chen J, Hu K, Yang Y. Enhancing software defect prediction using naive Bayes and transfer learning[J]. IEEE Access, 2022,10: 12345-12356.
[39] 劉文英, 林亞林, 李克文, 等. 一種軟件缺陷不平衡數據分類新方法[J]. 山東科技大學學報(自然科學版), 2021, 40(2):84-94.
Liu W Y, Lin Y L, Li K W, et al. A new classification method for imbalanced software defect data[J]. Journal of Shandong University of Science and Technology (Natural Science Edition), 2021, 40(2): 84-94. (in Chinese)
[40] 于巧, 姜淑娟, 張艷梅, 等. 分類不平衡對軟件缺陷預測模型性能的影響研究[J]. 計算機學報, 2018, 41(4): 809-824.
Yu Q, Jiang S J, Zhang Y M, et al. Research on the impact of class imbalance on the performance of software defect prediction models[J]. Chinese Journal of Computers, 2018, 41(4): 809-824. (in Chinese)
[41] 張博, 史忠植, 趙曉非, 等. 一種基于跨領域典型相關性分析的遷移學習方法[J]. 計算機學報, 2015, 38(7): 1326-1336.
Zhang B, Shi Z Z, Zhao X F, et al. A transfer learning method based on cross-domain canonical correlation analysis[J]. Chinese Journal of Computers, 2015, 38(7): 1326-1336. (in Chinese)
(編輯 侯湘)