次の方法で共有


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

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

Important

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

このセクションでは、クラスタリング モデルの動作を制御するために使用できるパラメーターなど、Microsoft クラスタリング アルゴリズムの実装について説明します。 また、クラスタリング モデルを作成して処理するときにパフォーマンスを向上させる方法に関するガイダンスも提供します。

クラスタリング モデルの使用方法の詳細については、次のトピックを参照してください。

Microsoft クラスタリング アルゴリズムの実装

Microsoft クラスタリング アルゴリズムには、クラスターを作成し、クラスターにデータ ポイントを割り当てるための 2 つの方法が用意されています。 1 つ目の K 平均 アルゴリズムは、ハード クラスタリング方式です。 つまり、データ ポイントは 1 つのクラスターにのみ属することができ、そのクラスター内の各データ ポイントのメンバーシップに対して 1 つの確率が計算されます。 2 つ目の方法である 、予測最大化 (EM) メソッドは、 ソフト クラスタリング 方式です。 つまり、データ ポイントは常に複数のクラスターに属し、データ ポイントとクラスターの組み合わせごとに確率が計算されます。

CLUSTERING_METHOD パラメーターを設定することで、使用するアルゴリズムを選択できます。 クラスタリングの既定の方法はスケーラブル EM です。

EM クラスタリング

EM クラスタリングでは、アルゴリズムは、データに合わせて初期クラスター モデルを繰り返し調整し、クラスター内にデータ ポイントが存在する確率を決定します。 確率論的モデルがデータに適合すると、アルゴリズムによってプロセスが終了します。 適合を決定するために使用される関数は、モデルに与えられたデータの対数尤度です。

プロセス中に空のクラスターが生成された場合、または 1 つ以上のクラスターのメンバーシップが特定のしきい値を下回った場合、作成数が少ないクラスターは新しいポイントで再シードされ、EM アルゴリズムが再実行されます。

EM クラスタリング方式の結果は確率的です。 つまり、すべてのデータ ポイントはすべてのクラスターに属していますが、クラスターへのデータ ポイントの割り当てごとに確率は異なります。 この方法ではクラスターが重複できるため、すべてのクラスター内の項目の合計がトレーニング セット内の項目の合計を超える可能性があります。 マイニング モデルの結果では、サポートを示すスコアが、これを考慮して調整されます。

EM アルゴリズムは、Microsoft クラスタリング モデルで使用される既定のアルゴリズムです。 このアルゴリズムは、k 平均クラスタリングと比較して複数の利点を提供するため、既定値として使用されます。

  • 最大で 1 つのデータベース スキャンが必要です。

  • メモリ (RAM) が限られているにもかかわらず動作します。

  • 前方専用カーソルを使用できます。

  • サンプリングアプローチよりも優れています。

Microsoft の実装には、スケーラブルな EM と非スケーラブルな EM の 2 つのオプションが用意されています。 既定では、スケーラブル EM では、最初の 50,000 レコードを使用して初期スキャンがシード処理されます。 これが成功した場合、モデルはこのデータのみを使用します。 50,000 個のレコードを使用してモデルを適合できない場合は、追加の 50,000 レコードが読み取られます。 スケーラブルでない EM では、サイズに関係なくデータセット全体が読み取られます。 この方法では、より正確なクラスターが作成される場合がありますが、メモリ要件が大きくなる可能性があります。 スケーラブルな EM はローカル バッファーで動作するため、データの反復処理ははるかに高速であり、アルゴリズムは非スケーラブル EM よりも CPU メモリ キャッシュをはるかに適切に使用します。 さらに、すべてのデータがメイン メモリに収まる場合でも、スケーラブル EM は非スケーラブル EM の 3 倍高速になります。 ほとんどの場合、パフォーマンスが向上しても、完全なモデルの品質が低下することはありません。

Microsoft クラスタリング アルゴリズムでの EM の実装について説明するテクニカル レポートについては、「 EM (予測最大化) クラスタリングを大規模データベースにスケーリングする」を参照してください。

K-Means クラスタリング

