シーケンシャル・パターンの作成例

この例では、 RETAILS サンプル・データ・セットの重要かつ有益なシーケンシャル・パターンを検出する方法を示します。

RETAILS 表を小売表から取得し、SID 列を使用して拡張します。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');