ヘッダーをスキップ
Oracle Data Mining概要
11g リリース1(11.1)
E05704-02
  目次へ
目次
索引へ
索引

戻る
戻る
 
次へ
次へ
 

8 相関

この章では、相関ルールを発見するための監視なしマイニング機能である相関について説明します。

この章では、次の項目について説明します。

相関とは

相関は、ある集合内の項目が同時に発生する確率を見つけるデータ・マイニング機能です。同時に発生する項目間の関係は、相関ルールで表されます。

相関ルールは、よく販売トランザクションの分析に使用されます。たとえば、食料品店でシリアルを購入する顧客は同時に牛乳も購入することが多いことがわかっているとします。実際に相関分析を行うと、精算時にシリアルと牛乳の両方が含まれている確率は85%であるという結果が得られることがあります。この関係は、次のルールで表すことができます。

Cereal implies milk with 85% confidence

相関モデルのこうした応用は、マーケット・バスケット分析と呼ばれています。マーケット・バスケット分析は、ダイレクト・マーケティングや販促活動、ビジネス上の傾向の把握などに役立ちます。また、店舗レイアウト、カタログのデザイン、抱合せ販売などにも活用できます。

相関モデルは、その他の分野でも重要な用途に応用されています。たとえば、E-Commerceにおいて、Webページのパーソナライズに相関ルールを使用することがあります。相関モデルから、ページAとページBにアクセスするユーザーは70%の確率で同じセッション内でページCにアクセスすることがわかったとします。このルールに基づいて、ページCに関心を持ちそうなユーザー向けに動的なリンクを作成することが可能です。この相関ルールは次のように表すことができます。

A and B imply C with 70% confidence

関連項目:

「信頼度」

トランザクション

他のデータ・マイニング機能と異なり、相関はトランザクションに基づくマイニング機能です。トランザクション処理の場合、ケースはマーケット・バスケットやWebセッションなどの1つのトランザクションで構成されます。トランザクションの項目の集まりが、そのトランザクションの1つの属性です。トランザクションに関連する日付、時間、場所、ユーザーIDなどがその他の属性となります。

トランザクションの項目の集まりは、複数レコード属性です。トランザクショナル・データは複数レコード・ケースの形式であると言えます。図8-1に例を示します。

図8-1 トランザクショナル・データ

図8-1の説明は図の下のリンクをクリックしてください。
「図8-1 トランザクショナル・データ」の説明

Oracle Data Miningでは単一レコード・ケースの形式を使用するため、相関ルールのマイニングを行う前に、集合値が格納されている列をネストした表型に変換する必要があります。単一レコード・ケース形式のトランザクショナル・データを図8-2に示します。

図8-2 マイニング用に変換されたトランザクショナル・データ

図8-2の説明は図の前後の段落を参照してください。

トランザクショナル・データのケースIDは、複数列キーになる場合があります。たとえば、販売トランザクションのケースIDは顧客IDとタイムスタンプであることがあります。


注意:

Oracle Data Minerは、ネストした表への変換を透過的に処理します。SQLを使用してトランザクショナル・データを変換する方法については、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。


関連項目:

単一レコード・ケース形式の例は、例4-3「回帰用の作成データの例」および例7-2「クラスタリング用の作成データ」を参照してください。

「スパース・データ」


項目と集合

トランザクショナル・データでは、項目の集合が各ケースに関連しています。理論上、この集合には、メンバーとなり得るすべての項目が含まれると考えることができます。たとえば、1回のマーケット・バスケット・トランザクションでは、理論上はすべての商品が購入される可能性があります。しかし実際には、特定のトランザクションに存在するのはすべての項目の中のわずかなサブセットのみです。マーケット・バスケット(買い物かご)に入っている商品は、店舗で販売されている商品のほんの一部でしかありません。

Oracle Data Miningは、ネストした行として集合を処理します(図8-2を参照)。ネストした行のそれぞれが、1つの項目の名前と値を表します。ある項目が集合内に存在する場合、その値はNULL以外の値です。項目は、その名前と値によって一意に識別されます。名前が同じで値が異なるという項目が集合内で発生する場合もあります。たとえば、あるトランザクションに牛乳1ガロンが含まれ、別のトランザクションには牛乳2ガロンが含まれている場合、milk-1とmilk-2は異なる項目として解釈されます。

スパース・データ

ある項目が集合内に含まれていない場合は、その値がNULLであるか、または単に欠損している可能性があります。集合に含まれる可能性がある項目の大部分は個々のトランザクションに存在しない確率が高いので、ほとんどの項目はNULLであるかまたは欠損していると考えられます。

集合内で複数の行が欠損している場合はデータがスパースであることがわかります。つまり、ネストした行の大部分に値がないということです。Oracle Data Miningの相関アルゴリズムは、スパース・データの処理に対して最適化されています。


関連項目:

Oracle Data Miningおよびスパース・データの詳細は、『Oracle Data Miningアプリケーション開発者ガイド』を参照してください。

項目セット

相関分析では、第1段階として項目セットを列挙します。項目セットとは、トランザクション内の2つ以上の項目のあらゆる組合せのことです。

1つの項目セットに含める項目の最大数はユーザーが指定します。最大数を2にした場合は、2項目から成るすべての組合せがカウントされます。最大数を3以上にした場合は、2項目から成るすべての組合せ、3項目から成るすべての組合せ、以降指定した最大数の項目から成るすべての組合せがカウントされます。

