三、Orange 与 Apriori 算例

在 Orange 中针对关联规则提供了两个算法。因为关联规则是一种无监督学习算法,所以Orange 在诸多无监督学习模型后专门开列了关联规则算法模型供应用。 示例数据集收列了某学校食堂各灶学生点餐外卖的数据,以一单为一个项集,共 709 条数据,如表 2-5-9 所示。 表 2-5-9 学校食堂点餐外卖数据



需要说明的是,Orange 在进行关联规则算法计算时,需要的是后缀名为.basket 或.bsk 文件格式,这两个文件其实都是文本文件。 首先需要进行数据清理,将不是菜名的数据清除,同时要注意在各个菜名之间加入英文半角逗号(,)分隔,且每单的最后要保证是以回车符结束的。然后将所有项集复制,粘贴入一个文本文件,并将文本文件改为英文名,同时将.txt 后缀名改为.bsk。至此,所有的文件准备工作基本结束。 打开 Orange 平台,先将文件载入,如图 2-5-2 所示。



 图 2-5-2 学生点餐数据的载入窗口

然后将频繁集及关联规则算法模型连入数据库,其工作流如图 2-5-3 所示

 图 2-5-3 学生点餐数据的工作流

由于菜品比较多,学生的选择空间大,所以将支持度设为 5%,则产生的频繁集有 10 项,如图 2-5-4 所示。

 图 2-5-4 支持度 5%的频繁项

同样由于项目多,数据量相对较少,将支持度设为 2%,置信度设为 25%时,产生 3 条关联规则,如图 2-5-5 所示。

 图 2-5-5 支持度 2.5%的频繁项

由这 3 条关联规则可以看出一个有意思的常识性饮食搭配,即面食和各种肉肠是较为紧密的搭配关系,都是在吃面的时候选择再卖一根肉肠。由此可以提示商家,在外卖 App 的商品配图时,可考虑将面食与肉肠同框,这样可提高商品的售卖量。