Microsoft 聚类分析算法

Microsoft 聚类分析算法是由 Microsoft SQL Server 2005 Analysis Services (SSAS) 提供的分段算法。该算法使用迭代技术将数据集中的事例分组为包含类似特征的分类。在浏览数据、标识数据中的异常及创建预测时,这些分组十分有用。

聚类分析模型标识数据集中可能无法通过随意观察在逻辑上得出的关系。例如,在逻辑上可以得知,骑自行车上下班的人的居住地点通常离其工作地点不远。但该算法可以找出有关骑自行车上下班人员的其他并不明显的特征。在下面的关系图中,分类 A 表示有关通常开车上班人员的数据,而分类 B 表示通常骑自行车上班人员的数据。

往返式群集模式

聚类分析算法不同于 Microsoft 决策树算法等其他数据挖掘算法,区别在于无需指定可预测列便能生成聚类分析模型。聚类分析算法严格地根据数据以及该算法所标识的分类中存在的关系定型。

示例

考虑这样一组人员,他们共享类似的人口统计信息并从 Adventure Works 公司购买类似的产品。这组人员就表示一个数据分类。数据库中可能存在多个这样的分类。通过观察构成分类的各列,可以更清楚地了解数据集中的记录如何相互关联。

算法的原理

Microsoft 聚类分析算法首先标识数据集中的关系并根据这些关系生成一系列分类。散点图是一种非常有用的方法,可以直观地表示算法如何对数据进行分组,如下面的关系图所示。散点图可以表示数据集中的所有事例,在该图中每个事例就是一个点。分类对该图中的点进行分组并阐释该算法所标识的关系。

数据集中事例的散点图

在最初定义分类后,算法将通过计算确定分类表示点分组情况的适合程度,然后尝试重新定义这些分组以创建可以更好地表示数据的分类。该算法将循环执行此过程,直到它不能再通过重新定义分类来改进结果为止。

Microsoft 聚类分析算法提供下列两种方法来计算点在分类中的适合程度:Expectation Maximization (EM) 和 K-Means。对于 EM 聚类分析,该算法使用一种统计方法来确定分类中存在数据点的概率。对于 K-Means,该算法使用距离度量值将数据点分配给其最接近的分类。

生成分类时不使用其用法设置为只预测的列。在生成分类后,将计算这些列在分类中的分布。

有关 Microsoft 聚类分析算法工作原理的更详细说明,请参阅 Scaling EM (Expectation Maximization) Clustering to Large Databases

使用算法

聚类分析模型必须包含一个键列和若干输入列。还可以将输入列定义为可预测列。

该算法支持特定输入列内容类型、可预测列内容类型和建模标志,如下表所示。

输入列内容类型

Continuous、Cyclical、Discrete、Discretized、Key、Table 和 Ordered

可预测列内容类型

Continuous、Cyclical、Discrete、Discretized、Table 和 Ordered

建模标志

MODEL_EXISTENCE_ONLY 和 NOT NULL

所有 Microsoft 算法均支持一些通用的函数。但是,Microsoft 聚类分析算法还支持下表中列出的其他函数。

Cluster

PredictCaseLikelihood

ClusterProbability

PredictNodeId

IsDescendant

PredictProbability

IsInNode

PredictStdev

PredictAdjustedProbability

PredictSupport

PredictAssociation

PredictVariance

PredictHistogram

 

有关对所有 Microsoft 算法都通用的函数列表,请参阅数据挖掘算法。有关如何使用这些函数的详细信息,请参阅数据挖掘扩展插件 (DMX) 函数参考

Microsoft 聚类分析算法支持使用预测模型标记语言 (PMML) 创建挖掘模型。

Microsoft 聚类分析算法支持多个参数,这些参数会对所生成的挖掘模型的性能和准确性产生影响。下表对各参数进行了说明:

参数 说明

CLUSTERING_METHOD

指定算法要使用的聚类分析方法。有下列聚类分析方法可用:scalable EM (1)、non-scalable EM (2)、scalable K-Means (3) 和 non-scalable K-Means (4)。

默认值为 1。

CLUSTER_COUNT

指定将由算法生成的大致分类数。如果无法基于相应的数据生成该大致数目的分类,则算法将生成尽可能多的分类。如果将 CLUSTER_COUNT 设置为 0,则算法将使用试探性方法最准确地确定要生成的分类数。

默认值为 10。

CLUSTER_SEED

指定在为建模初始阶段随机生成分类时所要使用的种子数字。

默认值为 0。

MINIMUM_SUPPORT

指定每个分类中的最小事例数。

默认值为 1。

MODELLING_CARDINALITY

指定在聚类分析过程中构建的示例模型数。

默认值为 10。

STOPPING_TOLERANCE

指定一个值,它可确定何时达到收敛而且算法完成建模。当分类概率中的整体变化小于 STOPPING_TOLERANCE 参数与模型大小之比时,即达到收敛。

默认值为 10。

SAMPLE_SIZE

如果 CLUSTERING_METHOD 参数设置为其中一个可缩放聚类分析方法,请指定算法在每个传递中使用的事例数。如果将 SAMPLE_SIZE 参数设置为 0,则会在单个传递中对整个数据集进行聚类分析操作,从而导致内存和性能问题。

默认值为 50000。

MAXIMUM_INPUT_ATTRIBUTES

指定算法在调用功能选择之前可以处理的最大输入属性数。如果将此值设置为 0,则指定不限制输入属性的最大数量。

默认值为 255。

MAXIMUM_STATES

指定算法支持的最大属性状态数。如果属性的状态数大于该最大状态数,算法将使用该属性的最常见状态,同时忽略剩余状态。

默认值为 100。

请参阅

概念

数据挖掘算法
数据挖掘向导
数据挖掘中的功能选择
使用数据挖掘工具
使用 Microsoft 分类查看器查看挖掘模型

其他资源

CREATE MINING MODEL (DMX)

帮助和信息

获取 SQL Server 2005 帮助