1.基于流形组合特征和联合分布的跨项目软件缺陷预测方法,其特征在于,该方法具体包括以下步骤:步骤1、获取缺陷数据集和无缺陷数据集,筛选部分数据进行实验验证;
步骤2、在流形特征空间中提取数据的全局可转移特征和局部可转移特征;具体操作如下:步骤2‑1:在流形特征空间中提取可转移特征;首先通过在格拉斯曼流形G(dk)中学习一个映射函数g(.),其中,dk是不同项目数据子空间的维度;利用测地线流核GFK来学习g(.)的计算效率,G(·)看作是一个dk维的子空间集合;
对任意两个数据特征xi、xj构造测地线流,等于将原始特征转换为无限维特征空间;新的特征数据记为z=g(x),新的特征的内积产生一个半正定的GFK:其中G是半正定矩阵;原始数据x转化为格拉斯曼流形特征, 项目实例集合X={XS,XT},其中XS是源项目实例集合,XT是目标项目实例集合;G只是一种表达式,不能直接计算,所以平方根通过Denman‑Beavers算法计算;在以下部分中使用 作为流形特征表示;
步骤2‑2:DA‑GMDA利用XS和XT来提取具有更多可转移容量的全局特征;假设边缘分布Ms(xS)≠Mt(xt)和条件分布Cs(yS|xS)≠Ct(yt|xt),且边缘分布和条件分布同时匹配;DA‑GMDA旨在学习映射矩阵W以重建可转移的全局特征空间;输入数据因噪声概率p而损坏;目标函数定义为:其中 和 分别匹配边缘分布和匹配条件分布, 是源项目数据
XS的损坏版本, 是目标项目数据XT的损坏版本;λ是正则化参数;采用双曲正切函数生成源项目全局可转移特征 和目标项目全局可转移特征步骤2‑3:采用DA‑LMDA来提取局部子集的特征;
根据标签和伪标签将源项目实例和目标项目实例分为不同的局部子集;其次,通过匹配局部子集分布并重构局部子空间的DA‑LMDA,以获得不同子集更丰富的可转移局部特征;
DA‑LMDA关于带有标签c的局部子集的目标函数定义为:
其中, 表示来自源项目的带有标签c的实例, 表示来自目标项目的带有标签c的实例; 是 的损坏版本, 是 的损坏版本,λ是正则化参数;得到在标签c上的源项目局部可转移特征 和目标项目局部可转移特征步骤3、利用线性方式组合为组合特征,将组合特征和联合分布匹配相结合;具体操作如下:即在流形特征空间使用DA‑GMDA和DA‑LMDA从源项目和目标项目生成全局可转移特征和 以及源项目局部可转移特征和目标项目局部可转移特征 和 然后将 和以及 和 线性组合成新的组合特征 和 后,首次更新伪标签,并用组合特征计算格拉姆矩阵 通过格拉姆矩阵进行联
合分布匹配;
步骤4、通过联合分布匹配获得实例权重;并基于该权重训练预测模型,最后基于该预测模型进行伪标签的二次更新;
步骤5、重复训练预测模型过程中,更新后的标签再次用于提取组合特征并更新伪标签和联合分布匹配,直至最后预测稳定收敛,即可结束训练。