支持度指数据中规则应验次数;有时候,还需要对支持度进行规范化,即再除以规则有效前提下的总数量。
支持度衡量的是给规则应验的比例,而置信度衡量的则是规则准确率如何,即符合给定条件(即规则的"如果"语句所表示的前提条件)的所有规则里,跟当前规则结论一致有多大。计算方法首先统计当前规则的出现次数,再用它来除以条件("如果"语句)相同的规则数量。
我们需要统计数据集中所有规则的相关数据。首先分别为规则应验和规则无效这两种情况创建字典。字典的键是由条件和结论组成的元组,元组元素为特征在特征列表中的索引值,不要用实际特征名。如果某个个体的条件和结论与给定规则相符,就表示给定规则对该个体适用;否则如果通过给定条件推出的结论与给定规则的结论不符,则表示给定规则对该个体无效。
为了计算所有规则的置信度和支持度,首先创建几个字典,用来存放计算结果。这里这里使用defaultdict,好处是如果查找的键不存在,返回一个默认值。需要统计的量有规则应验、规则无效以及条件相同的规则数量。
计算过程需要用到循环结构,依次对样本的每个个体及个体的每个特征值进行处理。第一个特征为规则的前提条件——顾客购买了某一种商品。