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 提供了以下可用于查询聚类分析模型的函数:
使用 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 |
若要查看是哪个分类,可以替换上一示例中的 ClusterDistance 替换为 Cluster。
示例结果:
$CLUSTER |
---|
Cluster 6 |
示例 2:获取到指定分类的距离
下面的语句使用挖掘模型内容架构行集返回挖掘模型中分类的节点 ID 和节点标题的列表。 然后,就可以将所返回的节点标题用作 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 |