数据挖掘概念

数据挖掘是从大量数据集中发现可作信息的过程。 数据挖掘使用数学分析来派生数据中存在的模式和趋势。 通常,传统数据浏览无法发现这些模式,因为关系过于复杂或数据过多。

可以收集这些模式和趋势并将其定义为 数据挖掘模型。 挖掘模型可以应用于特定方案,例如:

  • 预测:估算销售额、预测服务器负载或服务器停机时间

  • 风险和概率:为定向邮件选择最佳客户,确定风险方案的可能断点,为诊断或其他结果分配概率

  • 建议:确定哪些产品可能一起销售,生成建议

  • 查找序列:分析购物车中的客户选择,预测下一个可能的事件

  • 分组:将客户或事件分成相关项的群集、分析和预测相关性

构建挖掘模型是较大过程的一部分,包括从询问有关数据的问题和创建模型以回答这些问题到将模型部署到工作环境的所有内容。 可以使用以下六个基本步骤定义此过程:

  1. 定义问题

  2. 准备数据

  3. 浏览数据

  4. 生成模型

  5. 浏览和验证模型

  6. 部署和更新模型

下图描述了过程中每个步骤之间的关系,以及可用于完成每个步骤的 Microsoft SQL Server 中的技术。

数据挖掘过程中的关键步骤

关系图中所示的过程是周期性的,这意味着创建数据挖掘模型是一个动态的迭代过程。 浏览数据后,可能会发现数据不足以创建适当的挖掘模型,因此必须查找更多数据。 或者,可以生成多个模型,然后意识到模型无法充分回答你定义的问题,因此必须重新定义问题。 部署模型后,可能需要更新模型,因为有更多的数据可用。 为了创建良好的模型,此过程中的每个步骤可能需要重复多次。

Microsoft SQL Server 数据挖掘提供了用于创建和使用数据挖掘模型的集成环境。 此环境包括 SQL Server Development Studio,其中包含数据挖掘算法和查询工具,可用于轻松构建各种项目的综合解决方案,以及包含浏览模型和管理数据挖掘对象的工具的 SQL Server Management Studio。 有关详细信息,请参阅 使用 SQL Server Data Tools (SSDT) 创建多维模型

有关如何将 SQL Server 工具应用于业务方案的示例,请参阅 基本数据挖掘教程

定义问题

数据挖掘过程的第一步(如下图所示)是明确定义问题,并考虑数据可用于提供问题的答案的方法。

数据挖掘第一步:定义问题

此步骤包括分析业务要求、定义问题的范围、定义模型评估依据的指标,以及定义数据挖掘项目的特定目标。 这些任务转换为以下问题:

  • 你在找什么? 你尝试查找哪些类型的关系?

  • 你试图解决的问题是否反映了业务的策略或流程?

  • 是否要从数据挖掘模型进行预测,还是只是寻找有趣的模式和关联?

  • 你想要尝试预测哪个结果或属性?

  • 您拥有哪种类型的数据以及每列中的信息类型? 如果有多个表,这些表如何相关? 是否需要执行任何清理、聚合或处理以使数据可用?

  • 数据是如何分布的? 数据是否季节性? 数据是否准确表示业务流程?

若要回答这些问题,可能需要进行数据可用性研究,以调查业务用户对可用数据的需求。 如果数据不支持用户的需求,则可能需要重新定义项目。

你还需要考虑将模型结果合并到用于衡量业务进度的关键绩效指标(KPI)中的方式。

准备数据

数据挖掘过程中的第二步(如下图所示)是合并和清理在 “定义问题 ”步骤中标识的数据。

数据挖掘第二步:准备数据

数据可以分散在公司中,以不同的格式存储,或者可能包含不一致(如不正确的或缺失的条目)。 例如,数据可能显示,客户在产品上市前购买了产品,或者客户经常在离家2000英里的商店购物。

数据清理不仅仅是删除不良数据或内插缺失值,还涉及查找数据中的隐藏相关性、识别最准确的数据源,以及确定哪些列最适合用于分析。 例如,是否应使用发货日期或订单日期? 最好的销售影响因素是数量、总价格还是折扣价格? 未完成的数据、错误的数据以及看似独立但实际上密切相关的输入,都会以意想不到的方式影响模型的结果。