項目セットに含める項目の最大数はASSO_MAX_RULE_LENGTH設定で指定します。この設定は、項目セットから導き出されるルールにも適用されます。


関連項目:

項目セットとルールの関係については、「相関ルール」を参照してください。

相関ルールの構築設定の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。


表8-1は、図8-2に示したトランザクションから得られた項目セットの一覧です。ここでは、ASSO_MAX_RULE_LENGTHを3に設定したものとします。

表8-1 項目セット

トランザクション 項目セット

11

(B,D) (B,E) (D,E) (B,D,E)

12

(A,B) (A,C) (A,E) (B,C) (B,E) (C,E) (A,B,C) (A,B,E) (A,C,E) (B,C,E)

13

(B,C) (B,D) (B,E) (C,D) (C,E) (D,E) (B,C,D) (B,C,E) (B,D,E) (C,D,E)



ヒント:

モデルの作成時間を短縮し、単純なルールを生成するには、ルールの最大長の値を小さくします。

高頻度項目セット

相関ルールは項目セットに基づいて計算されます。すべての項目セットからルールが生成された場合、非常に多くのルールが存在することになり、意味のあるルールが得られないことがあります。また、モデルの作成に長い時間がかかる場合もあります。そのため、通常は、データ内での発生頻度が高い項目セットのみを使用してルールを生成する方が望ましいと言えます。高頻度項目セットとは、ユーザーが指定した最小頻度で発生する項目セットのことです。

最小頻度の項目セットの支持度は、相関ルール用に使用される項目セット数を制限するための割合であり、ユーザーが指定します。項目セットは、ルールの基盤として使用されるためには、全トランザクションにおいて少なくともこの割合で出現する必要があります。

最小頻度の項目セットの支持度は、ASSO_MIN_SUPPORT設定で指定します。この設定は、高頻度項目セットから導き出されたルールにも適用されます。


関連項目:

高頻度項目セットとルールの関係については、「相関ルール」を参照してください。

相関ルールの構築設定の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。


表8-2は、表8-1の項目セットのうち、支持度が66%を超える高頻度項目セットをまとめたものです。

表8-2 高頻度項目セット

高頻度項目セット トランザクション 支持度

(B,C)

2/3

67%

(B,D)

2/3

67%

(B,E)

3/3

100%

(C,E)

2/3

67%

(D,E)

2/3

67%

(B,C,E)

2/3

67%

(B,D,E)

2/3

67%



ヒント:

モデルの作成時間を短縮し、生成されるルールの数を減らすには、最小支持度の値を大きくします。


関連項目:

相関ルールの計算の詳細は、第10章「Apriori」を参照してください。

相関問題の例

この例では、SHスキーマの販売トランザクションを基にしてマイニングする相関ルールを取り上げます。Salesは、外部キーを介してproductscustomersおよびその他のディメンション表に関連付けられているファクト表です。Oracle Data Minerでは、トランザクショナル・データが自動的に単一レコード・ケースに変換されます。

各トランザクションに含まれる項目は製品で、トランザクションはそれぞれ顧客IDで一意に表されます。図8-3は、トランザクショナル・データを選択するOracle Data Minerのダイアログ・ボックスです。

図8-3 トランザクショナル・データの選択

図8-3の説明は図の下のリンクをクリックしてください。
「図8-3 トランザクショナル・データの選択」の説明

図8-4は、一意のトランザクションIDを選択するダイアログ・ボックスです。

図8-4 トランザクションIDの選択

図8-4の説明は図の下のリンクをクリックしてください。
「図8-4 トランザクションIDの選択」の説明

このデータに基づいて作成されるデフォルト設定のモデルは、多数のルールを生成します。ルールの数を制限する1つの方法は、支持度と信頼度の値を大きくすることです。図8-5では、「詳細設定」ダイアログ・ボックスで信頼度を65%、支持度を75%に上げています。

図8-5 相関ルールの詳細設定

図8-5の説明は図の下のリンクをクリックしてください。
「図8-5 相関ルールの詳細設定」の説明

信頼度と支持度の値を大きくしたときに戻されるルールを示したものが、図8-6です。

図8-6 相関ルールの例

図8-6の説明は図の下のリンクをクリックしてください。
「図8-6 相関ルールの例」の説明

ルールは様々な方法でフィルタリングできます。図8-7のダイアログ・ボックスでは、前件に「マウス・パッド」、後件に「キーボード用リスト・レスト」が含まれるルールのみを戻すように指定しています。

図8-7 ルールのフィルタリング

図8-7の説明は図の下のリンクをクリックしてください。
「図8-7 ルールのフィルタリング」の説明

図8-8は、図8-7で指定したフィルタリング条件から得られた3つの結果を示しています。1番目のルールでは、マウス・パッドおよび1.44MBの3.5インチ・フロッピー・ディスクを購入する顧客は、キーボード用リスト・レストも同時に購入する可能性が高いことが記述されています。このルールの信頼度は98%です。支持度は77%です。

図8-8 前件にマウスパッドを含むルールの表示

図8-8の説明は図の下のリンクをクリックしてください。
「図8-8 前件にマウスパッドを含むルールの表示」の説明


関連項目:

信頼度の詳細は、「信頼度」を参照してください。

相関ルール用のアルゴリズム

Oracle Data Miningは、高頻度項目セット内の項目に関する相関ルールを計算するときにAprioriアルゴリズムを使用します。


関連項目:

第10章「Apriori」