关联规则算法在招投标审计中的应用
一、审计项目背景
加强招标投标领域依法治理,建设统一、开放的招标投标市场,保证招标投标活动公开、公平、公正是经济社会高质量发展的重要举措。围标、陪标作为招标投标领域审计的重点关注内容,其涉及投标单位数量多、关联关系复杂,采取传统现场抽查的方式难以全面、快速的锁定疑点问题。本文旨在介绍运用关联规则算法挖掘投标单位之间结伴频率的分析方法,揭示招标投标领域中的围标、陪标问题。
二、数据审计重点
通过研究政策及案例发现,不正当投标有以下几种行为。一是投标单位为增大中标几率,邀请其他符合条件企业陪标以增大自己的中标几率。二是几家投标单位互相联合,形成较为稳定的同盟,以达到排挤其他投标人,控制中标价格和中标结果的目的。三是个别项目经理同时挂靠若干家单位投标,表面上是几家单位在参加投标,实际上是一人在背后操纵。以上违规行为都会导致出现同一特征,就是某些不同投标单位结伴投标频次升高。关联规则算法是一种数据挖掘技术,用于在大型事务数据集中发现项集之间的关系,通过此算法将上述特征转化为数据分析模型,在海量的业务数据中定位围标、陪标的频繁项集,延伸核实发现问题。
三、审前数据准备
由于各地公共资源交易平台数据较为标准,且有数据字典作为参考,审计人员将招标投标系统后台数据导出,根据字典生成包括招标单位名称、项目名称、项目代码、标段名称、标段代码、投标单位名称等主要字段的投标信息表,并导出为.csv文件。考虑数据量较大,选择使用效率较高的FP-Growth关联规则算法,准备好Python编程环境,使用pip命令安装pandas库和mlxtend库,用于整理生成数据集和实现FP-Growth算法。
四、数据分析过程
(一)导入需要使用的库和方法。需要同时导入pandas库和mlxtend库中的TransactionEncoder和fpgrowth。
(二)利用pandas创建数据集。读入投标信息表数据后,通过项目代码字段分组,遍历分组后的对象,从中取出同一招标项目的投标单位名称,加入到目标列表中,生成目标数据集的格式。
(三)生成频繁项集结果。使用TransactionEncoder将数据集转换为布尔矩阵,使用fpgrowth函数查找频繁项集,通过设置阈值参数min_support筛选频次较高的投标单位组合,最后将结果导出为表格文件。
(四)导出的结果中,itemsets列表示项集,即投标单位的组合。support列表示支持度,可看作关联程度的高低,数值越大代表项集在同一招标项目中同时出现的可能性越大,反之越小。将表格以support列值按照降序进行排序,剔除单个投标单位组成的项集,把support值较大的几个投标单位组合作为异常情况的疑点。