【技术实现步骤摘要】
一种移动应用程序代码提交故障预测模型的可解释性方法
[0001]本专利技术涉及计算机
,尤其涉及一种移动应用程序代码提交故障预测模型的可解释性方法。
技术介绍
[0002]近年来,移动互联网的蓬勃发展,智能移动设备的迅速普及,越来越多的智能手机用户通过他们的设备进行相互通信、获取信息和娱乐。用户可以随时在应用市场上下载各种应用软件,开发人员也不断地开发新的应用软件或者更新优化已发布的软件,来满足用户的需求和优化用户的体验。然而,应用程序的频繁更新,将涉及大量的代码提交,可能会给新版本的移动应用程序引入故障,从而影响应用的质量。在移动应用程序的开发和维护过程中,及时发现故障并由开发人员解决,可以避免一些不必要的损失。检测故障这一任务被称为故障预测。
[0003]研究人员提出了提交级的软件故障预测,用于识别新提交的代码变更是否会引入故障,从而为开发人员提供及时的反馈,以便尽早发现并修复故障。目前,已有研究将代码提交故障预测应用于移动应用程序上,因其具有细粒度、即时性、可追溯性好等优点,对于更新频繁的移动应用程序,提交级故障预测是合适的。
[0004]然而,在移动应用程序代码提交故障预测领域,大部分研究只关注预测模型的性能,而忽略了模型的可解释性。故障预测模型应用机器学习技术可以很好地检测出目标代码片段是否含有故障,但一些机器学习模型基于黑盒模型(如随机森林,神经网络等),因此并不具有可解释性。也就是说,我们给模型一个输入,模型给我们一个预测结果,但我们并不知道模型给我们这个结果背后的依据是什么。这会 ...
【技术保护点】
【技术特征摘要】
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
...
【专利技术属性】
技术研发人员:陈翔,胡新宇,翟瀚丰,高朝阳,夏鸿崚,顾亚锋,杨少宇,
申请(专利权)人:南通大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。