因此,在开始生成挖掘模型之前,应确定这些问题并确定如何解决这些问题。 对于数据挖掘,通常使用非常大的数据集,并且无法检查每个事务的数据质量;因此,可能需要使用某种形式的数据分析和自动化数据清理和筛选工具,例如 Integration Services 中提供的数据、Microsoft SQL Server 2012 Master Data Services 或 SQL Server Data Quality Services,以浏览数据并查找不一致之处。 有关详细信息,请参阅以下资源:

请务必注意,用于数据挖掘的数据不需要存储在联机分析处理(OLAP)多维数据集中,甚至不需要存储在关系数据库中,尽管可以将这两者都用作数据源。 可以使用已定义为 Analysis Services 数据源的任何数据源执行数据挖掘。 这些内容可能包括来自其他外部提供程序的文本文件、Excel 工作簿或数据。 有关详细信息,请参阅支持的数据源(SSAS 多维)。

探索数据

数据挖掘过程中的第三步(如下图所示)是浏览已准备的数据。

数据挖掘第三步:浏览数据

必须了解数据,以便在创建挖掘模型时做出适当的决策。 探索技术包括计算最小值和最大值、计算平均值和标准偏差,以及查看数据的分布。 例如,通过查看最大值、最小值和平均值,可以确定数据不代表您的客户或业务流程,因此必须获取更平衡的数据或审视作为预期依据的假设。 标准偏差和其他分布值可以提供有关结果稳定性和准确性的有用信息。 较大的标准偏差可以指示添加更多数据可能有助于改进模型。 严重偏离标准分布的数据可能是偏态的,或者可能准确反映现实生活中的问题,但这使得数据很难进行模型拟合。

通过根据你自己对业务问题的了解来探索数据,可以确定数据集是否包含有缺陷的数据,然后可以设计一个策略来解决问题或更深入地了解业务的典型行为。

可以使用 Master Data Services 等工具来调查可用的数据源并确定它们是否适合进行数据挖掘。 可以使用 Integration Services 中的 SQL Server Data Quality Services 或数据探查器等工具分析数据的分布,并修复错误或缺失数据等问题。

定义源后,可以使用 SQL Server Data Tools 中的数据源视图设计器将它们合并到数据源视图中。 有关详细信息,请参阅 多维模型中的数据源视图。 此设计器还包含一些可用于浏览数据并验证它是否可用于创建模型的工具。 有关更多信息,请参阅在数据源视图中浏览数据 (Analysis Services)

请注意,在创建模型时,Analysis Services 会自动创建模型中包含的数据的统计摘要,可以在报表或进一步分析中查询这些数据。 有关详细信息,请参阅 数据挖掘查询

构建模型

数据挖掘过程中的第四步(如下图所示)是生成挖掘模型或模型。 你将使用 在“探索数据 ”步骤中获得的知识来帮助定义和创建模型。

数据挖掘第四步:生成挖掘模型

通过创建挖掘结构来定义要使用的数据的列。 挖掘结构链接到数据源,但在处理数据之前实际上不包含任何数据。 处理挖掘结构时,Analysis Services 会生成聚合和其他可用于分析的统计信息。 此信息可由基于结构的任何挖掘模型使用。 有关如何与挖掘模型相关的挖掘结构的详细信息,请参阅逻辑体系结构(Analysis Services - 数据挖掘)。

在处理结构和模型之前,数据挖掘模型也只是一个容器,它指定用于输入的列、要预测的属性,以及告知算法如何处理数据的参数。 处理模型通常称为 训练。 训练是指将特定数学算法应用于结构中的数据以提取模式的过程。 训练过程中找到的模式取决于训练数据的选择、所选算法以及算法的配置方式。 SQL Server 2014 包含许多不同的算法,每个算法都适合不同类型的任务,每个算法都创建不同类型的模型。 有关 SQL Server 2014 中提供的算法的列表,请参阅数据挖掘算法(Analysis Services - 数据挖掘)。

还可以使用参数来调整每个算法,并且可以将筛选器应用于训练数据,以仅使用一部分数据,从而创建不同的结果。 通过模型传递数据后,挖掘模型对象包含可以查询或用于预测的摘要和模式。

