当前位置: 首页 > 专利查询>南通大学专利>正文

一种移动应用程序代码提交故障预测模型的可解释性方法技术

技术编号:34464282 阅读:10 留言:0更新日期:2022-08-10 08:36
本发明专利技术提供了一种移动应用程序代码提交故障预测模型的可解释性方法,包括以下步骤:(1)通过挖掘版本控制系统,搜集来自移动应用程序项目内的代码提交,随后对代码提交进行度量和标注,形成数据集;(2)根据数据集,借助随机森林构建出移动应用程序代码提交故障预测模型;(3)当面对新的代码提交时,对该代码提交进行度量,然后输入到代码提交故障预测模型中,得到预测结果;(4)对局部可解释性技术LIME进行超参优化,使用超参优化的LIME方法ExplainApp生成该预测结果的解释。本发明专利技术的有益效果为:预测出新的代码提交是否会引入故障,同时可以给出相应的高质量解释,辅助开发人员完成后续故障的理解、定位和修复。定位和修复。

【技术实现步骤摘要】
一种移动应用程序代码提交故障预测模型的可解释性方法


[0001]本专利技术涉及计算机
,尤其涉及一种移动应用程序代码提交故障预测模型的可解释性方法。

技术介绍

[0002]近年来,移动互联网的蓬勃发展,智能移动设备的迅速普及,越来越多的智能手机用户通过他们的设备进行相互通信、获取信息和娱乐。用户可以随时在应用市场上下载各种应用软件,开发人员也不断地开发新的应用软件或者更新优化已发布的软件,来满足用户的需求和优化用户的体验。然而,应用程序的频繁更新,将涉及大量的代码提交,可能会给新版本的移动应用程序引入故障,从而影响应用的质量。在移动应用程序的开发和维护过程中,及时发现故障并由开发人员解决,可以避免一些不必要的损失。检测故障这一任务被称为故障预测。
[0003]研究人员提出了提交级的软件故障预测,用于识别新提交的代码变更是否会引入故障,从而为开发人员提供及时的反馈,以便尽早发现并修复故障。目前,已有研究将代码提交故障预测应用于移动应用程序上,因其具有细粒度、即时性、可追溯性好等优点,对于更新频繁的移动应用程序,提交级故障预测是合适的。
[0004]然而,在移动应用程序代码提交故障预测领域,大部分研究只关注预测模型的性能,而忽略了模型的可解释性。故障预测模型应用机器学习技术可以很好地检测出目标代码片段是否含有故障,但一些机器学习模型基于黑盒模型(如随机森林,神经网络等),因此并不具有可解释性。也就是说,我们给模型一个输入,模型给我们一个预测结果,但我们并不知道模型给我们这个结果背后的依据是什么。这会造成开发人员对于故障预测模型的预测结果缺乏信任,并阻碍了故障预测模型在实践中的应用。
[0005]如何解决上述技术问题成为本专利技术面临的课题。

技术实现思路

