Microsoft アソシエーション ルール アルゴリズムは、よく知られている Apriori アルゴリズムの簡単な実装です。
Microsoft デシジョン ツリー アルゴリズムと Microsoft アソシエーション ルール アルゴリズムの両方を使用して関連付けを分析できますが、各アルゴリズムで検出されるルールは異なる場合があります。 デシジョン ツリー モデルでは、特定のルールにつながる分割は情報の獲得に基づきますが、アソシエーション モデルでは、ルールは完全に信頼度に基づいています。 したがって、アソシエーション モデル、強力なルール、または信頼度の高いルールでは、新しい情報が提供されないため、必ずしも興味深いとは限りません。
Microsoft アソシエーション アルゴリズムの実装
Apriori アルゴリズムはパターンを分析するのではなく、 候補アイテムセットを生成してカウントします。 項目は、分析されるデータの種類に応じて、イベント、製品、または属性の値を表すことができます。
最も一般的な種類の関連付けモデルでは、Yes/No または Missing/Existing の値を表すブール型変数が、製品名やイベント名などの各属性に割り当てられます。 マーケット バスケット分析は、ブール変数を使用して顧客の買い物かご内の特定の製品の有無を表すアソシエーション ルール モデルの例です。
その後、各アイテムセットに対して、サポートと信頼度を表すスコアがアルゴリズムによって作成されます。 これらのスコアを使用して、アイテムセットから興味深いルールをランク付けして派生させることができます。
関連付けモデルは、数値属性用に作成することもできます。 属性が連続している場合は、数値を 分離したり、 バケットにグループ化したりできます。 分離された値は、ブール値または属性値のペアとして処理できます。
サポート、確率、重要度
頻度と呼ばれるサポート は、対象となる項目または項目の組み合わせを含むケースの数を意味します。 モデルに含めることができるのは、少なくとも指定されたサポート量を持つ項目のみです。
頻繁なアイテムセットとは、項目の組み合わせも、MINIMUM_SUPPORT パラメーターで定義されたしきい値を超えるサポートを持つ項目のコレクションを指します。 たとえば、アイテムセットが {A,B,C} で、MINIMUM_SUPPORTの値が 10 の場合、モデルに含める少なくとも 10 個のケースで個々の項目 A、B、C が見つかり、アイテム {A,B,C} の組み合わせも少なくとも 10 個のケースで見つかる必要があります。
手記 また、アイテムセットの最大長を指定することで、マイニング モデル内のアイテムセットの数を制御することもできます。つまり、長さはアイテムの数を意味します。
既定では、特定のアイテムまたはアイテムセットのサポートは、そのアイテムまたはアイテムを含むケースの数を表します。 ただし、数値を 1 未満の 10 進値として入力することで、MINIMUM_SUPPORTをデータ セット内のケース全体に対する割合で表すこともできます。 たとえば、MINIMUM_SUPPORT値 0.03 を指定した場合、モデルに含めるために、データ セット内のケース全体の少なくとも 3% にこのアイテムまたはアイテムセットが含まれている必要があります。 モデルを試して、カウントまたはパーセンテージを使用する方が理にかなっているかどうかを判断する必要があります。
これに対し、ルールのしきい値は、カウントまたはパーセンテージとしてではなく、確率として表され、 信頼度と呼ばれることもあります。 たとえば、アイテムセット {A,B,C} が 50 のケースで発生するが、アイテムセット {A,B,D} も 50 のケースで発生し、アイテムセット {A,B} が別の 50 のケースで発生する場合、{A,B} が {C} の強力な予測子ではないことは明らかです。 そのため、既知のすべての結果に対して特定の結果を重み付けするために、Analysis Services では、アイテムセット {A,B,C} のサポートを関連するすべてのアイテムセットのサポートで割ることによって、個々のルール (If {A,B} Then {C}など) の確率が計算されます。
MINIMUM_PROBABILITYの値を設定することで、モデルによって生成されるルールの数を制限できます。
作成されたルールごとに、Analysis Services は 重要度を示すスコアを出力します。これは 、リフトとしても参照されます。 リフト重要度は、アイテムセットとルールに対して異なる方法で計算されます。
アイテムセットの重要度は、アイテムセットの確率をアイテムセット内の個々のアイテムの複合確率で割った値として計算されます。 たとえば、アイテムセットに {A,B} が含まれている場合、Analysis Services は最初に、この組み合わせ A と B を含むすべてのケースをカウントし、それをケースの合計数で除算してから、確率を正規化します。
ルールの重要度は、ルールの左側を指定すると、ルールの右側の対数尤度によって計算されます。 たとえば、ルール If {A} Then {B} では、Analysis Services は、B を持つケースのうち A も含むケースの割合を、A を含まない B のケースに対する割合として計算し、その比率を対数スケールを使用して正規化します。
特徴選択
Microsoft アソシエーション ルール アルゴリズムでは、いかなる種類の自動機能選択も実行されません。 代わりに、アルゴリズムは、アルゴリズムによって使用されるデータを制御するパラメーターを提供します。 これには、各アイテムセットのサイズの制限や、モデルへのアイテムセットの追加に必要な最大および最小サポートの設定が含まれる場合があります。
あまりに一般的で関心のないアイテムやイベントを除外するには、MAXIMUM_SUPPORTの値を小さくして、非常に頻繁なアイテムセットをモデルから削除します。
まれなアイテムやアイテムセットを除外するには、MINIMUM_SUPPORTの値を大きくします。
ルールを除外するには、MINIMUM_PROBABILITYの値を大きくします。
Microsoft アソシエーション ルール アルゴリズムのカスタマイズ
Microsoft アソシエーション ルール アルゴリズムでは、結果として得られるマイニング モデルの動作、パフォーマンス、精度に影響を与えるいくつかのパラメーターがサポートされています。
アルゴリズム パラメーターの設定
SQL Server Data Tools (SSDT) のデータ マイニング デザイナーを使用して、マイニング モデルのパラメーターをいつでも変更できます。 パラメーターは、AMO の AlgorithmParameters コレクションを使用するか、XMLA で MiningModels Element (ASSL) を使用してプログラムで変更することもできます。 次の表では、各パラメーターについて説明します。
注
DMX ステートメントを使用して既存のモデルのパラメーターを変更することはできません。DMX CREATE MODEL または ALTER STRUCTURE..でパラメーターを指定する必要があります。モデルを作成するときにモデルを追加します。
最大アイテムセット数
生成するアイテムセットの最大数を指定します。 数値が指定されていない場合は、既定値が使用されます。
既定値は 200000 です。
注
アイテムセットはサポートによってランク付けされます。 同じサポートを持つアイテムセットの中で、順序は任意です。
MAXIMUM_ITEMSET_SIZE
アイテムセットで許可される項目の最大数を指定します。 この値を 0 に設定すると、アイテムセットのサイズに制限がないことを指定します。
デフォルトは3です。
注
この値を小さくすると、制限に達するとモデルの処理が停止するため、モデルの作成に必要な時間が短縮される可能性があります。
MAXIMUM_SUPPORT
アイテムセットがサポートするケースの最大数を指定します。 このパラメーターを使用すると、頻繁に出現する項目を排除できるため、意味がほとんどない可能性があります。
この値が 1 未満の場合、値はケース全体に対する割合を表します。 1 より大きい値は、アイテムセットを含むことができるケースの絶対数を表します。
既定値は 1 です。
MINIMUM_ITEMSET_SIZE
アイテムセットで許可される項目の最小数を指定します。 この数を増やすと、モデルに含まれるアイテムセットが少なくなる可能性があります。 これは、たとえば単一項目アイテムセットを無視する場合に便利です。
既定値は 1 です。
注
Analysis Services では処理の一環として単一アイテムの確率を計算する必要があるため、最小値を大きくしてモデルの処理時間を短縮することはできません。 ただし、この値を大きく設定すると、小さなアイテムセットを除外できます。
MINIMUM_PROBABILITY
ルールが true である最小確率を指定します。
たとえば、この値を 0.5 に設定した場合、確率が 50% 未満のルールを生成できないことを意味します。
既定値は 0.4 です。
MINIMUM_SUPPORT
アルゴリズムがルールを生成する前にアイテムセットを含める必要があるケースの最小数を指定します。
この値を 1 未満に設定すると、ケースの最小数がケース全体に対する割合として計算されます。
この値を 1 より大きい整数に設定した場合、アイテムセットを含める必要があるケースの数として計算されるケースの最小数を指定します。 メモリが制限されている場合、アルゴリズムによってこのパラメーターの値が自動的に増加する可能性があります。
既定値は 0.03 です。 つまり、モデルに含めるには、少なくとも 3% のケースでアイテムセットが見つかる必要があります。
OPTIMIZED_PREDICTION_COUNT
予測を最適化するためにキャッシュする項目の数を定義します。
既定値は 0 です。 既定値を使用すると、アルゴリズムはクエリで要求された数の予測を生成します。
OPTIMIZED_PREDICTION_COUNTに 0 以外の値を指定した場合、予測クエリは 、 追加の予測を要求した場合でも、指定した数のアイテムを返すことができます。 ただし、値を設定すると、予測パフォーマンスが向上する可能性があります。
たとえば、値が 3 に設定されている場合、アルゴリズムは予測のために 3 つの項目のみをキャッシュします。 返される 3 つの項目と同じ可能性がある追加の予測を確認することはできません。
モデルフラグ
次のモデリング フラグは、Microsoft アソシエーション ルール アルゴリズムで使用するためにサポートされています。
NULLなし
列に null を含めることができないことを示します。 モデルのトレーニング中に Analysis Services で null が検出された場合、エラーが発生します。
マイニング構造列に適用されます。
モデル存在のみ
つまり、列は、 Missing と Existingの 2 つの状態を持つものとして扱われます。 null は欠損値です。
マイニング モデル列に適用されます。
要求事項
関連付けモデルには、キー列、入力列、および 1 つの予測可能な列が含まれている必要があります。
入力列と予測可能列
Microsoft アソシエーション ルール アルゴリズムでは、次の表に示す特定の入力列と予測可能な列がサポートされています。 マイニング モデルのコンテンツ タイプの意味の詳細については、「 コンテンツ タイプ (データ マイニング)」を参照してください。
| コラム | コンテンツの種類 |
|---|---|
| 入力属性 | 周期的、離散的、離散化された、キー、テーブル、順序付けられた |
| 予測可能な属性 | 循環的、離散的、離散化された、表、順序付き |
注
循環コンテンツ タイプと順序付けコンテンツ タイプはサポートされていますが、アルゴリズムでは個別の値として扱われ、特別な処理は実行されません。
こちらもご覧ください
Microsoft アソシエーション アルゴリズム
アソシエーション モデル クエリの例
関連付けモデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)