序列聚类模型内容的挖掘(Analysis Services - 数据挖掘)

本主题介绍特定于使用Microsoft序列聚类分析算法的模型的挖掘模型内容。 有关适用于所有模型类型的挖掘模型内容的常规和统计术语的说明,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。

了解序列聚类分析模型的结构

序列聚类分析模型具有表示模型及其元数据的单个父节点(NODE_TYPE = 1)。 标记为 (All)的父节点具有一个相关的序列节点(NODE_TYPE = 13),其中列出了训练数据中检测到的所有转换。

序列聚类模型的结构

该算法还会根据数据中找到的转换以及创建模型时包括的任何其他输入属性(例如客户人口统计等)创建多个分类。 每个群集(NODE_TYPE = 5)都包含自己的序列节点(NODE_TYPE = 13),该节点仅列出生成该特定群集时使用的转换。 在序列节点中,可以向下钻取以查看各个状态转换的详细信息(NODE_TYPE = 14)。

有关序列和状态转换的说明,以及示例,请参阅 Microsoft序列聚类分析算法

序列聚类分析模型的模型内容

本部分提供有关挖掘模型内容中与序列聚类分析具有特定相关性的列的其他信息。

模型目录
存储模型的数据库的名称。

MODEL_NAME
模型的名称。

属性名称
始终为空。

NODE_NAME
节点的名称。 当前的值与NODE_UNIQUE_NAME相同。

NODE_UNIQUE_NAME
节点的唯一名称。

节点类型
序列聚类分析模型输出以下节点类型:

节点类型 ID DESCRIPTION
1 (模型) 模型的根节点
5 (群集) 包含群集中的转换计数、属性列表和描述群集中的值的统计信息。
13 (序列) 包含群集中包含的转换列表。
14 (过渡) 将事件序列描述为一个表,其中第一行包含起始状态,所有其他行包含连续状态,以及支持和概率统计信息。

NODE_GUID
空白。

节点标题
用于显示目的的标签或与节点关联的标题。

使用模型时,可以重命名群集标题;但是,如果关闭模型,则不会保留新名称。

儿童基数
估计节点具有的子级数。

模型根 基数值等于聚类数加 1。 有关详细信息,请参阅 基数

群集节点 基数始终为 1,因为每个群集都有一个子节点,其中包含群集中的序列列表。

序列节点 基数指示该群集中包含的转换数。 例如,模型根的序列节点基数指示在整个模型中找到多少个转换。

父级唯一名称
节点父级的唯一名称。

根级别的任何节点都返回 NULL。

节点描述
与节点标题相同。

NODE_RULE
始终为空。

边际规则
始终为空。

节点概率
模型根 始终为 0。

群集节点 模型中群集的调整概率。 调整后的概率不等于 1,因为序列聚类中使用的方法允许多个聚类中的部分隶属。

序列节点 始终为 0。

转换节点 始终为 0。

边际概率
模型根 始终为 0。

群集节点 与NODE_PROBABILITY相同的值。

序列节点 始终为 0。

转换节点 始终为 0。

节点分布
包含概率和其他信息的表。 有关详细信息,请参阅 NODE_DISTRIBUTION表

节点支持
支持此节点的迁移次数。 因此,如果在训练数据中有 30 个序列“产品 A 后跟随产品 B”的示例,则总支持为 30。

模型根 模型中的转换总数。

群集节点 对群集的原始支持,这意味着为此群集提供事例的训练事例数。

序列节点 始终为 0。

转换节点 表示特定转换的群集中事例的百分比。 可以是 0,也可以具有正值。 通过获取集群节点的原始支持并乘以集群的概率来计算。

从这个值可以判断有多少个训练事例促成了这种转换。

MSOLAP_MODEL_COLUMN
不適用。

MSOLAP_NODE_SCORE
不適用。

MSOLAP_NODE_SHORT_CAPTION
与NODE_DESCRIPTION相同。

了解序列、状态和转换

序列聚类分析模型具有一个独特的结构,它将两种类型的对象与非常不同的信息类型组合在一起:第一种是聚类,第二种是状态转换。

按顺序聚类分析创建的群集类似于Microsoft聚类分析算法创建的群集。 每个群集都有一个配置文件和特征。 但是,在顺序聚类分析中,每个群集还包含一个列出该群集中的序列的单个子节点。 每个序列节点都包含多个子节点,这些子节点详细描述了状态转换,并具有概率。

