Microsoft シーケンス クラスタリング アルゴリズム テクニカル リファレンス

適用対象:SQL Server 2019 以前の Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

データ マイニングは SQL Server 2017 Analysis Services で非推奨となり、SQL Server 2022 Analysis Services で停止されました。 非推奨および停止された機能については、ドキュメントの更新は行われません。 詳細については、「Analysis Services 下位互換性」を参照してください。

Microsoft シーケンス クラスター アルゴリズムは、複合的なアルゴリズムです。このアルゴリズムでは、Markov 連鎖分析を使用して順序付けられたシーケンスを特定し、この分析結果とクラスタリング技法を組み合わせて、シーケンスおよびモデル内のその他の属性に基づいてクラスターを生成します。 このトピックでは、アルゴリズムの実装、アルゴリズムをカスタマイズする方法、およびシーケンス クラスター モデルの特別な要件について説明します。

シーケンス クラスター モデルの参照およびクエリを行う方法を含む、アルゴリズムに関する一般的な情報については、「 Microsoft Sequence Clustering Algorithm」をご覧ください。

Microsoft シーケンス クラスター アルゴリズムの実装

Microsoft シーケンス クラスター モデルでは、Markov モデルを使用して、シーケンスの特定やシーケンスの確率の決定を行います。 Markov モデルは、さまざまな状態の間の遷移を格納する有向グラフです。 Microsoft シーケンス クラスター アルゴリズムでは n 次 Markov 連鎖を使用します。隠れ Markov モデルは使用しません。

Markov 連鎖の次数は、現在の状態の確率を決定するために使用される状態の数を示しています。 1 次 Markov モデルでは、現在の状態の確率は直前の状態のみに依存します。 2 次 Markov 連鎖では、状態の確率は前の 2 つの状態に依存し、以下同様に増えていきます。 Markov 連鎖ごとに、状態の各組み合わせの遷移が遷移マトリックスに格納されます。 Markov 連鎖が長くなるにつれ、マトリックスのサイズも指数関数的に大きくなり、マトリックスが非常に疎になります。 処理時間も比例して長くなります。

特定のサイトの Web ページへのアクセスを分析するクリックストリーム分析の例を使用して、連鎖がどうなるかを思い浮かべてみるとわかりやすくなります。 各ユーザーによって、セッションごとにクリックの長いシーケンスが作成されます。 Web サイトでのユーザーの行動を分析するモデルを作成する場合、トレーニングに使用するデータセットは、同じクリック パスのインスタンスの総数を含むグラフに変換される URL のシーケンスです。 たとえば、このグラフには、ユーザーがページ 1 からページ 2 に移動する確率 (10%)、ユーザーがページ 1 からページ 3 に移動する確率 (20%) などが含まれます。 すべての有効なパスおよび部分的なパスを合わせると、いずれか 1 つのパスを監視する場合よりもずっと長く複雑なグラフになります。

既定では、Microsoft シーケンス クラスター アルゴリズムではクラスタリングの Expectation Maximization (EM) 手法を使用します。 詳細については、「 Microsoft クラスタリング アルゴリズム テクニカル リファレンス」を参照してください。

クラスタリングの対象の属性は、シーケンシャルかどうかに依存しません。 各クラスターは、確率分布を使用してランダムに選択されます。 各クラスターには、パスの完全なセットを表す Markov 連鎖、およびシーケンスの状態遷移と確率を含むマトリックスがあります。 初期分布に基づいて、特定のクラスターで、シーケンスなど任意の属性の確率が Bayes ルールを使用して計算されます。

Microsoft シーケンス クラスター アルゴリズムでは、モデルへの非シーケンシャル属性の追加がサポートされています。 つまり、一般的なクラスター モデルの場合と同様に、追加属性をシーケンス属性と組み合わせて、類似する属性を含むケースのクラスターを作成できます。

傾向として、シーケンス クラスター モデルでは、一般的なクラスター モデルより多くのクラスターを作成します。 そのため、Microsoft シーケンス クラスター アルゴリズムでは、 クラスター分解を実行して、シーケンスやその他の属性に基づいてクラスターを分割します。

シーケンス クラスター モデルでの機能の選択

シーケンスの作成時には機能の選択は実行されません。ただし、クラスタリングの段階で機能の選択が適用されます。

モデルの種類 機能の選択の方法 説明
シーケンス クラスター 使用されていない 機能の選択は実行されません。ただし、パラメーター MINIMUM_SUPPORT および MINIMUM_PROBABILIITY の値を設定することによってアルゴリズムの動作を制御できます。
クラスタリング 興味深さのスコア クラスタリング アルゴリズムでは不連続のアルゴリズムや分離されたアルゴリズムを使用できますが、各属性のスコアは距離として計算されるため連続値です。したがって、興味深さのスコアが使用されます。

詳しくは、「 Feature Selection」をご覧ください。

パフォーマンスの最適化

Microsoft シーケンス クラスター アルゴリズムでは、処理を最適化するさまざまな方法がサポートされています。

  • CLUSTER_COUNT パラメーターの値を設定すると、生成されるクラスターの数を制御できます。

  • MINIMUM_SUPPORT パラメーターの値を増やすと、属性として含まれるシーケンスの数を減らすことができます。 その結果、頻度の低いシーケンスが除外されます。

  • 関連属性をグループ化すると、モデルを処理する前に複雑さを軽減できます。

