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

相关文章
|
4天前
|
机器学习/深度学习 算法 搜索推荐
从理论到实践,Python算法复杂度分析一站式教程,助你轻松驾驭大数据挑战!
【10月更文挑战第4天】在大数据时代,算法效率至关重要。本文从理论入手,介绍时间复杂度和空间复杂度两个核心概念,并通过冒泡排序和快速排序的Python实现详细分析其复杂度。冒泡排序的时间复杂度为O(n^2),空间复杂度为O(1);快速排序平均时间复杂度为O(n log n),空间复杂度为O(log n)。文章还介绍了算法选择、分而治之及空间换时间等优化策略,帮助你在大数据挑战中游刃有余。
19 4
|
6天前
|
JSON 安全 数据安全/隐私保护
深度剖析:Python如何运用OAuth与JWT,为数据加上双保险🔐
【10月更文挑战第2天】当讨论Web应用安全时,认证与授权至关重要。OAuth 2.0 和 JSON Web Tokens (JWT) 是现代Web应用中最流行的两种认证机制。OAuth 2.0 是一种开放标准授权协议,允许资源拥有者授予客户端访问资源的权限,而不需直接暴露凭据。JWT 则是一种紧凑、URL 安全的信息传输方式,自我包含认证信息,无需服务器查询数据库验证用户身份。在 Python 中,Flask-OAuthlib 和 PyJWT 分别用于实现 OAuth 2.0 和 JWT 的功能。结合两者可构建高效且安全的认证体系,提高安全性并简化交互过程,为数据安全提供双重保障。
18 7
|
4天前
|
Python
Python中的push方法详解与实例
Python中的push方法详解与实例
13 3
|
4天前
|
数据采集 存储 监控
如何使用 Python 爬取商品数据
如何使用 Python 爬取京东商品数据
20 3
|
4天前
|
数据采集 机器学习/深度学习 数据挖掘
数据也需SPA?Python转换大法,给你的数据做个全身放松SPA!
【10月更文挑战第4天】在数字化时代,数据犹如企业的血液,贯穿于各项业务之中。就像人需要定期SPA恢复活力,数据也需要“转换大法”来优化结构和提升质量,从而更好地支持决策分析与机器学习。本文探讨了如何使用Python进行数据SPA,包括理解需求、数据清洗、格式转换及聚合分析等步骤。通过Python强大的Pandas库,我们可以轻松完成缺失值填充、重复记录删除等任务,并实现数据格式的标准化,确保数据更加整洁、有序,助力高效分析与决策。为企业数据注入新的活力,迎接更多挑战。
10 1
|
5天前
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
17 2
|
5天前
|
存储 Python
python列表操作和方法
python列表操作和方法
11 1
|
6天前
|
数据采集 机器学习/深度学习 存储
使用 Python 清洗日志数据
使用 Python 清洗日志数据
14 2
|
6天前
|
设计模式 测试技术 Python
探索Python中的装饰器:从入门到实践
在编程的世界里,代码的重用和模块化是提高效率的关键。Python提供了一种强大的工具——装饰器,它允许我们在不修改原有函数代码的情况下增加额外的功能。本文将引导你理解装饰器的概念,通过实例展示如何创建和使用装饰器,以及它们在实际项目中的价值。
16 1
|
1天前
|
Python
Python中tqdm模块的常用方法和示例
`tqdm` 是一个快速、可扩展的Python进度条库,适用于长循环中添加进度提示。通过封装迭代器 `tqdm(iterator)`,可以轻松实现进度显示。支持自定义描述、宽度及嵌套进度条,适用于多种迭代对象。在Jupyter notebook中,可自动调整显示效果。
7 0

热门文章

最新文章