背景
- 出处:2016 IEEE/ACM 38th IEEE International Conference on Software Engineering
- 作者:Feng Zhang, Quan Zheng, Ying Zou, and Ahmed E. Hassan
概述
论文主要观点
通过基于相似度的聚类解决软件缺陷的问题,同时类比社交网络进行合理化解释,引入cross-project用于扩大样本。
成果
- 基于关系的非监督分类方法(聚类)在多项目样本中表现良好
- 将软件群看做社交网络,它将被联通度分成两个社区
方法模型
相关工作图
主要步骤
-
利用z-score对矩阵进行归一化(标准化处理),处理后的数据符合标准正态分布;
-
通过以上矩阵,产生权重邻接矩阵W,此矩阵中保存的是实体之间的相似度;
-
求出W的拉普拉斯矩阵,此矩阵为对称阵;
- 在L上进行特征分解,在所有的特征向量中选择第二小的特征向量V1;
- 进行分类,V1中的V1i代表第i个,选择0做为门槛值,V1i大于0则是有缺陷,小于0则是无缺陷;
实验
对比常用的非监督和监督算法。
- cross-project,对于监督算法,用本项目中的其他项目作为训练数据;对于非监督算法,由于不需要训练数据,直接在目标项目上做集群
- within-project,two-fold cross validation,对于一个项目,将其分为两半,一半用来训练,一半用来测试,循环500次。
验证
将软件项目中的实体转换为社交网络,生成图,计算联通度寻找社区,验证了以上算法。
创新点
- Spectral Classifier,通过计算相似度分类
- 将其比作社区,通过图的联通度来验证
总结
优点
- 按照他的实验数据来看,效果确实不错
- 社交网络的类比十分形象,极好的阐释了聚类的合理性
不足
- 创新点来自于别人,只是把它应用到了软件缺陷检测上
- cross-project并不具备概念性,只是为了扩大样本
我的想法
聚类是否可以和监督算法相配合?