创建顺序模式的示例
此示例显示如何在 RETAILS 样本数据集中检测显著且有用的顺序模式。
RETAILS 表来自零售表,并以 SID 列进行扩展,该列将事务分组为事务序列。最小支持度设置为总输入序列数的 3%。最小置信度设置为 0.5。
以下调用显示如何发现顺序模式和规则。
CALL IDAX.SEQRULES('model=retails_seq, intable=retails, sid=sid, tid=tid, item=item, minsupport=0.03, minconf=0.5');
要检查构建模型,请使用以下 PRINT_MODEL 存储过程。您可以打印模式或规则。另外,可以根据支持度、增益、置信度、长度、时间或者包含或不包含的项目来过滤掉规则模式。可以对结果进行排序,并将其截断为指定的行数。
CALL IDAX.PRINT_MODEL('model=retails_seq, type=patterns, minlen=3, itemsin=32;41, maxlift=2, limit=20');
如果某些规则或模式对您用处不大,您可使用参数来修剪顺序模式模型,这些参数与用于打印的参数几乎相同。您可以先使用过滤参数来打印规则;在生成的输出符合您的需要后,再将模型修剪为正好包含这些规则和模式。
例如,以下调用将对模型进行修剪,即,将其内容限制为正好是第一次调用 PRINT_MODEL 时使用的规则。
CALL IDAX.PRUNE_SEQRULES('model=retails_seq, minlen=3, itemsin=32;41, maxlift=2');
修剪掉的模式和规则不会从模型中删除,而是标记为不活动。以下调用将重新激活这些模式和规则。
CALL IDAX.PRUNE_SEQRULES('model=retails_seq, reset=true');
最后,可以使用该模型来检测或预测其他客户的购买行为。只有未修剪掉的模式和规则才会纳入考虑。将该模型应用于事务的新输入序列时,可以检测这些输入序列中的模式。另外,可以检测只有规则体包括在输入序列中,但规则头不在输入序列中的规则。通过使用这些规则,您可以预测出,此客户将来可能会购买规则头中包括的项目。
以下调用预测适用于同一输入表的规则。对于每个输入序列,此调用仅给出最确信的规则。
CALL IDAX.PREDICT_SEQRULES('model=retails_seq, intable=retails, outtable=retails_out, type=rules, sort=confidence, limit=1');