ClusterDistance (DMX)

適用于:SQL Server Analysis Services

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

Syntax

  
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 提供下列用於查詢叢集模型的額外功能:

範例 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  

範例結果︰

Cluster 2 Distance
0.97008209236394

另請參閱

群集 (DMX)
資料採礦延伸模組 (DMX) 函數參考
函數 (DMX)
叢集模型的採礦模型內容 (Analysis Services - 資料採礦)