模型中的序列几乎总是比在任何单个情况下都能找到的序列多,因为序列可以链接在一起。 Microsoft Analysis Services 将指针从一个状态存储到另一个状态,以便可以计算每次转换发生的次数。 还可以查找有关序列发生次数的信息,并测量其发生概率与整个观察状态集相比。

下表总结了如何在模型中存储信息,以及节点的相关方式。

节点 具有子节点 NODE_DISTRIBUTION表
模型根 多个群集节点

包含整个模型序列的节点
列出模型中具有支持和概率的所有产品。

由于聚类方法允许在多个集群中具有部分归属,因此支持和概率可以具有小数值。 也就是说,每个事例可能属于多个群集,而不是对单个事例进行计数。 因此,确定最终群集成员身份后,该值由该分类的概率进行调整。
模型的序列节点 多个转换节点 列出模型中具有支持和概率的所有产品。

由于模型已知的序列数,因此在此级别,支持和概率的计算非常简单:

支持 = 事例计数

Probability = 模型中每个序列的原始概率。 所有概率应总和为 1。
单个群集节点 仅具有该群集序列的节点 列出群集中的所有产品,但仅针对群集特征的产品提供支持和概率值。

支持度表示该聚类中每个个案的调整支持度值。 概率值是调整概率。
单个群集的序列节点 仅适用于该群集中的序列转换的多个节点 与单个群集节点中的信息完全相同。
转换 无子女 列出与相关联的第一个状态的过渡。

支持是调整后的支持值,指示参与每个转换的案例。 概率是调整后的概率,表示为百分比。

NODE_DISTRIBUTION表

NODE_DISTRIBUTION表提供了特定聚类转变和序列的详细概率和支持信息。

总会向转换表中添加一行,以显示可能的 Missing 值。 有关Missing值的含义及其如何影响计算,请参阅“缺失值” (Analysis Services - 数据挖掘)。

支持和概率的计算因其是用于训练样本还是已完成的模型而有所不同。 这是因为默认聚类分析方法“预期最大化”(EM)假定任何情况都可以属于多个群集。 计算模型中事例的支持时,可以使用原始计数和原始概率。 但是,聚类中任何特定序列的概率必须按所有可能的序列和聚类组合的总和进行加权。

基数

在聚类分析模型中,父节点的基数通常指示模型中有多少个分类。 但是,序列聚类分析模型在分类级别有两种类型的节点:一种节点包含群集,另一种节点包含整个模型的序列列表。

因此,若要了解模型中的群集数,可以取 (All) 节点的 NODE_CARDINALITY 值并减去一个。 例如,如果模型创建了 9 个分类,则模型根的基数为 10。 这是因为模型包含 9 个群集节点,每个节点都有自己的序列节点,另外还有一个标记为分类 10 的序列节点,表示模型的序列。

结构分析

一个示例可能有助于阐明信息的存储方式,以及如何解释信息。 例如,可以使用以下查询找到最大顺序,这意味着基础 AdventureWorksDW2012 数据中观察到的链最长:

USE AdventureWorksDW2012  
SELECT DISTINCT OrderNumber, Count(*)  
FROM vAssocSeqLineItems  
GROUP BY OrderNumber  
ORDER BY Count(*) DESC  

从这些结果中,你会发现订单号“SO72656”、“SO58845”和“SO70714”包含最大的序列,每个序列有 8 个项。 通过使用订单 ID,可以查看特定订单的详细信息,以查看哪些商品已购买,以及按何种顺序购买。

订单编号 LineNumber 型号
SO58845 1 Mountain-500
SO58845 2 LL Mountain Tire
SO58845 3 山轮胎管
SO58845 4 Fender Set - Mountain
SO58845 5 山瓶笼
SO58845 6 水瓶
SO58845 7 Sport-100
SO58845 8 Long-Sleeve 徽标球衣

