999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于字典學習的軟件缺陷檢測算法

2016-11-01 17:25:34張蕾朱義鑫徐春
計算機應用 2016年9期
關鍵詞:分類實驗檢測

張蕾 朱義鑫 徐春

摘要:

針對目前存在的字典學習方法不能有效構造具有鑒別能力字典的問題,提出具有鑒別表示能力的字典學習算法,并將其應用于軟件缺陷檢測。首先,重新構建稀疏表示模型,通過在目標函數中設計字典鑒別項學習具有鑒別表示能力的字典,使某一類的字典對于本類的樣本具有較強的表示能力,對于異類樣本的表示效果則很差;其次,添加Fisher準則系數鑒別項,使得不同類的表示系數具有較好的鑒別能力;最后對設計的字典學習模型進行優化求解,以獲得具有強鑒別和稀疏表示能力的結構化字典。選擇經過預處理的NASA軟件缺陷數據集作為實驗數據,與主成分分析(PCA)、邏輯回歸、決策樹、支持向量機(SVM)和代表性的字典學習方法進行對比,結果表明所提出的具有鑒別表示能力的字典學習算法的準確率與Fmeasure值均有提高,能在改善分類器性能的基礎上提高檢測精度。

關鍵詞:

字典學習;稀疏表示;Fisher準則;軟件缺陷檢測;機器學習

中圖分類號:

TP399

文獻標志碼:A

Abstract:

Since the exsiting dictionary learning methods can not effectively construct discriminant structured dictionary, a discriminant dictionary learning method with discriminant and representative ability was proposed and applied in software defect detection. Firstly, sparse representation model was redesigned to train structured dictionary by adding the discriminant constraint term into the object function, which made the classdictionary have strong representation ability for the corresponding classsamples but poor representation ability for the irrelevant classsamples【and vice versa什么鬼,作者檢查確認. Secondly, the Fisher criterion discriminant term was added to make the representative coefficients have discriminant ability in different classes. Finally, the optimization of the designed dictionary learning model was solved to obtain strongly structured and sparsely representative dictionary. The NASA defect dataset was selected as the experiment data, and compared with Principal Component Analysis (PCA), Logistics Regression (LR), decision tree, Support Vector Machine (SVM) and the typical dictionary learning method, the accuracy and Fmeasure value of the proposed method were both increased. Experimental results indicate that the proposed method can increase detection accuracy with improving the classifier performance.

英文關鍵詞Key words:

dictionary learning; sparse representation; Fisher criterion; software defect detection; machine learning

0引言

隨著計算機信息科學的飛速發展,軟件技術已經滲透到科學、工業、經濟和文化的各個領域,對人類社會的進步和發展起著舉足輕重的作用,同時影響和改變著人們工作、學習和生活的方式[1]。一方面,軟件技術的發展和應用水平已經成為衡量一個國家科學技術實力的標志,但是另一方面,隨著軟件規模、復雜度、系統集成度的不斷上升,軟件中存在的缺陷問題大大影響了產品開發的質量和效率[2-3],甚至歷史上一些由于軟件缺陷而造成的事故也頻頻發生,比如1962年

美國國家宇航局(National Aeronautics and Space Administration, NASA)馬里納1號空間探測器由于Fortran語言少寫了一個連字符造成火箭偏離,其損失約8000萬美元;20世紀80年代由于錯誤的軟件導致對癌癥患者的致命過量輻射事故;20世紀90年代丹麥機場行李處理系統的缺陷導致行李箱損壞,為此花費大量金錢及人力恢復正常運營等。

軟件缺陷[4-5]通常指計算機軟件或者代碼中能引起失效的錯誤的編碼。在軟件工程領域,合理地預測缺陷能夠有助于及時找出未被發現但是真實存在的缺陷以及缺陷分布[6],因此不僅可以節約大量的成本,提高產品質量,還能夠客觀地評價測試結果,讓開發者合理地權衡潛在的預測風險和測試成本之間的關系,便于科學地進行軟件測試工作。雖然不同度量元的數據采集方法不同,但在預測算法中對不同的度量元并不區分處理,預測算法具有通用性。

軟件缺陷檢測技術[7]分為動態檢測和靜態檢測技術。前者主要靠研究人員通過統計分析、經驗研究等方式來考察軟件缺陷隨軟件周期的分布,一些軟件的可靠性模型便是基于這類技術;后者通過分析利用軟件的規模、復雜度、軟件缺陷的度量元等特征數據來預測軟件中潛在的缺陷。本文的研究內容針對后者,即靜態的軟件缺陷檢測技術。比如來源于NASA的著名軟件度量程序(Metric Data Program, MDP)[8],其主要針對于軟件度量元數據的收集、組織、存儲等情況,這個公開項目已經成為軟件缺陷檢測領域經典的數據集。

