《Python数据挖掘:概念、方法与实践》一1.2 如何进行数据挖掘

简介:

 本节书摘来自华章出版社《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)或者问题陈述(六步过程)步骤,以便理解我们执行任务的原因和结果的意义。此外,为了学习特定的数据挖掘方法,我们可能还必须进行一些预处理,不管这一过程称为“数据清理”、“整合”还是“变换”。但是通常来说,我们将尽可能减少此类任务,将焦点清晰地置于数据挖掘之上。在最后一章有个显著的例外,我们将在那里展示处理缺失数据和异常数据的具体方法。最后,尽管对于将数据挖掘过程的结果展示给受众来说,数据可视化通常非常重要,我们仍然将尽可能减少这些任务,以便将重点放在主要的工作—数据挖掘上。

相关文章
|
6天前
|
Web App开发 数据采集 前端开发
基于Python的Selenium详解:从入门到实践
基于Python的Selenium详解:从入门到实践
|
6天前
|
开发者 Python
Python中的异常处理:原理与实践
Python中的异常处理:原理与实践
|
6天前
|
机器学习/深度学习 数据可视化 数据挖掘
Python数据分析:从入门到实践
Python数据分析:从入门到实践
|
6天前
|
数据采集 存储 数据可视化
Python数据分析从入门到实践
Python数据分析从入门到实践
|
1天前
|
Python
解释Python中的函数式编程的概念,并举例说明。
【2月更文挑战第6天】【2月更文挑战第14篇】解释Python中的函数式编程的概念,并举例说明。
|
1天前
|
Python
Python并发编程实践
Python作为一门高级编程语言,同时也是一门优秀的并发编程语言。在本文中,我们将介绍Python中的并发编程相关概念以及如何利用Python的多线程和多进程来提高程序的性能。
|
2天前
|
人工智能 数据挖掘 Python
Python中的并发编程实践与性能优化
Python作为一种广泛应用于Web开发、数据分析和科学计算等领域的高级编程语言,在处理大规模并发请求时常常面临性能瓶颈。本文将介绍Python中常用的并发编程技术,如多线程、多进程和协程,并探讨如何通过这些技术实现性能优化。
|
4天前
|
数据挖掘 数据处理 Python
使用Python自动化处理Excel数据
【2月更文挑战第4天】在现代社会,数据处理已经成为了一项重要的任务。而Excel作为一款广泛应用于数据处理的软件,已经成为了许多人的首选。不过,对于大规模的数据处理任务,手动进行Excel操作可能是低效的。本文将介绍如何使用Python编程语言来自动化处理Excel数据。
21 9
|
4天前
|
数据可视化 数据挖掘 Python
Python中的数据可视化工具Matplotlib详解
本文将深入探讨Python中广泛应用的数据可视化工具Matplotlib,介绍其基本概念、常用功能和实际应用,帮助读者更好地利用Matplotlib进行数据可视化,提升技术水平。
|
5天前
|
数据处理 Python
Python中字符串、列表、字典常用的拼接方法有哪些?
Python中字符串、列表、字典常用的拼接方法有哪些?
28 1

热门文章

最新文章