K 平均クラスタリングは、クラスター間の距離を最大化しながら、クラスター内の項目間の違いを最小限に抑えることで、クラスター メンバーシップを割り当てるよく知られた方法です。 k 平均の "平均" は、クラスターの 重心 を指します。これは、クラスター内のすべてのデータ ポイントの真の平均を表すまで任意に選択され、反復的に調整されるデータ ポイントです。 "k" は、クラスタリング プロセスのシード処理に使用される任意の数のポイントを指します。 k 平均アルゴリズムは、クラスター内のデータ レコードとクラスター平均を表すベクトルの間の二乗ユークリッド距離を計算し、その合計が最小値に達すると最終的な k 個のクラスターセットに収束します。

k-means アルゴリズムは、各データ ポイントを 1 つのクラスターに正確に割り当てます。メンバーシップの不確定性を許容しません。 クラスターのメンバーシップは、重心からの距離として表されます。

通常、k 平均アルゴリズムは、平均までの距離の計算が簡単な連続属性のクラスターを作成するために使用されます。 ただし、Microsoft の実装では、確率を使用して、k-means メソッドを個別の属性をクラスター化するように調整します。 不連続属性の場合、特定のクラスターからのデータ ポイントの距離は次のように計算されます。

1 - P(データ ポイント、クラスター)

Microsoft クラスタリング アルゴリズムでは、k 平均の計算で使用される距離関数は公開されず、距離の測定値は完成したモデルには含まれていません。 ただし、予測関数を使用すると、距離に対応する値を返すことができます。距離は、クラスターに属するデータ ポイントの確率として計算されます。 詳細については、「 ClusterProbability (DMX)」を参照してください。

k-means アルゴリズムは、データ セットをサンプリングする 2 つの方法を提供します。非スケーラブルな K 平均は、データ セット全体を読み込み、1 つのクラスタリング パスを作成する方法と、スケーラブルな k 平均です。この場合、アルゴリズムは最初の 50,000 ケースを使用し、より多くのケースを読み取ります。データに適したモデルを実現するためにより多くのデータが必要な場合にのみ読み取ります。

SQL Server 2008 での Microsoft クラスタリング アルゴリズムの更新

SQL Server 2008 では、内部パラメーター NORMALIZATION = 1 を使用するように Microsoft クラスタリング アルゴリズムの既定の構成が変更されました。 正規化は z スコア統計を使用して実行され、正規分布を前提としています。 この既定の動作の変更の目的は、大きさが大きく、外れ値が多い属性の影響を最小限に抑えることです。 ただし、z スコア正規化では、正規ではない分布 (均一分布など) のクラスタリング結果が変更される可能性があります。 正規化を防ぎ、SQL Server 2005 の K 平均クラスタリング アルゴリズムと同じ動作を得るために、[ パラメーター設定] ダイアログ ボックスを使用してカスタム パラメーター NORMALIZATION を追加し、その値を 0 に設定できます。

NORMALIZATION パラメーターは、Microsoft クラスタリング アルゴリズムの内部プロパティであり、サポートされていません。 一般に、モデルの結果を向上させるには、クラスタリング モデルで正規化を使用することをお勧めします。

Microsoft クラスタリング アルゴリズムのカスタマイズ

Microsoft クラスタリング アルゴリズムでは、結果として得られるマイニング モデルの動作、パフォーマンス、精度に影響を与えるいくつかのパラメーターがサポートされています。

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

次の表では、Microsoft クラスタリング アルゴリズムで使用できるパラメーターについて説明します。 これらのパラメーターは、結果として得られるマイニング モデルのパフォーマンスと精度の両方に影響します。

クラスタリング手法
使用するアルゴリズムのクラスタリング方法を指定します。 次のクラスタリング方法を使用できます。

ID メソッド
1 スケーラブル EM
2 スケーラビリティのない EM
3 スケーラブルな K-Means
4 スケーラブルでない K 平均。

既定値は 1 (スケーラブル EM) です。

CLUSTER_COUNT
アルゴリズムによって構築されるクラスターの概数を指定します。 クラスターの概数をデータから構築できない場合、アルゴリズムはできるだけ多くのクラスターを構築します。 CLUSTER_COUNTを 0 に設定すると、アルゴリズムはヒューリスティックを使用して、構築するクラスターの数を最適に決定します。

