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 |