但是,购买 Mountain-500 的一些客户可能会购买不同的产品。 可以通过查看模型中的序列列表来查看“Mountain-500”之后的所有产品。 以下过程指导你通过使用 Analysis Services 中提供的两个查看器来查看这些序列:

  1. 在对象资源管理器中,右键单击 [序列聚类分析] 模型,然后选择“浏览”。

  2. 在序列聚类分析查看器中,单击 “状态转换 ”选项卡。

  3. “群集”下拉列表中,确保已选择“人口(所有)”

  4. 将窗格左侧的滑块条一直移动到顶部,以显示所有链接。

  5. 在关系图中,找到 Mountain-500,然后单击关系图中的节点。

  6. 突出显示的行指向下一个状态(在 Mountain-500 之后购买的产品),数字表示概率。 将这些结果与泛型模型内容查看器中的结果进行比较。

  1. 在对象资源管理器中,右键单击 [序列聚类分析] 模型,然后选择“浏览”。

  2. 在查看器下拉列表中,选择 Microsoft泛型内容树查看器

  3. 节点标题窗格中,单击名为群集 16 的顺序级别的节点。

  4. 在“节点详细信息”窗格中,找到NODE_DISTRIBUTION行,然后单击嵌套表中的任意位置。

    顶部行始终表示缺失值。 此行是序列状态 0。

  5. 按向下键或使用滚动条向下移动嵌套表,直到看到行 Mountain-500。

    此行是序列状态 20。

    注释

    你可以以编程方式获取特定序列状态的行号,但如果只是浏览,则只需将嵌套表复制到 Excel 工作簿可能更容易。

  6. 返回到“节点标题窗格”,然后展开节点“群集 16 的序列层级”,如果尚未展开的话。

  7. 在其子节点中查找序列状态 20 的转换行。 单击转换节点。

  8. 嵌套NODE_DISTRIBUTION表包含以下产品和概率。 将这些结果与序列聚类分析查看器的 “状态转换 ”选项卡中的结果进行比较。

下表显示了NODE_DISTRIBUTION表中的结果,以及图形查看器中显示的舍入概率值。

产品 支持(NODE_DISTRIBUTION表) Probability (NODE_DISTRIBUTION) 表) 从图中得出的概率
失踪 48.447887 0.138028169 (未显示)
自行车帽 10.876056 0.030985915 0.03
Fender Set - Mountain 80.087324 0.228169014 0.23
Half-Finger 手套 0.9887324 0.002816901 0.00
水化包 0.9887324 0.002816901 0.00
LL Mountain Tire 51.414085 0.146478873 0.15
Long-Sleeve 标志球衣 2.9661972 0.008450704 0.01
山瓶笼 87.997183 0.250704225 0.25
山轮胎管 16.808451 0.047887324 0.05
Short-Sleeve 经典针织运动衫 10.876056 0.030985915 0.03
Sport-100 20.76338 0.05915493 0.06
水瓶 18.785915 0.053521127 0.25

尽管我们最初从训练数据中选择的实例包含产品“Mountain-500”,后跟“LL Mountain Tire”,但您可以看到还有许多其他可能的序列。 若要查找任何特定群集的详细信息,必须重复从群集中的序列列表向下钻取到每个状态或产品的实际转换的过程。

你可以从一个特定群集中列出的序列跳转到转换行。 从该转换行中,可以确定下一个产品,并在序列列表中跳转回该产品。 通过对每个第一个和第二个状态重复此过程,可以处理长链状态。

使用序列信息

序列聚类分析的常见方案是跟踪用户在网站上的单击。 例如,如果数据来自 Adventure Works 电子商务网站上的客户购买记录,则生成的序列聚类分析模型可用于推断用户行为、重新设计电子商务网站以解决导航问题或促销销售。

例如,分析可能表明,无论人口统计如何,用户始终遵循特定产品链。 此外,你可能会发现用户在单击特定产品后经常退出网站。 鉴于此发现,你可能会询问可以向用户提供哪些其他路径,这些路径会诱使用户留在网站上。

如果没有用于对用户进行分类的其他信息,则只需使用序列信息来收集有关导航的数据,以更好地了解整体行为。 但是,如果可以收集有关客户的信息并将该信息与客户数据库匹配,则可以将聚类分析的强大功能与序列上的预测相结合,以提供针对用户定制的建议,或者可能基于导航到当前页的路径。

序列聚类分析模型编译的广泛状态和转换信息的另一个用途是确定永远不会使用哪些可能的路径。 例如,如果你有许多访问者转到第 1-4 页,但访问者永远不会继续访问第 5 页,则可以调查是否存在阻止导航到第 5 页的问题。 可以通过查询模型内容并将其与可能的路径列表进行比较来执行此作。 可以通过编程方式或使用各种网站分析工具创建网站中的所有导航路径的图形。

若要了解如何通过查询模型内容来获取观察到的路径列表,并查看序列聚类分析模型的其他查询示例,请参阅 序列聚类分析模型查询示例

另请参阅

挖掘模型内容(Analysis Services - 数据挖掘)
Microsoft序列聚类分析算法
序列聚类分析模型查询示例