通常、いくつかの方法で、n 次 Markov 連鎖モードのパフォーマンスを最適化できます。

  • 可能なシーケンスの長さを制御します。

  • n の値をプログラムによって小さくします。

  • 指定したしきい値を超える確率のみを格納します。

これらの方法の詳細については、このトピックでは説明しません。

シーケンス クラスター アルゴリズムのカスタマイズ

Microsoft シーケンス クラスタリング アルゴリズムでは、結果として得られるマイニング モデルの動作、パフォーマンス、精度に影響を与えるパラメーターがサポートされています。 また、アルゴリズムによるトレーニング データの処理方法を制御するモデリング フラグを設定して、完成したモデルの動作を変更することもできます。

アルゴリズム パラメーターの設定

次の表は、Microsoft シーケンス クラスター アルゴリズムで使用できるパラメーターを示しています。

CLUSTER_COUNT
アルゴリズムによって作成されるクラスターの概数を指定します。 その数のクラスターをデータから作成できない場合は、可能な限り多数のクラスターが作成されます。 CLUSTER_COUNT パラメーターを 0 に設定すると、アルゴリズムではヒューリスティックを使用して、作成するクラスターの数が最適に決定されます。

既定値は 10 です。

注意

0 以外の数値を指定すると、アルゴリズムへのヒントとして機能します。アルゴリズムでは指定の数を取得することを目標に処理が進められますが、指定の数以外になる場合もあります。

MINIMUM_SUPPORT
クラスターの作成に必要とされる、属性をサポートするケースの最小数を指定します。

既定値は 10 です。

MAXIMUM_SEQUENCE_STATES
シーケンスの状態の最大数を指定します。

この値を 100 より大きい数値に設定すると、アルゴリズムは意味のある情報を提供するモデルを作成できなくなります。

既定値は、64 です。

MAXIMUM_STATES
アルゴリズムによってサポートされる非シーケンス属性用の状態の最大数を指定します。 非シーケンス属性の状態の数が状態の最大数を超える場合、アルゴリズムは属性の最も一般的な状態を使用し、残りの状態を Missing として扱います。

既定値は 100 です。

ModelingFlags

次のモデリング フラグは、Microsoft シーケンス クラスタリング アルゴリズムで使用するためにサポートされています。

NOT NULL
列に NULL を含めることはできないことを示します。 モデルのトレーニング中に NULL が検出された場合はエラーが発生します。

マイニング構造列に適用されます。

MODEL_EXISTENCE_ONLY
列が、 Missing および Existingの 2 つの可能な状態を持つ列として扱われることを示します。 NULL は Missing 値として扱われます。

マイニング モデル列に適用されます。

マイニング モデルでの欠損値の使用と、欠損値が確率スコアに与える影響の詳細については、「 欠損値 (Analysis Services - データ マイニング)」を参照してください。

要件

ケース テーブルにはケース ID 列が必要です。 オプションで、ケースに関する属性を格納する他の列をケース テーブルに含めることができます。

Microsoft シーケンス クラスター アルゴリズムには、入れ子になったテーブルとして格納されるシーケンス情報が必要です。 入れ子になったテーブルには、1 つの Key Sequence 列が必要です。 Key Sequence 列には、文字列データ型など、並べ替え可能な任意の型のデータを含めることができますが、ケースごとに一意の値を含める必要があります。 さらに、モデルを処理する前に、ケース テーブルと入れ子になったテーブルの両方が、テーブルを関連付けるキーに基づいて昇順に並べ替えられていることを確認する必要があります。

注意

Microsoft シーケンス アルゴリズムを使用するがシーケンス列は使用しないモデルを作成する場合、結果として得られるモデルでは、シーケンスが含まれるのではなく、モデルに含まれている他の属性に基づいてケースがクラスター化されるだけです。

入力列と予測可能列

Microsoft シーケンス クラスタリング アルゴリズムでは、次の表に示す特定の入力列と予測可能な列がサポートされています。 マイニング モデルで使用する場合のコンテンツ タイプの意味の詳細については、「 コンテンツ タイプ (データ マイニング)」を参照してください。

コンテンツの種類
入力属性 Continuous、Cyclical、Discrete、Discretized、Key、Key Sequence、Table、Ordered
予測可能な属性 Continuous、Cyclical、Discrete、Discretized、Table、Ordered

注釈

  • シーケンスの 予測には PredictSequence (DMX) 関数を使用します。 シーケンス予測をサポートするSQL Serverのエディションの詳細については、「SQL Server 2012 のエディションでサポートされる機能 (https://go.microsoft.com/fwlink/?linkid=232473)」を参照してください。

  • Microsoft シーケンス クラスタリング アルゴリズムでは、予測モデル マークアップ言語 (PMML) を使用してマイニング モデルを作成することはできません。

  • Microsoft シーケンス クラスタリング アルゴリズムでは、ドリルスルー、OLAP マイニング モデルの使用、データ マイニング ディメンションの使用がサポートされています。

参照

Microsoft シーケンス クラスタリング アルゴリズム
Sequence Clustering Model Query Examples
シーケンス クラスター モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)