ClusterDistance (DMX)
適用於: SQL Server Analysis Services
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 提供下列用於查詢叢集模型的其他函式:
使用 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
範例結果︰
運算式 |
---|
0.0477390930705145 |
若要找出這是哪一個叢集,您可以在上述範例中取代 Cluster
ClusterDistance
。
範例結果︰
$CLUSTER |
---|
叢集 6 |
範例 2:取得指定叢集的距離
下列語法會使用採礦模型內容架構數據列集來傳回採礦模型中叢集的節點標識碼和節點標題清單。 接著,您可以使用節點標題作為ClusterDistance函式中的叢集標識元自變數。
SELECT NODE_UNIQUE_NAME, NODE_CAPTION
FROM <model>.CONTENT
WHERE NODE_TYPE = 5
範例結果︰
NODE_UNIQUE_NAME | NODE_CAPTION |
---|---|
001 | 叢集 1 |
002 | 叢集 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
範例結果︰
叢集 2 距離 |
---|
0.97008209236394 |
另請參閱
叢集 (DMX)
數據採礦延伸模組 (DMX) 函式參考
函式 (DMX)
叢集模型的採礦模型內容 (Analysis Services - 數據採礦)