本节书摘来自华章社区《Python数据挖掘:概念、方法与实践》一书中的第1章,第1.2节如何进行数据挖掘,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问云栖社区“华章社区”公众号查看
1.2 如何进行数据挖掘
由于数据挖掘传统上被视为KDD全过程中的一步,并且越来越成为数据科学过程的一部分,在本节中我们将熟悉其所涉及的步骤。进行数据挖掘有多种流行的方法。本书中我们重点介绍4种方法:其中两种取自数据挖掘理论的教科书,一种取自行业中非常实用的过程,一种是为教授入门者而设计的。
1.2.1 Fayyad等人的KDD过程
知识发现和数据挖掘过程的早期版本之一由Usama Fayyad、Gregory Piatetsky-Shapiro和 Padhraic Smyth在1996年的一篇论文(The KDD Process for Extracting Useful Knowledge from Volumes of Data)中定义。这篇论文在当时很重要,它将快速变化的KDD方法论精炼为具体的一组步骤。如下步骤以原始数据开始,以知识作为结束:
数据选择。这一步的输入是原始数据,输出是较小的数据子集,称为目标数据。
数据预处理。目标数据得到清理,删除异常值,处理缺失数据。这一步的输出是预处理数据或清理后数据。
数据变换。清理后的数据组织成适合于挖掘步骤的格式,如果有必要,精简特征或者变量的数量。这一步的输出是变换后数据。
数据挖掘。用适合于问题的一种或者多种数据挖掘算法对变换后数据进行挖掘,这一步的输出是发现的模式。
数据解释/评估。评估所发现模式解决手上问题的能力。这一步的输出是知识。
由于这一过程从原始数据得出知识,因此,这些作者对“数据库中的知识发现”这一术语作出了真正的贡献,而不仅仅是简单的数据挖掘。
1.2.2 韩家炜等人的KDD过程
韩家炜、Micheline Kamber和裴健所著的流行数据挖掘教科书《Data Mining: Concepts and Techniques》描述了知识发现过程的另一个版本,其中的步骤也是从原始数据导出知识:
数据清理。这一步的输入是原始数据,输出是清理后的数据。
数据整合。在这一步中,清理后数据被整合(如果它们来自多个来源)。这一步的输出是整合数据。
数据选择。数据集被精简为仅包含手上问题所需的数据。这一步的输出是较小的数据集。
数据变换。较小的数据集被合并为一种适合于将来的数据挖掘步骤的形式,称为变换后数据。
数据挖掘。变换后的数据由设计用于发现数据中模式的智能算法处理。这一步的输出是一种或者多种模式。
模式评估。评估所发现模式的兴趣度和解决手上问题的能力。这一步的输出是适用于每个模式(代表知识)的兴趣度计量。
知识表示。在这一步中,通过各种手段(包括可视化)将知识传达给用户。
在Fayyad和韩的方法中,都预计该过程在必要时需要多次重复这些步骤。例如,如果在变换步骤中,分析人员发现需要再进行一次数据清理或者预处理,这两种方法都规定分析人员应该按原路返回,完成前面未完成步骤的第二次迭代。
1.2.3 CRISP-DM过程
KDD过程的第3种流行版本称为CRISP-DM,其用于许多商业和应用领域,它的全称是CRoss-Industry Standard Process for Data Mining(跨行业数据挖掘标准过程),包含如下步骤:
1)业务理解。在这一步中,分析人员花时间从业务视角理解数据挖掘项目的动机。
2)数据理解。在这一步中,分析人员熟悉数据及其潜在优势和不足,并开始生成假设。分析人员的任务是在必要时重新评估第1步的业务理解。
3)数据准备。这一步包含其他模型作为单独步骤列举的选择、整合、变换和预处理步骤。CRISP-DM模型对这些任务的执行顺序没有要求。
4)建模。这一步中对数据应用算法以发现模式。这一步骤最接近于其他KDD模型中的数据挖掘步骤。分析人员的任务是在建模和挖掘步骤需要的时候重新评估第3步的数据准备。
5)评估。评估模型和发现的模式在回答手上的业务问题中的价值。分析人员的任务是在必要时重温第1步的业务理解。
6)部署。呈现发现的知识和模型,并投产以解决手上的原始问题。
这种方法的优势之一是,迭代是内建的。在特定步骤之间,分析人员将检查当前步骤仍然与之前的某些步骤保持一致。另一个优势是明确地提醒分析人员,即使在评估步骤中也要将业务问题放在项目的核心位置。
1.2.4 六步过程
当我在大学里教授数据科学入门课程时,使用了自己创造的一种混合方法。这种方法称为“六步过程”,这种专门设计的方法对于授课很合适。我的六步方法消除了没有经验的学生在CRISP-DM中的开放式任务(如业务理解)或者基于企业任务(如部署)中可能遇到的歧义问题。此外,六步方法要求学生在过程的开始和最后回答“为什么这么做”和“这有什么意义”的问题,以拓展学生的批判性思维技能。我的六步方法如下:
1)问题陈述。在这一步中,学生确定他们试图解决的问题。在理想状况下,了解进行这些工作的原因可以提高他们的积极性。
2)数据收集和存储。在这一步中,学生们定位数据并规划这一问题所需数据的存储。他们还提供一些信息,这些信息与回答他们感兴趣的问题所需数据的来源、格式以及所有字段含义相关。
3)数据清理。在这一步中,学生们认真选择真正需要的数据,并将数据处理成挖掘步骤所需的格式。
4)数据挖掘。在这一步中,学生形式化所选择的数据挖掘方法。他们描述使用的算法以及原因。这一步的输出是模型和发现的模式。
5)表示和可视化。在这一步中,学生直观地展示工作成果。这一步的输出可以是表格、图示、图形、图表、网络框图、映射图等。
6)问题解决。这一步对数据挖掘初学者很重要,它明确地鼓励学生评估第5步中展示的模式是不是第1步中提出的问题的答案。学生们被要求说明模型或者结果的局限性,确定用这种方法无法回答的部分相关问题。
1.2.5 哪一种数据挖掘方法最好
2014年,Gregory Piatetsky-Shapiro在其非常受欢迎的数据挖掘电子邮件通讯KD-Nuggets上进行的调查包含了一个问题:“你在分析、数据挖掘或者数据库科学项目中使用哪一种主要方法?”
43%的调查对象表示他们使用CRISP-DM方法。
27%的调查对象使用自己的方法或者混合方法。
7%的调查对象使用传统的KDD方法。
其余调查对象选择另一种KDD方法。
这些结果和2007年同一邮件通讯所做的相同调查结果类似。
我的最佳建议是,不要过于重视用于数据挖掘项目的方法,随便挑一种即可。如果完全不使用任何方法,那么就有遗漏重要步骤的危险。选择看上去对你的项目和需求有效的方法,然后尽可能遵循该方法的步骤。
在本书中,我们将根据相关章节中研究的技术,选择不同的数据挖掘方法。例如,尽管本书的焦点是数据挖掘步骤,但是仍然需要对每章中的项目实施健全的业务理解(CRISP-DM)或者问题陈述(六步过程)步骤,以便理解我们执行任务的原因和结果的意义。此外,为了学习特定的数据挖掘方法,我们可能还必须进行一些预处理,不管这一过程称为“数据清理”、“整合”还是“变换”。但是通常来说,我们将尽可能减少此类任务,将焦点清晰地置于数据挖掘之上。在最后一章有个显著的例外,我们将在那里展示处理缺失数据和异常数据的具体方法。最后,尽管对于将数据挖掘过程的结果展示给受众来说,数据可视化通常非常重要,我们仍然将尽可能减少这些任务,以便将重点放在主要的工作—数据挖掘上。