挖掘模型是通过向数据应用算法创建的,但它不仅仅是算法或元数据容器:它是一组数据、统计信息和模式,可应用于新数据以生成预测并推断关系。
本部分介绍什么是数据挖掘模型及其用途:模型和结构的基本体系结构、挖掘模型的属性以及创建和使用挖掘模型的方法。
挖掘模型体系结构
数据挖掘模型从挖掘结构获取数据,然后使用数据挖掘算法分析该数据。 挖掘结构和挖掘模型是单独的对象。 挖掘结构存储定义数据源的信息。 挖掘模型存储从数据统计处理派生的信息,例如分析结果发现的模式。
挖掘模型是空的,直到挖掘结构提供的数据被处理和分析。 完成挖掘模型处理后,它包含元数据、结果和与挖掘结构的绑定。
元数据指定模型的名称和存储模型的服务器以及模型的定义,包括用于生成模型的挖掘结构的列、处理模型时应用的任何筛选器的定义以及用于分析数据的算法。 所有这些选择-数据列及其数据类型、筛选器和算法都对分析结果产生了强大的影响。
例如,可以使用相同的数据来创建多个模型,使用聚类分析算法、决策树算法和 Naïve Bayes 算法。 每个模型类型都会创建不同的模式、项集、规则或公式集,可用于进行预测。 通常,每个算法都以不同的方式分析数据,因此生成的模型 的内容 也以不同的结构进行组织。 在一种类型的模型中,数据和模式可能在 群集中分组;在另一种类型的模型中,数据可以组织成树、分支以及划分和定义它们的规则。
如果以不同的方式筛选数据或在分析期间使用不同的种子,则模型也会受到你训练的数据的影响:即使是在同一挖掘结构上训练的模型也会产生不同的结果。 但是,实际数据并不存储在模型中,模型中仅存储摘要统计信息,而实际数据则驻留在挖掘结构中。 如果在训练模型时对数据创建了筛选器,则筛选器定义也会与模型对象一起保存。
该模型包含一组绑定,这些绑定指向挖掘结构中缓存的数据。 如果数据已缓存在结构中,并且处理后尚未清除,则这些绑定使你能够从结果钻取到支持结果的事例。 但是,实际数据存储在结构缓存中,而不是存储在模型中。
定义数据挖掘模型
按照以下常规步骤创建数据挖掘模型:
创建基础挖掘结构,并包括可能需要的数据列。
选择最适合分析任务的算法。
从要在模型中使用的结构中选择列,并指定应如何使用它们-哪个列包含要预测的结果,哪些列仅用于输入,等等。
(可选)设置参数以微调算法的处理。
通过处理结构和模型来用数据填充模型。
Analysis Services 提供以下工具来帮助你管理挖掘模型:
数据挖掘向导可帮助你创建结构和相关的挖掘模型。 这是最简单的使用方法。 向导会自动创建所需的挖掘结构,并帮助你配置重要设置。
DMX CREATE MODEL 语句可用于定义模型。 所需的结构是作为过程的一部分自动创建的;因此,不能使用此方法重用现有结构。 如果已确切知道要创建的模型,或者想要编写模型脚本,请使用此方法。
DMX ALTER STRUCTURE ADD MODEL 语句可用于向现有结构添加新挖掘模型。 如果要试验基于同一数据集的不同模型,请使用此方法。
还可以使用 AMO 或 XML/A,或使用其他客户端(例如 Excel 数据挖掘客户端)以编程方式创建挖掘模型。 有关详细信息,请参阅以下主题:
挖掘模型属性
每个挖掘模型都有定义模型及其元数据的属性。 其中包括名称、说明、模型上次处理日期、模型权限以及用于训练的数据的任何筛选器。
每个挖掘模型还具有派生自挖掘结构的属性,以及描述模型使用的数据列。 如果模型使用的任何列是嵌套表,该列也可以应用单独的筛选器。
此外,每个挖掘模型都包含两个特殊属性: Algorithm 和 Usage。
Algorithm 属性 指定用于创建模型的算法。 可用的算法取决于所使用的提供程序。 有关 SQL Server Analysis Services 附带的算法的列表,请参阅数据挖掘算法(Analysis Services - 数据挖掘)。 该
Algorithm
属性适用于挖掘模型,并且每个模型只能设置一次。 以后可以更改算法,但如果所选算法不支持这些列,挖掘模型中的某些列可能会失效。 必须始终按照对此属性的更改重新处理模型。Usage 属性 定义模型如何使用每个列。 可以将列用法定义为
Input
、Predict
、Predict Only
或Key
。 该Usage
属性适用于单个挖掘模型列,必须为模型中包含的每一列单独设置。 如果结构包含模型中未使用的列,则用法设置为Ignore
。 你可能包括在挖掘结构中但未在分析中使用的数据示例可能是客户姓名或电子邮件地址。 这样,就可以稍后查询它们,而无需在分析阶段包含它们。
创建挖掘模型后,可以更改挖掘模型属性的值。 但是,即使对挖掘模型的名称进行任何更改,都需要重新处理模型。 重新处理模型后,可能会看到不同的结果。
挖掘模型列
挖掘模型包含数据列,这些列是从挖掘结构中定义的列中获取的。 可以选择要在模型中使用的挖掘结构中的哪些列,并且可以创建挖掘结构列的副本,然后重命名或更改其用法。 作为模型构建过程的一部分,您还必须由模型定义列的用法。 这包括此类信息,例如列是键、是用于预测还是算法可以忽略它。
在构建模型时,与其自动添加所有可用的数据列,不如仔细检查数据结构,只在模型中加入那些对分析有意义的列。 例如,应避免包含多个重复相同数据的列,应避免使用具有大多数唯一值的列。 如果认为不应使用列,则无需将其从挖掘结构或挖掘模型中删除;相反,只需在列上设置一个标志,指定在生成模型时应忽略它。 这意味着该列将保留在挖掘结构中,但不会在挖掘模型中使用。 如果您已从模型向挖掘结构启用了钻取功能,则可以稍后从列中获取信息。
根据所选算法,挖掘结构中的某些列可能与某些模型类型不兼容,或者可能会提供不良结果。 例如,如果数据包含连续数值数据(例如收入列),并且模型需要离散值,则可能需要将数据转换为离散范围或将其从模型中删除。 在某些情况下,算法会自动转换或装箱数据,但结果可能并不总是你想要或期望的结果。 请考虑创建列的其他副本并尝试不同的模型。 还可以对各个列设置标志,以指示需要特殊处理的位置。 例如,如果数据包含 null,则可以使用建模标志来控制处理。 如果希望特定列被视为模型中的回归量,可以使用建模标志执行此作。
创建模型后,可以进行更改,例如添加或删除列,或更改模型的名称。 但是,任何更改(即使仅对模型元数据)都需要重新处理模型。
处理挖掘模型
数据挖掘模型在处理之前是一个空对象。 处理模型时,结构缓存的数据将通过筛选器(如果已在模型中定义)传递,并由算法分析。 该算法计算一组摘要统计信息,这些统计信息描述数据、标识数据中的规则和模式,然后使用这些规则和模式填充模型。
处理后,挖掘模型包含大量有关数据的信息,以及通过分析找到的模式,包括统计信息、规则和回归公式。 可以使用自定义查看器浏览此信息,也可以创建数据挖掘查询来检索此信息,并将其用于分析和演示。
查看和查询挖掘模型
处理模型后,可以使用 SQL Server Data Tools (SSDT) 和 SQL Server Management Studio 中提供的自定义查看器浏览模型。 为
还可以针对挖掘模型创建查询,以便进行预测,或检索模型元数据或模型创建的模式。 使用数据挖掘扩展插件(DMX)创建查询。
相关内容
主题 | 链接 |
---|---|
了解如何生成可支持多个挖掘模型的挖掘结构。 了解模型中列的使用情况。 |
挖掘结构列 挖掘模型列 内容类型(数据挖掘) |
了解不同的算法,以及算法的选择如何影响模型内容。 |
挖掘模型内容(Analysis Services - 数据挖掘) 数据挖掘算法 (Analysis Services - 数据挖掘) |
现在,了解如何设置模型属性以影响其构成和行为。 |
挖掘模型属性 建模标志 (数据挖掘) |
了解用于数据挖掘的可编程接口。 |
使用分析管理对象进行开发 (AMO) 数据挖掘扩展插件 (DMX) 参考 |
了解如何在 Analysis Services 中使用自定义数据挖掘查看器。 | 数据挖掘模型查看器 |
查看可用于数据挖掘模型的不同类型的查询的示例。 | 数据挖掘查询 |
相关任务
使用以下链接获取有关使用数据挖掘模型的更具体信息
任务 | 链接 |
---|---|
添加和删除挖掘模型 |
将挖掘模型添加到现有挖掘结构 从挖掘结构中删除挖掘模型 |
处理挖掘模型列 |
从挖掘模型中排除列 为模型列创建别名 更改挖掘模型中列的离散化 指定要用作模型中回归器的列 |
更改模型属性 |
更改挖掘模型的属性 将筛选器应用于挖掘模型 从挖掘模型中删除筛选器 为挖掘模型启用钻透 查看或更改算法参数 |
复制。 移动或管理模型 |
创建挖掘模型的副本 复制挖掘模型的视图 EXPORT (DMX) IMPORT (DMX) |
使用数据填充模型,或更新模型中的数据 | 处理挖掘模型 |
使用 OLAP 模型 | 创建数据挖掘维度 |