背景
- 出處:2016 IEEE/ACM 38th IEEE International Conference on Software Engineering
- 作者:Feng Zhang, Quan Zheng, Ying Zou, and Ahmed E. Hassan
概述
論文主要觀點
通過基于相似度的聚類解決軟件缺陷的問題,同時類比社交網(wǎng)絡(luò)進(jìn)行合理化解釋,引入cross-project用于擴大樣本。
成果
- 基于關(guān)系的非監(jiān)督分類方法(聚類)在多項目樣本中表現(xiàn)良好
- 將軟件群看做社交網(wǎng)絡(luò),它將被聯(lián)通度分成兩個社區(qū)
方法模型
相關(guān)工作圖
主要步驟
-
利用z-score對矩陣進(jìn)行歸一化(標(biāo)準(zhǔn)化處理),處理后的數(shù)據(jù)符合標(biāo)準(zhǔn)正態(tài)分布;
-
通過以上矩陣,產(chǎn)生權(quán)重鄰接矩陣W,此矩陣中保存的是實體之間的相似度;
-
求出W的拉普拉斯矩陣,此矩陣為對稱陣;
- 在L上進(jìn)行特征分解,在所有的特征向量中選擇第二小的特征向量V1;
- 進(jìn)行分類,V1中的V1i代表第i個,選擇0做為門檻值,V1i大于0則是有缺陷,小于0則是無缺陷;
實驗
對比常用的非監(jiān)督和監(jiān)督算法。
- cross-project,對于監(jiān)督算法,用本項目中的其他項目作為訓(xùn)練數(shù)據(jù);對于非監(jiān)督算法,由于不需要訓(xùn)練數(shù)據(jù),直接在目標(biāo)項目上做集群
- within-project,two-fold cross validation,對于一個項目,將其分為兩半,一半用來訓(xùn)練,一半用來測試,循環(huán)500次。
驗證
將軟件項目中的實體轉(zhuǎn)換為社交網(wǎng)絡(luò),生成圖,計算聯(lián)通度尋找社區(qū),驗證了以上算法。
創(chuàng)新點
- Spectral Classifier,通過計算相似度分類
- 將其比作社區(qū),通過圖的聯(lián)通度來驗證
總結(jié)
優(yōu)點
- 按照他的實驗數(shù)據(jù)來看,效果確實不錯
- 社交網(wǎng)絡(luò)的類比十分形象,極好的闡釋了聚類的合理性
不足
- 創(chuàng)新點來自于別人,只是把它應(yīng)用到了軟件缺陷檢測上
- cross-project并不具備概念性,只是為了擴大樣本
我的想法
聚類是否可以和監(jiān)督算法相配合?