可以使用 SQL Server Data Tools 中的数据挖掘向导或使用数据挖掘扩展插件(DMX)语言来定义新模型。 有关如何使用数据挖掘向导的详细信息,请参阅数据挖掘向导(Analysis Services - 数据挖掘)。 有关如何使用 DMX 的详细信息,请参阅 数据挖掘扩展插件 (DMX) 参考

请务必记住,每当数据发生更改时,都必须更新挖掘结构和挖掘模型。 通过重新处理挖掘结构更新挖掘结构时,Analysis Services 会从源检索数据,包括动态更新源时的任何新数据,并重新填充挖掘结构。 如果你有基于结构的模型,则可以选择更新基于该结构的模型,这意味着它们根据新数据重新训练,也可以将模型保留原样。 有关详细信息,请参阅处理要求和注意事项(数据挖掘)。

探索和验证模型

数据挖掘过程中的第五步(如下图所示)是探索已生成并测试其有效性的挖掘模型。

数据挖掘第五步:验证挖掘模型

在将模型部署到生产环境之前,需要测试模型的性能。 此外,生成模型时,通常创建具有不同配置的多个模型并测试所有模型,以查看哪些模型为问题和数据生成了最佳结果。

Analysis Services 提供的工具可帮助你将数据分离到训练和测试数据集中,以便准确评估同一数据上所有模型的性能。 使用训练数据集生成模型,并使用测试数据集通过创建预测查询来测试模型的准确性。 在 SQL Server 2014 Analysis Services (SSAS)中,可以在生成挖掘模型时自动完成此分区。 有关详细信息,请参阅测试和验证(数据挖掘)。

可以使用 SQL Server Data Tools 中的数据挖掘设计器中的查看者来浏览算法发现的趋势和模式。 有关详细信息,请参阅 数据挖掘模型查看器。 还可以使用设计器中的工具(如提升图和分类矩阵)测试模型创建预测的方式。 若要验证模型是否特定于数据,或者可用于对一般总体进行推理,可以使用称为 交叉验证 的统计技术自动创建数据的子集,并针对每个子集测试模型。 有关详细信息,请参阅测试和验证(数据挖掘)。

如果在 “生成模型 ”步骤中创建的模型没有性能良好,则可能需要返回到该过程中的上一步,并重新定义问题或重新定义原始数据集中的数据。

部署和更新模型

数据挖掘过程中的最后一步(如下图所示)是将执行的最佳模型部署到生产环境。

数据挖掘第六步:部署挖掘模型

在生产环境中存在挖掘模型后,可以根据需求执行许多任务。 以下是可执行的一些任务:

  • 使用模型创建预测,然后可以使用这些预测做出业务决策。 SQL Server 提供了可用于创建预测查询的 DMX 语言,以及用于生成查询的预测查询生成器。 有关详细信息,请参阅数据挖掘扩展插件 (DMX) 参考

  • 创建内容查询以从模型检索统计信息、规则或公式。 有关详细信息,请参阅 数据挖掘查询

  • 将数据挖掘功能直接嵌入到应用程序中。 可以包括分析管理对象(AMO),其中包含应用程序可用于创建、更改、处理和删除挖掘结构和挖掘模型的一组对象。 或者,可以将 XML for Analysis (XMLA) 消息直接发送到 Analysis Services 实例。

  • 使用 Integration Services 创建一个包,其中挖掘模型用于将传入数据智能地分隔到多个表中。 例如,如果数据库与潜在客户持续更新,则可以将挖掘模型与 Integration Services 一起使用,将传入的数据拆分为可能购买产品和可能不购买产品的客户。

  • 创建一个报表,允许用户直接查询现有挖掘模型。 有关详细信息,请参阅 SQL Server Data Tools 中的 Reporting Services (SSDT)

  • 查看和分析后更新模型。 任何更新都需要重新处理模型。 有关详细信息,请参阅 处理数据挖掘对象

  • 动态更新模型,因为越来越多的数据进入组织,并不断进行更改以提高解决方案的有效性应是部署策略的一部分。 有关详细信息,请参阅 数据挖掘解决方案和对象的管理

另请参阅

数据挖掘解决方案数据挖掘工具