29.4 マーケット・バスケット・データの使用
マーケット・バスケット・データは、一連のバスケットまたはトランザクションで販売された商品群を表します。Oracle Data Miningでは、マーケット・バスケット分析に相関マイニング機能が提供されます。
相関モデルで使用されるAprioriアルゴリズムでは、ある商品が別の商品と同時に購入される傾向を記述する相関ルールが生成されます。たとえば、相関ルールで、ピーナッツ・バターを購入する顧客は80%の確率でジャムも購入すると示される場合があります。
マーケット・バスケット・データは通常、トランザクショナルです。トランザクショナルなデータでは、1つのケースが1回の取引(トランザクション)を表し、トランザクションのデータは複数の行に格納されます。Oracle Data Miningの相関モデルはトランザクショナル・データまたは単一レコード・ケースのデータで構築できます。ODMS_ITEM_ID_COLUMN_NAME
およびODMS_ITEM_VALUE_COLUMN_NAME
の設定では、相関ルールのデータがトランザクショナル形式かどうかを指定できます。
ノート:
相関モデルは、ネイティブ・トランザクショナル・データで構築できる唯一のモデルです。その他すべての種類のモデルについて、Oracle Data Miningでは、単一レコード・ケース形式で存在するデータが必要です。
Aprioriアルゴリズムでは、データがトランザクショナルで、データに多数の欠損値が含まれていることが想定されます。Aprioriは、すべての欠損値をスパース・データとして解釈し、スパース・データを処理するための独自のネイティブ・メカニズムを持っています。
関連項目:
ODMS_ITEM_ID_COLUMN_NAME
設定およびODMS_ITEM_VALUE_COLUMN_NAME
設定の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
29.4.1 例: マーケット・バスケット分析用のネストした列の作成
例に、マーケット・バスケット分析用のネストした列を定義する方法を示します。
相関モデルは、ネイティブ・トランザクショナル・データまたはネストしたデータで構築できます。次の例に、マーケット・バスケット分析用のネストした列を定義する方法を示します。
次のSQL文は、SALES_TRANS_CUST_NESTED
というビューで、このデータをDM_NESTED_NUMERICALS
型の列に変換します。このビューは、マイニング用のケース表として使用できます。
CREATE VIEW sales_trans_cust_nested AS SELECT trans_id, CAST(COLLECT(DM_NESTED_NUMERICAL
( prod_name, 1)) ASDM_NESTED_NUMERICALS
) custprods FROM sales_trans_cust GROUP BY trans_id;
この問合せは、変換されたデータから2つの行を戻します。
SELECT * FROM sales_trans_cust_nested WHERE trans_id < 101000 AND trans_id > 100997; TRANS_ID CUSTPRODS(ATTRIBUTE_NAME, VALUE) ------- ------------------------------------------------ 100998 DM_NESTED_NUMERICALS (DM_NESTED_NUMERICAL('O/S Documentation Set - English', 1) 100999 DM_NESTED_NUMERICALS (DM_NESTED_NUMERICAL('CD-RW, High Speed Pack of 5', 1), DM_NESTED_NUMERICAL('External 8X CD-ROM', 1), DM_NESTED_NUMERICAL('SIMM- 16MB PCMCIAII card', 1))
例29-7 ネストした列への変換
ビューSALES_TRANS_CUST
は、各マーケット・バスケットを識別するトランザクションIDと、各バスケット内の製品のリストを表示します。
describe sales_trans_cust Name Null? Type ----------------------------------------------------- -------- ---------------- TRANS_ID NOT NULL NUMBER PROD_NAME NOT NULL VARCHAR2(50) QUANTITY NUMBER
関連トピック