NASA MDP 软件缺陷预测数据集

NASA MDP 软件缺陷预测数据集

资源链接: https://github.com/klainfo/NASADefectDataset/ 点此跳转

MDP包括13个来自NASA的实际项目。在每一个数据集的开头,会标注项目名称,然后是度量元解释,之后就是数据。
如下图示例:

@relation 'CM1' // 项目名称

// 以下为度量元
@attribute LOC_BLANK numeric // 空白行数量
@attribute BRANCH_COUNT numeric // 分支数量
@attribute CALL_PAIRS numeric // 调用对数
@attribute LOC_CODE_AND_COMMENT numeric // 代码和注释行数
@attribute LOC_COMMENTS numeric // 注释行数
@attribute CONDITION_COUNT numeric // 条件语句计数
@attribute CYCLOMATIC_COMPLEXITY numeric // 圈复杂度
@attribute CYCLOMATIC_DENSITY numeric // 圈密度
@attribute DECISION_COUNT numeric // 决策数量
@attribute DECISION_DENSITY numeric // 决策复杂度
@attribute DESIGN_COMPLEXITY numeric // 设计复杂度
@attribute DESIGN_DENSITY numeric // 设计密度
@attribute EDGE_COUNT numeric // 边界统计
@attribute ESSENTIAL_COMPLEXITY numeric // 本质复杂度
@attribute ESSENTIAL_DENSITY numeric // 本质密度
@attribute LOC_EXECUTABLE numeric // 可执行行数
@attribute PARAMETER_COUNT numeric // 参数计数
@attribute GLOBAL_DATA_COMPLEXITY numeric // 全局数据复杂度
@attribute GLOBAL_DATA_DENSITY numeric // 全局数据密度
@attribute HALSTEAD_CONTENT numeric // Halstead 内容
@attribute HALSTEAD_DIFFICULTY numeric // Halstead 复杂度
@attribute HALSTEAD_EFFORT numeric // Halstead 编程效率
@attribute HALSTEAD_ERROR_EST numeric // Halstead 错误预测
@attribute HALSTEAD_LENGTH numeric // Halstead 程序长度
@attribute HALSTEAD_LEVEL numeric // Halstead 程序语言等级
@attribute HALSTEAD_PROG_TIME numeric // Halstead 编写程序的时间
@attribute HALSTEAD_VOLUME numeric // Halstead 程序容量
@attribute MAINTENANCE_SEVERITY numeric // 维护严重性
@attribute MODIFIED_CONDITION_COUNT numeric // 修改条件语句数
@attribute MULTIPLE_CONDITION_COUNT numeric // 多条件语句数
@attribute NODE_COUNT numeric // 节点计数
@attribute NORMALIZED_CYLOMATIC_COMPLEXITY numeric // 规范圈复杂度
@attribute NUM_OPERANDS numeric // 操作数数量
@attribute NUM_OPERATORS numeric // 操作符数量
@attribute NUM_UNIQUE_OPERANDS numeric // 特殊操作数数量
@attribute NUM_UNIQUE_OPERATORS numeric // 特殊操作符数量
@attribute NUMBER_OF_LINES numeric // 行数量
@attribute PATHOLOGICAL_COMPLEXITY numeric // 病理复杂度
@attribute PERCENT_COMMENTS numeric // 注释比例
@attribute LOC_TOTAL numeric // 总行数
@attribute Defective {Y,N} // 是否存在缺陷

@data //以下为数据,每行数据代表一个模块
6,9,2,1,0,16,5,0.2,8,2,3,0.6,17,1,0,24,3,0,0,32.54,9.5,2936.77,0.1,63,0.11,163.15,309.13,0.2,4,8,14,0.16,19,44,15,15,32,1,4,25,N
// 数据用逗号隔开,与之前定义的元组相对应,N代表存在缺陷
15,7,3,1,19,12,4,0.13,6,2,2,0.5,17,1,0,31,1,0,0,38.55,21.52,17846.19,0.28,141,0.05,991.46,829.45,0.25,3,6,15,0.06,51,90,32,27,67,1,39.22,32,Y
// Y代表不存在问题

数据集为开源数据集,公布在github上,可通过上方链接跳转到gitHub。

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
软件缺陷预测数据集是在软件开发过程中收集的一系列与软件缺陷相关的数据。MDP(Markov Decision Process,马尔可夫决策过程)是一种数学模型,用于描述具有随机性的决策问题。那么,软件缺陷预测数据集如何使用MDP呢? 首先,我们可以将软件缺陷预测问题视为一个决策过程,在每个决策点上,我们需要根据当前的状态和可用的动作来做出决策。而软件缺陷预测数据集则提供了我们所需要的状态和相应的动作概率。 其次,我们可以使用软件缺陷预测数据集来建立MDP的状态转移概率和奖励函数。通过分析数据集中的历史数据,我们可以统计不同状态下观察到的动作以及它们引发的状态转移。这样,我们就可以计算每个状态转移到下一个状态的概率,并将其作为MDP的状态转移概率。 同时,软件缺陷预测数据集中还可以提供关于缺陷出现的信息,如缺陷的数量和严重性等。我们可以利用这些信息来构建MDP的奖励函数,以评估每个状态和动作的好坏程度。例如,我们可以根据缺陷的数量和严重性给予负向的奖励,以鼓励系统在这些状态下采取避免缺陷的行动。 最后,基于建立好的MDP模型,我们可以应用各种强化学习算法来求解最优策略。通过训练MDP模型,我们可以找到在不同状态下采取的最佳动作,以最大化软件缺陷预测的准确性和效果。 综上所述,软件缺陷预测数据集可以与MDP相结合,通过建立状态转移概率和奖励函数,应用强化学习算法来求解最优策略,从而提高软件缺陷预测的准确性和效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值