创建 OLAP 挖掘结构
基于 OLAP 多维数据集或其他多维数据存储区创建数据挖掘模型有很多好处。 OLAP 解决方案已经包含大量的组织良好、整洁且格式正确的数据;但是,这些数据十分复杂,以致用户难以通过即席浏览找到有意义的模式。 数据挖掘提供发现新关联和提供可操作意见的能力。
本主题介绍如何基于现有多维解决方案中的维度和相关度量值创建 OLAP 挖掘结构。
OLAP 挖掘结构和模型的要求
如果您在设计 OLAP 挖掘模型,则您的数据源在用于生成多维数据集的数据库中应该已存在。 您不能连接到远程多维数据集并生成数据挖掘对象;多维数据集对象必须在与数据库相同的解决方案内作为将生成的挖掘结构提供。
如果没有原始项目文件,或者不想更改它们,则可以使用 Visual Studio 中的选项“从服务器导入(多维或数据挖掘)”获取元数据和解决方案对象的副本。 然后,您可以修改部署目标,编辑数据源,并且在不影响现有对象的情况下使用多维数据集对象。
有关详细信息,请参阅 使用 Analysis Services 导入向导导入数据挖掘项目。
OLAP 数据挖掘过程的概述
在 解决方案资源管理器 中右键单击“挖掘结构”节点,然后选择“新建挖掘结构”,启动数据挖掘向导。 该向导可指导您通过以下步骤创建新挖掘结构和模型的结构:
选择定义方法:选择数据源类型,然后选择 “从现有多维数据集”。
注意
如上所述,您用作数据源的 OLAP 多维数据集必须在挖掘结构所在的相同数据库中存在。 此外,不能使用 PowerPivot for Excel 外接程序创建的多维数据集作为数据挖掘的源。
创建数据挖掘结构:确定是仅生成结构还是生成具有挖掘模型的结构。
必须也为分析您的数据选择适当的算法。 有关哪种算法最适合某些任务的指导,请参阅 HYPERLINK“ms-help://SQL111033/as_1devconc/html/ed1fc83b-b98c-437e-bf53-4ff001b92d64.htm”数据挖掘算法 (Analysis Services - 数据挖掘) 。
选择源多维数据集维度:此步骤与选择数据源相同。 您需要选择单个维度,该维度包含用于定型的最重要数据。 您可以在以后从其他维度添加数据或筛选维度。
选择事例键:在刚选择的维度内,选择要用作事例数据的唯一标识符的属性(列)。
通常,将为您预先选择一列,但如果实际上存在多个键,您可以更改该列。
选择事例级别列:从所选维度中选择属性,以及适用于您的分析的相关度量值。 此步骤相当于从表中选择列。
向导将自动包括以便您查看和选择使用来自所选维度的属性创建的任何度量值。
例如,如果多维数据集包含一个度量值,该度量值根据客户的地理位置计算运费,并且你选择“客户”维度作为建模main数据源,则会建议该度量值作为添加到模型中的候选项。 避免添加过多直接基于属性的度量值,因为在各列之间已存在一个在度量值公式中定义的隐式关系,并且此(预期)关联的强度可能会掩盖您可能发现的其他关系。
指定挖掘模型列用法:对于您添加到结构中的每个属性或度量值,必须指定该属性是应该用作预测还是用作输入。 如果您没有选择上述任何选项,仍将对数据进行处理,但数据将不用于分析;不过,数据将在您以后启用钻取时用作后台数据。
添加嵌套表:单击可以添加相关表。 在 “选择度量值组维度” 对话框中,您可以从与当前维度相关的维度中选择单个维度。
接下来,您可以使用 “选择嵌套表键” 对话框定义新维度与包含事例数据的维度的关联方式。
使用 “选择嵌套表列” 对话框可以从您要在分析中使用的新维度中选择属性和度量值。 您还必须指定嵌套属性是否将用于预测。
在添加了您可能需要的所有嵌套属性后,返回到 “指定挖掘模型列用法”页,然后单击 “下一步”。
指定列的内容和数据类型:此时,您已添加了将用于分析的所有数据,并且必须为每个属性指定数据类型 和 内容类型。
在 OLAP 模型中,您没有自动检测到数据类型的选项,因为数据类型已由多维解决方案定义并且不能更改。 键也是自动标识的。 有关详细信息,请参阅 数据类型 (数据挖掘) 。
为模型中使用的每个列选择的 内容类型 将告知算法数据的处理方式。 有关详细信息,请参阅 内容类型 (数据挖掘) 。
对源多维数据集进行切片:从中,您可以定义多维数据集中的筛选器,以便只选择目标更明确的数据和定型模型的子集。
您通过以下方式筛选多维数据集:选择要对其筛选的维度,选择包含您要使用的条件的层次结构级别,然后键入要用作筛选器的条件。
创建测试集:在此页上,您可以告知向导应留出多少数据以便测试模型。 如果数据将支持多个模型,则最好是创建一个保留数据集,以便能基于同一数据测试所有模型。
有关详细信息,请参阅 测试和验证 (数据挖掘) 。
完成向导:在此页上,您可以为新的挖掘结构和关联的挖掘模型提供名称,并保存该结构和模型。
在此页上,还可以设置以下选项:
允许钻取
创建挖掘模型维度
使用挖掘模型维度创建多维数据集
若要了解有关这些选项的详细信息,请参阅本主题后面的部分 了解数据挖掘维度和钻取。
此时,该挖掘结构及其模型仅为元数据;您将需要处理它们以获取结果。
将数据挖掘用于 OLAP 数据的方案
OLAP 多维数据集通常包含如此多的成员和维度,以至于很难知道从何处开始进行数据挖掘。 为了帮助标识多维数据集所包含的模式,通常需要标识单个相关维度,然后开始浏览与该维度相关的模式。 下表列出了几项常见的 OLAP 数据挖掘任务,说明了一些可能要应用各项任务的示例场景,并标识了要用于各项任务的数据挖掘算法。
任务 | 示例方案 | 算法 |
---|---|---|
将成员分组为分类 | 根据客户成员属性、客户购买的产品和客户支出的金额,将客户维度分段。 | Microsoft Clustering Algorithm |
查找受关注的或异常的成员 | 根据销售额、利润、存储地点和存储量标识 Store 维度中受关注的或异常的商店。 | Microsoft 决策树算法 |
查找受关注的或异常的单元 | 标识随时间变化而呈典型趋势的商店销售额。 | Microsoft 时序算法 |
查找相关性 | 确定导致服务器停机的因素,包括区域、计算机类型、操作系或购买日期。 | Microsoft Naïve Bayes 算法 |
对多维数据集进行切片与对模型进行筛选
在您生成模型时对多维数据集进行切片类似于在关系挖掘模型上创建筛选器。 在关系模型上,数据源上的筛选器将定义为 SQL 语句中的 WHERE 子句;在多维数据集中,使用编辑器来通过 MDX 创建筛选器语句。
例如,一个多维数据集可能包含与在全球购买产品有关的信息,但对于您的市场活动,您要基于在英国居住、年龄超过 30 岁的女性客户的分析创建一个模型。
在此方案中,您将创建两个筛选器:
对于第一个筛选器,可以选择“地域”维度,选择“区域”的层次结构,然后使用 “筛选表达式 ”列表从可能的值中选择“英国”。
对于第二个筛选器,可以选择“客户”维度,选择“性别”属性,然后从属性值列表中选择“女性”。
在已创建挖掘结构后,可以修改多维数据集数据和筛选条件的定义。 有关详细信息,请参阅 Filter the Source Cube for a Mining Structure。
“挖掘结构” 选项卡和 “挖掘模型” 选项卡均提供通过单击 “定义多维数据集切片”向现有挖掘结构添加筛选器的选项。 “多维数据集切片” 对话框可帮助您通过从下拉列表中选择值来生成有效的 MDX 筛选表达式。
警告
请注意,用于设计和浏览多维数据集的界面已在 SQL Server 2014 中更改。 有关详细信息,请参阅 浏览多维数据集中的数据和元数据。
您可以根据需要在多维数据集上添加任意多的筛选器以返回使用挖掘模型所需的数据。 还可以在各个多维数据集切片上定义切片。 例如,如果结构中包含两个基于产品的嵌套表,则可以将一个表切为 2004 年 3 月,将另一个表切为 2004 年 4 月。 然后,可以使用结果模型根据三月份的购物情况预测四月份的购物情况。
在 OLAP 挖掘模型中使用嵌套表
在您使用数据挖掘向导基于多维数据集数据生成模型时,可以通过指定相关维度的名称,然后选择要添加到模型的属性或度量值,来添加嵌套表。
例如,如果用于事例数据的主维度是 Customer,则可以将 Products 维度作为相关维度添加,因为预期客户可能会在一段时间中订购多个产品,并且多维数据集已通过订单事实表将各客户链接到许多产品。
您通过单击 “添加嵌套表” ,在向导的 “指定挖掘模型列用法”页中添加嵌套表。 这将打开一个对话框,该对话框将指导您完成选择相关维度以及任何度量值的过程。 案例和嵌套维度必须由某一外键相关,并且度量值必须使用在事例或嵌套表中已包含的属性之一。 遗憾的是,这些限制对缩小范围没有太大作用,因此必须谨慎选择那些对建模有用的属性。
对于您添加到嵌套表的每个属性或度量值,您必须通过在 “选择嵌套表列” 对话框中选择 “可预测” 或 “输入” ,指定嵌套属性是否将用于预测。 如果没有选择上述任何选项,数据将添加到挖掘结构,但不用于分析。
对于每个属性和度量值,您还必须指定属性是离散、离散化还是连续的。 该向导将基于属性的数据类型来预先选择默认值,但您可能需要根据算法要求,更改这些默认值。 例如,如果选择的内容类型与所选算法 (不兼容,则使用具有 Naïve Bayes 模型的连续数值类型) ,在尝试处理模型之前不会收到错误消息。
在您完成设置这些选项后,向导会将嵌套表添加到事例表中。 嵌套表的默认名称为嵌套维度的名称,但是您可以重命名嵌套表和嵌套表的列。 您可以重复此过程,向挖掘结构添加多个嵌套表。
能够像这样使用嵌套表数据是功能强大的 SQL Server 数据挖掘的一项功能,并且在多维数据集中,在使用相关数据子集方面几乎没有任何限制。
了解数据挖掘维度和钻取
通过选项 “允许钻取”,您可以在浏览模型时对基础多维数据集数据运行查询。 数据不包含在新的数据挖掘维度中,但 Analysis Services 数据库可以使用数据绑定从源多维数据集检索信息。
通过选项 “创建挖掘模型维度”,您可以在现有多维数据集内生成包含算法发现的模式的新维度。 新维度内的层次结构在很大程度上由模型类型确定。 例如,聚类分析模型的表示形式是较为平面的,(All) 节点位于层次结构的顶部并且每个群集位于下一级别中。 相反,为决策树模型创建的维度可能具有表示树的分支的非常深的层次结构。
通过选项 “使用挖掘模型维度创建多维数据集”,您可以将新的数据挖掘维度导出到新的多维数据集中。 在数据挖掘维度上进行钻取所需的任何对象都将自动包含。
警告
只有以下模型类型支持数据挖掘维度的创建:基于 Microsoft 聚类分析算法、Microsoft 决策树算法或 Microsoft 关联算法的模型。
另请参阅
数据挖掘算法(Analysis Services – 数据挖掘)
挖掘结构列
挖掘模型列
挖掘模型属性
挖掘结构和结构列的属性