1相關算法

目前,機器學習算法得到了飛速的發展,其中一些具有代表性的算法已被用于軟件缺陷檢測領域,比如支持向量機(Support Vector Machine,SVM)[9-10] 、分類回歸樹(Classification and Regression Tree, CART)[11]、人工神經網絡(Artificial Neural Network, ANN)[12]、主成分分析(Principal Component Analysis, PCA)[13-14]、聚類分析(Cluster Analysis, CA)[15-16]、Logistics回歸(Logistics Regression, LR)方法[17-18]等。

字典學習方法[19-20]實質上基于稀疏表示方法(Sparse Representation),其通過訓練樣本構造結構化的字典,使用學習得到的結構化字典對樣本進行線性編碼,然后利用編碼之后的重構誤差對樣本進行分類,其已被廣泛用在信號壓縮、圖像分類等領域。從目前來看,盡管經典的機器學習方法已經被廣泛用于軟件缺陷檢測領域,但是基于字典學習的方法仍未被利用。從本質上來看,軟件度量數據集中的數據依然可以看成是某種形式的信號,因此基于字典學習的算法完全可以應用在軟件缺陷檢測領域。

常規的字典學習算法不能有效利用數據集之中不同類樣本的鑒別性質,具體表現在不能有效構造具有鑒別性質的結構化字典。本文提出了一種基于鑒別字典學習(Discriminant Dictionary Learning, DDL)的軟件缺陷檢測方法,其通過在傳統的字典學習模型目標函數之中加入鑒別約束項來構造具有鑒別性質的字典原子以提高模型的分類性能。

2本文算法

傳統的字典學習模型沒有較好的鑒別能力,其僅簡單地考慮整體字典對于某個數據樣本的表示,而沒有考慮不同類字典之間的表示關系。本文對傳統的字典學習模型進行兩點改進:1)在字典學習模型中,整體字典對某一個樣本應該具有較強的表示能力,同時,如果單獨考慮這個樣本所在類的字典應該也對其具有較強的表示能力,而該類字典對其他類樣本則表示能力很差,因此通過引入鑒別約束項可以滿足此條件,以達到很好的鑒別性能;

2)字典學習的目的是通過求解表示系數對樣本進行表示,因此可以考慮使用字典對不同類樣本進行稀疏表示時,它們的表示系數之間應該具有較強的區分能力,從而進一步達到鑒別的目的。本文所提出的基于字典學習的軟件缺陷檢測流程如圖1所示。

3基于字典學習的軟件缺陷檢測算法

3.1稀疏表示分類器

稀疏表示最早在信號處理領域中得到應用。由于小波變換和傅里葉變換技術的發展,科研人員需要處理的數據維數越來越高,稀疏表示分類(Sparse Representation Classification, SRC)技術開始引起了研究人員的極大興趣,并逐步發展形成了一個獨立性的理論方法,并且推廣到了機器學習、圖像處理及模式識別等領域[21]。假設存在一個樣本集X={x1,x2,…,xN}∈Rm×n,其中xi表示X中的某一個樣本,根據稀疏表示理論xi可以通過樣本集X中的樣本以線性組合的形式進行表示:

4實驗分析

本文通過引入幾種重要的分類器性能指標進行實驗對比,并選擇來源于美國國家宇航局(NASA)的軟件度量程序(MDP)作為實驗數據。在實驗過程中,將選擇支持向量機(SVM)、決策樹(C4.5)、主成分分析(PCA)、Logistics回歸(LR)方法、具有代表性的字典學習方法DLSDP(Dictionary Learning based Software Defect Prediction)[25]這幾種算法作為對比算法。本文選擇Matlab R2011a作為實驗工具,實驗所用PC配置為Intel 酷睿i7 6700 CPU,32GB內存。

4.1數據集介紹

本文選擇來自NASA的MDP項目進行實驗。MDP項目是一個向全球公開的數據度量項目,任何用戶均能夠從NASA的官網下載其中的數據。MDP項目包含多個軟件缺陷數據集子集,本文選擇其中的JM1、CM1、KC1、MW1及PC1作為實驗對比數據集。以其中的JM1為例,JM1數據集始于某個地面預測系統的軟件項目,使用C++進行開發,共有10879個模塊、21個軟件度量屬性以及1維的是否為缺陷的標簽,其中21個屬性包含總代碼行數,McCabe的循環復雜度、基本復雜度、設計復雜度,Halstead程序的級別、容量、工作量、時間、長度等屬性。

