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 提供以下用于查询聚类分析模型的其他函数:

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

若要查看是哪个分类,可以替换上一示例中的 Cluster 替换为 ClusterDistance

示例结果:

$CLUSTER
分类 6

示例 2:获取到指定分类的距离

下面的语句使用挖掘模型内容架构行集返回挖掘模型中分类的节点 ID 和节点标题的列表。 然后,可以使用节点标题作为 ClusterDistance 函数中的群集标识符参数。

SELECT NODE_UNIQUE_NAME, NODE_CAPTION   
FROM <model>.CONTENT   
WHERE NODE_TYPE = 5  

示例结果:

NODE_UNIQUE_NAME NODE_CAPTION
001 分类 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

另请参阅

群集(DMX)
数据挖掘扩展插件 (DMX) 函数参考
函数 (DMX)
聚类分析模型的挖掘模型内容(Analysis Services - 数据挖掘)