Cross-project defect prediction using a connectivity-based unsupervised classifier

背景

  • 出处:2016 IEEE/ACM 38th IEEE International Conference on Software Engineering
  • 作者:Feng Zhang, Quan Zheng, Ying Zou, and Ahmed E. Hassan

概述

论文主要观点

通过基于相似度的聚类解决软件缺陷的问题,同时类比社交网络进行合理化解释,引入cross-project用于扩大样本。

成果

  • 基于关系的非监督分类方法(聚类)在多项目样本中表现良好
  • 将软件群看做社交网络,它将被联通度分成两个社区

方法模型

相关工作图

Cross-project defect prediction using a connectivity-based unsupervised classifier_第1张图片

主要步骤

  1. 利用z-score对矩阵进行归一化(标准化处理),处理后的数据符合标准正态分布;


  2. 通过以上矩阵,产生权重邻接矩阵W,此矩阵中保存的是实体之间的相似度;


  3. 求出W的拉普拉斯矩阵,此矩阵为对称阵;


  4. 在L上进行特征分解,在所有的特征向量中选择第二小的特征向量V1;
  5. 进行分类,V1中的V1i代表第i个,选择0做为门槛值,V1i大于0则是有缺陷,小于0则是无缺陷;

实验

对比常用的非监督和监督算法。

  • cross-project,对于监督算法,用本项目中的其他项目作为训练数据;对于非监督算法,由于不需要训练数据,直接在目标项目上做集群
  • within-project,two-fold cross validation,对于一个项目,将其分为两半,一半用来训练,一半用来测试,循环500次。

验证

将软件项目中的实体转换为社交网络,生成图,计算联通度寻找社区,验证了以上算法。

创新点

  • Spectral Classifier,通过计算相似度分类
  • 将其比作社区,通过图的联通度来验证

总结

优点

  • 按照他的实验数据来看,效果确实不错
  • 社交网络的类比十分形象,极好的阐释了聚类的合理性

不足

  • 创新点来自于别人,只是把它应用到了软件缺陷检测上
  • cross-project并不具备概念性,只是为了扩大样本

我的想法

聚类是否可以和监督算法相配合?

你可能感兴趣的:(Cross-project defect prediction using a connectivity-based unsupervised classifier)