4.2分類器性能評價指標

表1中定義了幾種分類的行為,其中正確預測為正類(True Positive, TP)表示在分類過程中實際為有缺陷的數據正確分類為有缺陷;錯誤預測為負類(False Negative, FN)表示實際為有缺陷的數據預測為無缺陷;錯誤預測為正類(False Positive, FP)表示實際為無缺陷的數據被預測為有缺陷,正確預測為負類(True Negative, TN)定義為無缺陷數據預測正確預測為無缺陷數據。

由于最終的檢測結果是判斷數據是否有缺陷,因此是一個兩類問題,僅僅通過分類準確率來評價一個算法的有效性是不夠全面的,因此在本文的實驗中引入這里說的名稱與下面定義介紹不一致,以下面的介紹為準,請確認召回率、錯誤接受率、查準率、準確率以及Fmeasure值較為全面地衡量分類算法的有效性。以下簡單介紹這幾種值的定義:

1)召回率:re=TP/(TP+FN)。召回率是一種重要的分類器性能衡量指標,因為在實際應用中需要重點考慮的是有缺陷的數據,其反映了被正確判定的缺陷樣本占總的缺陷樣本的比重,即衡量有缺陷樣本檢測的全面程度。

2)錯誤接受率:pf=FP/(FP+TN),其反映了分類結果中無缺陷數據被預測為有缺陷數據的比例。

3)查準率:pre=TP/(TP+FP),用來衡量檢測到有缺陷樣本的準確率。

4)準確率:acc=(TP+TN)/(TP+FN+FP+TN),用來衡量著所有正確分類的樣本占總樣本的比例。

從以上定義看出,一個好的分類器預測模型,希望能滿足較高的召回率、缺陷檢測準確率以及準確率,較低的錯誤接受率,尤其是查準率和召回率是兩類問題中比較重要的指標。然而,實際情況中,查準率和召回率之間往往難以同時都達到較高的值,需要在二者之間尋求權衡,因此需要折中考慮二者。本文引入Fmeasure值來考慮衡量準確率和召回率的調和平均數,其被定義為:

Fmeasure=2*β*re*pre/(re+β2pre)

(18)

在實驗中取β的值為1,即通常所說的F1measure值。其中re是召回率,pre是缺陷檢測準確率,另外定義pf表示為錯誤接受率,acc表示準確率。從以上定義顯然可以看出,所有的評估指標的取值范圍均在0~1。

4.3實驗結果及分析

在實驗過程中,對于SVM算法采用徑向基核,同時選擇懲罰因子C=1來分別進行實驗。對于本文提出的DDL模型,取迭代步長σ的值為0.1,λ1的值取0.01,λ2的值為0005。為了公平地進行實驗,在本文的實驗中每種算法最終選擇隨機進行20組交叉實驗驗證,以合理地進行算法對比,最終得到的re、pf、pre實驗結果如表2所示,acc以及F1measure如表3所示。

4.4實驗分析

從表2、3可以看出,與其他算法相比,本文提出的DDL算法最終能夠將F1measure提高0.03~0.26,而準確率能夠提高0.03~0.20,而召回率、查準率也有一定程度的改善。其主要原因主要是本文提出的字典學習模型具有較強的鑒別分類能力,對比其他幾種機器學習方法,字典學習模型本身又有較好的抗干擾能力。而PCA由于其是一種無監督的降維方法,沒有有效利用豐富的標簽信息,相對于其他集中算法效果最差;LR是一種模型較為簡單的回歸算法,模型本身不具有鑒別能力,同時從其自身的應該來看,算法泛化能力較差,因此實驗效果相對較差;C4.5其容易出現過度擬合的問題,而且其對連續性的字段難以作出準確的預測;對于SVM,其雖然擁有較強的泛化能力,但是需要選擇合適的核函數,而SVM本身也具有多種形式的模型,因此如何選擇合適的參數也是一個問題,同時SVM也沒有很強的鑒別分類能力。

值得一提的是本文選擇了DLSDP算法進行對比,可以發現,DLSDP也是一種字典學習方法,由于其在算法中主要使用代價敏感方法來解決類不平衡問題,因此所得到的Fmeasure值和本文的算法相比很接近;另一方面,由于其沒有考慮不同類字典的鑒別性質,因此在檢測精度上略差于本文算法。

