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 |