次の方法で共有


ClusterDistance (DMX)

ClusterDistance 関数は、指定したクラスタと入力したケース間の距離を返します。ただしクラスタが指定されていない場合は、最も可能性の高いクラスタと入力したケース間の距離を返します。

構文

ClusterDistance([<ClusterID expression>])

適用対象

この関数は、基本となるデータ マイニング モデルがクラスタをサポートする場合にのみ使用できます。この関数はどの種類のクラスタ モデル (EM、K-Means など) でも使用できますが、アルゴリズムによって結果が異なります。

戻り値の型

スカラ値です。

説明

ClusterDistance 関数は、入力したケースと、その入力したケースに対して最も可能性の高いクラスタとの距離を返します。

K-Means クラスタリングの場合、どのケースも所属できるのは、メンバシップの重みが 1.0 のクラスタ 1 つだけなので、クラスタの距離は常に 0 になります。ただし、K-Means では、各クラスタに重心があると想定されています。マイニング モデル コンテンツ内の入れ子になったテーブル NODE_DISTRIBUTION をクエリしたり参照したりして、重心の値を取得できます。詳細については、「クラスタ モデルのマイニング モデル コンテンツ (Analysis Services - データ マイニング)」を参照してください。

既定の EM クラスタリング手法の場合、クラスタ内のすべてのポイントは同程度であると見なされるため、仕様上、クラスタには重心がありません。特定のケースと特定のクラスタ N の間の ClusterDistance の値は次のように計算されます。

ClusterDistance(N) =1–(membershipWeight(N))

または

ClusterDistance(N) =1–ClusterProbability (N))

関連する予測関数

Analysis Services には、クラスタ モデルに対してクエリを実行するために、次に示す追加の関数が用意されています。

  • Cluster (DMX) 関数を使用して、最も可能性の高いクラスタを返します。

  • ClusterProbability (DMX) 関数を使用して、ケースが特定のクラスタに属している可能性を取得します。この値は、クラスタとの距離とは逆の関係になります。

  • PredictHistogram (DMX) 関数を使用して、入力したケースが各モデルのクラスタに存在している可能性を示すヒストグラムを返します。

  • PredictCaseLikelihood (DMX) 関数を使用して、アルゴリズムによって学習されたモデルを考慮した上で入力したケースが存在する可能性を示す測定値を 0 ~ 1 で返します。

例 1: 最も可能性の高いクラスタまでのクラスタの距離の取得

次の例は、指定したケースから、そのケースが最も所属している可能性の高いクラスタまでの距離を返します。

SELECT
    ClusterDistance()
FROM
    [TM Clustering]
NATURAL PREDICTION JOIN
(SELECT 28 AS [Age],
    '2-5 Miles' AS [Commute Distance],
    'Graduate Degree' AS [Education],
    0 AS [Number Cars Owned],
    0 AS [Number Children At Home]) AS t

例の結果を次に示します。

Expression

0.0477390930705145

これがどのクラスタであるかを確認するには、上記の例で ClusterDistance の代わりに Cluster を使用します。

例の結果を次に示します。

$CLUSTER

Cluster 6

例 2: 指定したクラスタまでの距離の取得

次の構文では、マイニング モデル コンテンツ スキーマ行セットを使用して、マイニング モデル内のクラスタのノードの ID とノードのキャプションの一覧を返します。その後、ClusterDistance 関数では、ノードのキャプションをクラスタ ID の引数として使用できます。

SELECT NODE_UNIQUE_NAME, NODE_CAPTION 
FROM <model>.CONTENT 
WHERE NODE_TYPE = 5

例の結果を次に示します。

NODE_UNIQUE_NAME

NODE_CAPTION

001

Cluster 1

002

Cluster 2

次の構文例では、Cluster 2 というラベルが付いたクラスタから、指定されたケースまでの距離が返されます。

SELECT
    ClusterDistance('Cluster 2')
AS [Cluster 2 Distance]
FROM [TM Clustering]
NATURAL PREDICTION JOIN
(SELECT 28 AS [Age],
    '2-5 Miles' AS [Commute Distance],
    'Graduate Degree' AS [Education],
    0 AS [Number Cars Owned],
    0 AS [Number Children At Home]) AS t

例の結果を次に示します。

Cluster 2 Distance

0.97008209236394