1.1 什么是数据挖掘
作为一个新兴的多学科交叉产生的概念,数据挖掘(Data Mining)的定义有若干个版本,所以数据挖掘是一个很宽泛的概念。数据挖掘一般是指从海量的数据中通过相应的算法,挖掘其中有价值(未知的、有规律的)的信息的复杂过程。许多人把数据挖掘看作另一个常用的术语“KDD(Knowledge Discovery in Database)”的同义词,而还有一些人只是把数据挖掘看作KDD过程中的一个基本步骤。KDD可直译为“基于数据库的知识发现”(简称“知识发现”),是指从海量的数据中提取有效的、新颖的、潜在有用的、最终可被理解的模式的过程,如图1-1所示为KDD过程。
图1-1
整个KDD过程是由若干个步骤组成的,而数据挖掘仅是其中的一个主要步骤。整个KDD过程中的主要步骤介绍如下。
注:进行KDD的前提是明确业务需求,这里要注意两点:①我们要对业务的需求有全面的理解;②我们所理解的业务需求是经过认可的,而不是自己猜测的。明确业务需求虽然是业务的核心,但在本书中暂不讨论,因为本书的重点是原理与实现,所以这里假定所有的业务需求都已经明确。
(1)清洗与集成:通过业务需求确定目标数据,根据从原始数据库(多数据源中)中选取的相关数据或样本,将来自数据源中的相关数据组合到一起;检查数据的完整性及一致性,消除噪声及与数据挖掘明显无关的冗余数据,同时利用统计等方法填充丢失的数据。
(2)选择与转换:将经过去噪、填充等操作后的数据进行转换与衍生(数据再处理),将其变为可以直接进行数据挖掘操作的数据形式。
(3)数据挖掘:数据挖掘是KDD过程中的核心步骤,在此步骤中要根据业务需求及目标,选取合适的模型(算法/参数等)进行数据模式或知识规律的探索与挖掘。
(4)模式评估:对在数据挖掘中发现的模式(知识规律)进行解释,通过机器评估后剔除冗余或无关的模式。此步骤的目的是根据一定的评估标准,从挖掘结果中筛选出有意义的模式。
(5)知识表示:将发现的模式以客户能了解的方式呈现给客户,可以利用BI等可视化工具呈现,也可以利用分析报告形式呈现。使用可视化工具呈现虽然更加炫酷、直观,但相对分析报告形式呈现而言,缺少对数据结果的进一步解释和对业务的科学决策建议。
以上5个步骤的顺序是不固定的,我们经常需要调整这些步骤。这主要依赖每个步骤或步骤内部特定任务的输出是否为下一个步骤需要的或必需的输入。
1996年,在Fayyad、Piatetsky·Shapiro和Smyth总结出了KDD过程中的5个基本步骤后,各种不同的KDD过程模型在此基础上发展并完善了起来。其中,欧盟相关机构在1999年提出的CRISP-DM模型(Cross-industry Standard Process For Data Mining),即“跨行业数据挖掘标准流程”模型,在各种KDD过程模型中占据领先位置,如图1-2所示。具体介绍如下。
图1-2
(1)商业理解:必须从商业的角度了解业务的背景,梳理业务诉求,明确业务目的,并将这些与数据挖掘的定义与结果结合起来。
(2)数据理解:此阶段主要是收集数据与熟悉数据,包括熟悉数据的来源、数据的长度、数据的类型和数据间的逻辑关系。
(3)数据准备:对应前文的“清洗与集成”和“选择与转换”,涵盖了从原始数据中构建最终数据集(将作为数据挖掘的分析对象)的全部工作。数据准备工作有可能会实施多次(记得每一次都要做备份,因为有可能会再次用到),而且其实施顺序并不全是预先规定好的。之所以这么说,是因为此时的业务诉求不一定是最清晰的。同时,数据的质量和相关性仍在不断地探索中。在此阶段会进一步对数据进行清理和转换、构造衍生变量、整合数据、数据标准化等操作。
(4)建立模型:对应前文的“数据挖掘”。各种各样的建模方法将被加以选择和使用,然后建立模型和调整模型中的参数。一些建模(数据挖掘)方法对数据的格式等有具体的要求,此时重新回到数据准备阶段执行某些任务,有时是非常必要的。
(5)模型评估:在进行最终的模型部署之前,需要更加彻底地评估模型。回顾在建模过程中执行的每一个步骤是非常重要的,这样可以确保这些模型是否达到了业务目标。这里从两个方面着手,一是从数据(数据质量)和模型本身评估模型的稳定性和精确性是否满足业务需求(欠拟合或过拟合);二是从业务逻辑进行评估与解释,从业务直觉进行判定模型结果是否符合。
(6)方案实施:模型的创建不是项目的结束。模型的作用是从数据中发现知识规律,获得的知识需要以方便于客户使用的方式重新组织和展现。根据客户需求的不同,可以将发现的知识规律和过程组织成可读文本形式(数据分析挖掘报告),或者将模型输出的规则部署在系统中并以BI形式呈现。