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
示例结果:
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 - 数据挖掘)