共用方式為


ClusterDistance (DMX)

ClusterDistance 函數會傳回輸入案例與指定之群集的距離;如果沒有指定任何群集,則會傳回輸入案例與最可能之群集的距離。

語法

ClusterDistance([<ClusterID expression>])

適用於

唯有基礎資料採礦模型支援群集時,才能使用這個函數。此函數可以搭配任何種類的群集模型 (EM、K-Means 等等) 使用,但是結果會隨著演算法而有所不同。

傳回類型

純量值。

備註

ClusterDistance 函數會傳回輸入案例與該輸入案例機率最高之群集間的距離。

如果是 K-Means 群集,由於任何案例都可能僅屬於一個群集,而且成員資格加權為 1.0,則群集距離永遠為 0。不過,在 K-Means 中,系統會假設每個群集都有一個距心。您可以在採礦模型內容中,查詢或瀏覽 NODE_DISTRIBUTION 巢狀資料表來取得距心的值。如需詳細資訊,請參閱<群集模型的採礦模型內容 (Analysis Services - 資料採礦)>。

如果是預設的 EM 群集方法,群集內部所有的點都會被視為可能性相等,因此,根據設計,沒有用於群集的距心。在特定案例與特定群集 N 之間的 ClusterDistance 值,其計算方式如下:

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

或:

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

相關的預測函數

Analysis Services 提供下列額外的函數來查詢群集模型:

  • 使用 群集 (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

範例結果:

運算式

0.0477390930705145

若要找出這是哪個群集,您可以將 Cluster 替代為先前範例中的 ClusterDistance。

範例結果:

$CLUSTER

Cluster 6

範例 2:取得指定之群集的距離

下列語法使用採礦模型內容結構描述資料列集,傳回節點識別碼的清單,以及採礦模型中之群集的節點標題。接著,您可以使用節點標題,做為 ClusterDistance 函數中的群集識別碼引數。

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