为挖掘模型创建筛选器(Analysis Services – 数据挖掘)

基于数据的模型筛选有助于创建利用挖掘结构中数据子集的挖掘模型。使用筛选功能,可以基于全面的数据源视图来创建单个挖掘结构,因此可以灵活地设计挖掘结构和数据源。随后即可以创建筛选器,以便仅将该数据的一部分用于对各种模型进行定型和测试,而不是为数据的每个子集均生成不同的结构和相关模型。

例如,针对 Customers 表和相关表定义数据源视图。随后,定义一个包括所需的全部字段的挖掘结构。最后,创建一个针对特定的客户属性(如 Region)进行筛选的模型。随后,您即可以方便地创建该模型的副本,而且只需更改筛选条件即可基于不同的区域生成新模型。

下面是一些可能受益于此功能的现实情况:

  • 为离散值(如性别、区域等)创建单独的模型。例如,服装店可以使用客户统计数据来按性别生成不同的模型,即使所有客户的销售数据来自同一个数据源也是如此。

  • 通过创建并测试相同数据的不同分组(如年龄段 20-30 、年龄段 20-40 和年龄段 20-25)来试验模型。

  • 针对嵌套表内容指定复杂的筛选器,例如,要求只有当客户至少购买了两件特定商品时才在模型中包括一个事例。

本节介绍如何针对挖掘模型生成、使用和管理筛选器。

创建模型筛选器

可以按如下方式创建和应用筛选器:

  • 使用数据挖掘设计器中的**“挖掘模型”**选项卡,并借助筛选器编辑器对话框生成各个条件。

  • 在挖掘模型的**“筛选器”**属性中直接键入筛选表达式。

  • 使用 AMO 以编程方式对模型设置筛选条件。

使用数据挖掘设计器创建模型筛选器

可以通过更改挖掘模型的 Filter 属性在数据挖掘设计器中筛选模型。可以在**“属性”**窗格中直接键入筛选表达式,也可以打开一个筛选器对话框来生成条件。

共有两个筛选器对话框。第一个对话框可用来创建应用于事例表的条件。如果数据源中包含多个表,请首先选择一个表,然后选择一列并指定应用于该列的运算符和条件。可以使用 AND/OR 运算符来链接多个条件。可用于定义值的运算符取决于该列是包含离散值还是连续值。例如,对于连续值,可以使用 greater than 和 less than 运算符。但是,对于离散值,只能使用 = (equal to)、!= (not equal to) 和 is null 运算符。

注意注意

不支持使用 LIKE 关键字。如果您希望包括多个离散属性,则必须创建不同条件并使用 OR 运算符来链接它们。

如果条件非常复杂,则可以使用第二个筛选器对话框,一次处理一个表。当您关闭第二个筛选器对话框时,系统会对筛选表达式进行求值,并将值与对事例表中其他列设置的筛选条件合并。

针对嵌套表创建筛选器

如果数据源视图中包含嵌套表,则可以使用第二个筛选器对话框来针对嵌套表中的行生成条件。

例如,如果您的事例表与客户相关,而且嵌套表中显示客户已经购买的产品,则可以通过在嵌套表的筛选器中使用下面的语法来为已经购买了特定商品的客户创建一个筛选器:[ProductName]=’Water Bottle’ OR ProductName=’Water Bottle Cage'。

还可以使用 EXISTS 或 NOT EXISTS 关键字和子查询在嵌套表中筛选特定值,以查看其是否存在。这允许您创建诸如 EXISTS (SELECT * FROM Products WHERE ProductName=’Water Bottle’) 之类的条件。如果嵌套表中至少有一行包括 Water Bottle 值,则 EXISTS SELECT(<subquery>) 将返回 true。

可以将事例表中的条件与嵌套表中的条件组合起来。例如,下面的语法包括事例表中的一个条件 (Age > 30)、嵌套表中的一个子查询 (EXISTS (SELECT * FROM Products)) 以及嵌套表中的多个条件 (WHERE ProductName=’Milk’ AND Quantity>2)。

(Age > 30 AND EXISTS (SELECT * FROM Products WHERE ProductName=’Milk’  AND Quantity>2) )

在完成筛选器的生成之后,筛选器文本将由 Analysis Services 进行求值,转换为 DMX 表达式,之后将随模型一起保存。

有关如何在 Business Intelligence Development Studio 中使用筛选器对话框的说明,请参阅如何对挖掘模型应用筛选器

管理挖掘模型筛选器

基于数据的模型筛选大大简化了管理挖掘结构和挖掘模型的任务,因为您可以基于同一个结构方便地创建多个模型。您还可以快速创建现有挖掘模型的多个副本,之后将只需更改筛选条件。下面是在管理模型筛选器时的一些注意事项:

  • 若要确定应用于模型的筛选器,请查看挖掘模型的 Filter 属性。

  • 您可以重命名该模型,使其反映筛选器的内容。这样可更易于分辨相关模型。

  • 筛选表达式将保存为脚本,并随其关联挖掘模型或嵌套表一起存储。如果删除了筛选器文本,则只能通过手动重新创建筛选表达式的方式来将其还原。因此,如果创建了复杂的筛选表达式,还应当创建筛选器文本的备份副本。

  • 无论何时更改或添加筛选表达式,都必须重新处理挖掘结构和挖掘模型,然后才能查看筛选器的效果。

有关筛选器语法的详细信息以及筛选表达式示例的详细信息,请参阅模型筛选器语法和示例(Analysis Services – 数据挖掘)

有关在测试挖掘模型时如何使用模型筛选器的信息,请参阅测量挖掘模型准确性(Analysis Services - 数据挖掘)