5結語

為解決傳統的字典學習方法不能有效構造具有鑒別能力字典的問題,提出了一種新的基于鑒別字典學習的分類算法,并用于軟件缺陷檢測,即基于鑒別字典學習的軟件缺陷檢測算法。該算法首先通過添加鑒別表示項以突出不同類字典對不同類樣本的表示能力,其次添加Fisher準則系數鑒別項,使得不同類的表示系數具有較好的鑒別能力;然后通過迭代算法求解相應模型的目標函數,最后選擇在MDP數據集上進行實驗,獲得的實驗結果表明能夠在改善檢測性能的基礎上提高檢測精度。現實當中二分類經常面臨正負樣本不平衡的問題,在本文提出的算法中,可以通過引入代價敏感約束進一步提高算法的分類性能,考慮不同類樣本數目對分類造成的代價影響,本文的后續工作可以圍繞這項內容展開工作。

參考文獻:

[1]

BAGGEN R, CORREIA J P, SCHILL K, et al. Standardized code quality benchmarking for improving software maintainability [J]. Software Quality Journal, 2012, 20(2): 287-307.

[2]

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.

[3]

MA Y, LUO G, ZENG X, et al. Transfer learning for crosscompany software defect prediction [J]. Information and Software Technology, 2012, 54(3): 248-256.

[4]

WANG S, YAO X. Using class imbalance learning for software defect prediction [J]. IEEE Transactions on Reliability, 2013, 62(2): 434-443.

[5]

SONG Q, JIA Z, SHEPPERD M, et al. A general software defectproneness prediction framework [J]. IEEE Transactions on Software Engineering, 2011, 37(3): 356-370.

猜你喜歡
分類實驗檢測
記一次有趣的實驗
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
分類算一算
做個怪怪長實驗
分類討論求坐標
數據分析中的分類討論
教你一招:數的分類
NO與NO2相互轉化實驗的改進
主站蜘蛛池模板: 999在线免费视频| 欧美三級片黃色三級片黃色1| 欧美成人精品一级在线观看| 99久视频| 26uuu国产精品视频| 人妻少妇乱子伦精品无码专区毛片| 国产成人精品高清在线| 日本道综合一本久久久88| 亚洲综合亚洲国产尤物| 成人亚洲天堂| 国产va视频| 欧美69视频在线| 国产乱子伦视频在线播放| 激情无码字幕综合| 香蕉综合在线视频91| 综合五月天网| 成人噜噜噜视频在线观看| 欧美精品成人| 国产福利影院在线观看| 五月婷婷伊人网| 色妺妺在线视频喷水| 国产aaaaa一级毛片| 精品三级在线| 亚洲最大福利视频网| 精品国产成人高清在线| 99在线视频免费| 欧美国产三级| 久久五月天国产自| 精品亚洲麻豆1区2区3区| 在线日本国产成人免费的| 久久国产免费观看| 国产激情无码一区二区APP| 国产青榴视频| 国产精品冒白浆免费视频| 久久国产精品国产自线拍| 国产成人亚洲精品色欲AV| 久久6免费视频| 99久久精品国产综合婷婷| 91久久偷偷做嫩草影院免费看| 精品视频一区二区观看| 青青操视频在线| 欧美日韩免费在线视频| 97se亚洲综合不卡| 亚洲一区二区精品无码久久久| 97精品国产高清久久久久蜜芽| 色婷婷视频在线| 国产91色在线| 欧美日韩资源| 午夜欧美理论2019理论| 91福利免费视频| 国产在线高清一级毛片| 自偷自拍三级全三级视频| 巨熟乳波霸若妻中文观看免费| 97青青青国产在线播放| 香蕉综合在线视频91| 国产视频大全| 国产精品99在线观看| 波多野结衣一区二区三视频 | 久久伊人操| 亚洲日本中文综合在线| 国产毛片高清一级国语 | 国产黄在线观看| 亚洲热线99精品视频| 国产精品欧美激情| 人妻丰满熟妇αv无码| 欧美日韩国产一级| 日韩最新中文字幕| 免费人成在线观看视频色| 在线观看免费AV网| 免费中文字幕一级毛片| 91久久偷偷做嫩草影院免费看| 91精品在线视频观看| av免费在线观看美女叉开腿| 精品国产免费观看一区| 91视频99| 亚洲人成网站在线播放2019| 日韩av高清无码一区二区三区| 久久香蕉国产线看观看式| 精品国产欧美精品v| 亚洲国产精品无码AV| 国产你懂得| 国产精品护士|