既定値は 10 です。

CLUSTER_SEED
モデル構築の初期段階でクラスターをランダムに生成するために使用されるシード番号を指定します。

この数を変更することで、初期クラスターの構築方法を変更し、異なるシードを使用して構築されたモデルを比較できます。 シードが変更されても、検出されたクラスターが大きく変化しない場合、モデルは比較的安定していると見なすことができます。

既定値は 0 です。

MINIMUM_SUPPORT
クラスターの構築に必要なケースの最小数を指定します。 クラスター内のケースの数がこの数より少なければ、クラスターは空として扱われ、破棄されます。

この数を大きすぎると、有効なクラスターが見落とされる可能性があります。

既定のクラスタリング方法である EM を使用する場合、一部のクラスターのサポート値が指定された値より小さい場合があります。 これは、可能なすべてのクラスターのメンバーシップについて各ケースが評価され、一部のクラスターではサポートが最小限に抑えられる場合があるためです。

既定値は 1 です。

MODELLING_CARDINALITY
クラスタリング プロセス中に構築されるサンプル モデルの数を指定します。

候補モデルの数を減らすと、適切な候補モデルが不足するリスクがある場合にパフォーマンスが向上する可能性があります。

既定値は 10 です。

**停止許容誤差**
収束に達し、アルゴリズムがモデルの構築を完了するタイミングを決定するために使用される値を指定します。 クラスターの確率の全体的な変化が、STOPPING_TOLERANCE パラメーターの比率をモデルのサイズで割った割合よりも小さい場合、収束に達します。

既定値は 10 です。

サンプルサイズ
CLUSTERING_METHOD パラメーターがスケーラブルなクラスタリングメソッドのいずれかに設定されている場合に、各パスでアルゴリズムが使用するケースの数を指定します。 SAMPLE_SIZE パラメーターを 0 に設定すると、データセット全体が 1 つのパスにクラスター化されます。 データセット全体を 1 つのパスに読み込むと、メモリとパフォーマンスの問題が発生する可能性があります。

既定値は 50000 です。

MAXIMUM_INPUT_ATTRIBUTES
アルゴリズムが機能選択を呼び出す前に処理できる入力属性の最大数を指定します。 この値を 0 に設定すると、属性の最大数がないことを指定します。

属性の数を増やすと、パフォーマンスが大幅に低下する可能性があります。

既定値は 255 です。

MAXIMUM_STATES
アルゴリズムがサポートする属性状態の最大数を指定します。 属性の状態が最大値を超える場合、アルゴリズムでは最も一般的な状態が使用され、残りの状態は無視されます。

状態の数を増やすと、パフォーマンスが大幅に低下する可能性があります。

既定値は、100 です。

モデリング フラグ

このアルゴリズムでは、次のモデリング フラグがサポートされています。 マイニング構造またはマイニング モデルを作成するときに、モデリング フラグを定義します。 モデリング フラグは、分析中に各列の値を処理する方法を指定します。

モデリングフラグ Description
MODEL_EXISTENCE_ONLY 列は、次の 2 つの可能な状態を持つものとして扱われます: Missing と Existing。 null は欠損値です。

マイニング モデル列に適用されます。
非NULL 列に null を含めることはできません。 モデルのトレーニング中に Analysis Services で null が検出された場合、エラーが発生します。

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

Requirements

クラスタリング モデルには、キー列と入力列が含まれている必要があります。 また、入力列を予測可能として定義することもできます。 [予測のみ] に設定された列は、クラスターの構築には使用されません。 クラスター内のこれらの値の分布は、クラスターの構築後に計算されます。

入力列と予測可能列

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

コラム コンテンツの種類
入力属性 連続、周期的、離散、離散化、キー、テーブル、順序付き
予測可能な属性 連続、循環的、離散、離散化された、テーブル、順序付き

循環コンテンツ タイプと順序付けコンテンツ タイプはサポートされていますが、アルゴリズムでは個別の値として扱われ、特別な処理は実行されません。

こちらもご覧ください

Microsoft クラスタリング アルゴリズム
クラスタリング モデル クエリの例
クラスタリング モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)