通过


序列聚类模型的模型内容挖掘

适用于: SQL Server 2019 及更早版本的 Analysis Services Azure Analysis Services Fabric/Power BI Premium

重要

SQL Server 2017 Analysis Services 中弃用了数据挖掘,现已在 SQL Server 2022 Analysis Services 中停止使用。 文档不会更新为已弃用和已停用的功能。 若要了解详细信息,请参阅 Analysis Services 向后兼容性

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

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

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

序列聚类模型结构

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

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

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

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

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

MODEL_NAME
模型的名称。

ATTRIBUTE_NAME
始终为空。

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

NODE_UNIQUE_NAME
节点的唯一名称。

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

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

NODE_GUID
空白。

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

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

CHILDREN_CARDINALITY
估计节点具有的子级数。

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

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

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

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

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

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

节点规则
始终为空。

MARGINAL_RULE
始终为空。

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

群集节点 模型中群集的调整概率。 调整后的概率总和不为 1,因为序列聚类中使用的聚类方法允许在多个簇中具有部分归属。

序列节点 始终为 0。

转换节点 始终为 0。

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

群集节点 与NODE_PROBABILITY相同的值。

序列节点 始终为 0。

转换节点 始终为 0。

NODE_DISTRIBUTION
包含概率和其他信息的表。 有关详细信息,请参阅 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 具有子节点 NODE_DISTRIBUTION表
模型根节点 多个群集节点

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

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

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



支持 = 事例计数

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

支持表示此群集中每个事例的调整支持值。 概率值是经过调整的概率。
单个群集的序列节点 具有该群集中序列转换的多个节点 与单个群集节点中完全相同的信息。
Transitions 没有孩子 列出相关第一个状态的转换。

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

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,可以查看特定订单的详细信息,以查看哪些商品已购买,以及按何种顺序购买。

OrderNumber 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 长袖徽标运动衫

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

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

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

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

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

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

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

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

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

  3. “节点说明”窗格中,单击名为“群集 16 的 Sequence 级别”的节点

  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
半指手套 0.9887324 0.002816901 0.00
水化包 0.9887324 0.002816901 0.00
LL Mountain Tire 51.414085 0.146478873 0.15
长袖徽标运动衫 2.9661972 0.008450704 0.01
山瓶笼 87.997183 0.250704225 0.25
山轮胎管 16.808451 0.047887324 0.05
短袖经典运动衫 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序列聚类分析算法
序列聚类分析模型查询示例