[0006]本专利技术的目的在于提供一种移动应用程序代码提交故障预测模型的可解释性方法,可以更好地帮助开发人员理解代码提交故障预测模型对测试实例产生的预测结果。
[0007]本专利技术的思想为:本专利技术将超参优化后的可解释方法应用到移动应用程序代码提交故障预测上,对预测结果提供可视化的解释,通过数据集构建一个移动应用程序代码提交故障预测模型,对局部可解释模型LIME进行超参优化,然后使用超参优化后的LIME对模型得到的单个样本结果进行局部解释,就局部线性回归模型的拟合优度(R2)而言,超参优化后的LIME模型优于原始的LIME模型。
[0008]本专利技术是通过如下措施实现的:一种移动应用程序代码提交故障预测模型的可解释性方法,其中,包括以下步骤:
[0009](1)通过挖掘版本控制系统,搜集来自移动应用程序项目内的代码提交。对代码提交首先从代码提交的分散程度、代码提交的修改量、代码提交的修改目的、代码提交的历
史、代码提交相关开发人员的经验这五个维度设计特征,并利用这些特征对搜集的代码提交进行度量。随后对代码提交进行标注,即标记为引入故障的代码提交和未引入故障的代码提交。完成代码提交的度量和标记后,形成数据集D。
[0010](2)基于数据集D,借助随机森林构建出代码提交故障预测模型M。
[0011](3)当面对新的代码提交x时,采用步骤1中相同的特征对该代码提交进行度量,随后输入到代码提交故障预测模型M中,得到预测结果(即检测该代码提交是否会引入故障)。
[0012](4)使用超参优化的LIME方法(即ExplainApp方法)生成该预测结果的解释。局部模型无关的可解释性方法LIME方法是针对测试实例的预测结果给出的解释,通过需要预测的代码提交x,随机生成围绕该代码提交x的n个相邻的虚拟实例;随后使用这n个虚拟实例,通过代码提交预测模型M得到预测结果,将n个虚拟实例和预测结果构成数据集D
lime
;根据数据集D
lime
构建局部回归模型ML,并基于局部回归模型ML的系数,来识别相应特征对预测结果所做出的贡献。由于LIME方法存在超参(即需要生成的虚拟实例数k),因此借助差分进化算法来寻找LIME方法该最优超参的取值,其优化目标是构建局部回归模型ML的拟合优度(goodness of fit)。
[0013]通过差分进化算法来对LIME进行超参优化,寻找线性模型拟合优度最佳时生成实例数的值,其中目标函数是最大化局部回归模型的拟合优度(R2)。使用LIME工具包中的score()函数来获得模型的拟合优度,设置随机种子,使得具有相同虚拟实例数的模型,每次得到的拟合优度值都相同。通过给定一个代码提交实例x和代码提交故障预测模型M,对LIME进行差分进化具体包括如下步骤:
[0014]4‑
1)初始化种群,随机生成规模为size的初始种群。由于要寻找线性模型拟合优度最佳时生成实例数,种群中每个个体是提交实例x周围随机生成的实例数k(k随机生成),即每个个体是1维的,则初始种群可表示为S={k1,k2,k3,

,k
size
}。假设个体的上下边界分别为k
max
和k
min
,则个体按如下方式进行初始化:
[0015]k
i,t
=k
min
+rand(0,1)*(k
max

k
min
)
[0016]其中,i=1,2,
···
,size,t为迭代数,初始值为1。k
i,t
表示第t代第i个个体,rand(0,1)表示一个在区间(0,1)上服从均匀分布的随机数。
[0017](4

2)对于每个候选个体,使用LIME基于随机生成的虚拟实例和M模型的预测结果,构建出局部回归模型ML。
[0018](4

3)从种群中选择最优个体,其具有最优的回归模型的拟合优度。
[0019](4

4)基于该种群,使用缩放因子pr及交叉概率pc,通过变异、交叉和选择操作,生成新的种群。
[0020]变异操作,使用的变异策略如下所示:
[0021]v
i,t
=k
r1,t
+pr*(k
r2,t

k
r3,t
)
[0022]其中,k
r1,t
,k
r2,t
和k
r3,t
是第t次迭代中随机选取种群中三个不同的个体,v
i,t
是目标变异个体;r1,r2,r3∈{1,2,
···
,size}为互不相同的数,且与当前的目标索引i不同,因此size≥4;缩放因子pr在(0,1)之间,pr的值选择要适中,pr过小会降低算法的收敛速度,pr过大会造成种群不收敛。
[0023]交叉操作,在变异操作之后,对第t代的种群{k
i,t
}和其变异中间体{v
i,t
}进行个体间的交叉操作:
[0024本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于移动应用程序代码提交故障预测模型的可解释性方法,其特征在于,包括以下步骤:步骤一:通过挖掘版本控制系统,搜集来自移动应用程序项目内的代码提交,对代码提交首先从代码提交的分散程度、代码提交的修改量、代码提交的修改目的、代码提交的历史、代码提交相关开发人员的经验五个维度设计特征,并利用这些特征对搜集的代码提交进行度量,随后对代码提交进行标注,标记为引入故障的代码提交和未引入故障的代码提交,完成代码提交的度量和标记后,形成数据集D;步骤二:基于数据集D,借助随机森林构建出代码提交故障预测模型M;步骤三:当面对新的代码提交x时,采用步骤一中相同的特征对该代码提交进行度量,随后输入到代码提交故障预测模型M中,得到预测结果,检测该代码提交是否会引入故障;步骤四:使用超参优化的LIME方法生成该预测结果的解释,局部模型无关的可解释性方法LIME方法是针对测试实例的预测结果给出的解释,通过需要预测的代码提交x,随机生成围绕该代码提交x的n个相邻的虚拟实例;随后使用这n个虚拟实例,通过代码提交预测模型M得到预测结果,将n个虚拟实例和预测结果构成数据集D
lime
;根据数据集D
lime
构建局部回归模型ML,并基于局部回归模型ML的系数,识别相应特征对预测结果所做出的贡献,由于LIME方法存在超参,因此借助差分进化算法来寻找LIME方法该最优超参的取值,其优化目标是构建局部回归模型ML的拟合优度。2.根据权利要求1所述的移动应用程序代码提交故障预测模型的可解释性方法,其特征在于,所述步骤四中使用超参优化算法来优化LIME算法的参数设置,通过差分进化算法寻找线性模型拟合优度最佳时生成实例数的值,其中目标函数是最大化局部回归模型的拟合优度(R2),通过LIME工具包中的score()函数获得模型的拟合优度,设置随机种子,使得具有相同虚拟实例数的模型,每次得到的拟合优度值都相同,通过给定一个代码提交实例x和代码提交故障预测模型M,对LIME进行差分进化具体包括如下步骤:(4

1)初始化种群,随机生成规模为size的初始种群,由于要寻找线性模型拟合优度最佳时生成实例数,种群中每个个体是提交实例x周围随机生成的实例数k,每个个体是1维的,则初始种群可表示为S={k1,k2,k3,

,k
size
},假设个体的上下边界分别为k
max
和k
min
,则个体按如下方式进行初始化:k
...

【专利技术属性】
技术研发人员:陈翔胡新宇翟瀚丰高朝阳夏鸿崚顾亚锋杨少宇
申请(专利权)人:南通大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1