《Python数据挖掘:概念、方法与实践》一 第1章 扩展你的数据挖掘工具箱

 本节书摘来自华章出版社《Python数据挖掘:概念、方法与实践》一书中的第1章,第1.1节,作者[美] 梅甘·斯夸尔(Megan Squire),更多章节内容可以访问“华章计算机”公众号查看。

第1章

扩展你的数据挖掘工具箱

面对感官信息时,人类自然想要寻找模式,对其进行区别、分类和预测。这种寻找周围模式的过程是人类的基本活动,人类的大脑对此很擅长。利用这种技能,我们的祖先更好地掌握了狩猎、聚会、烹饪和组织知识。因此,人类最早计算机化的任务是模式识别和模式预测也就不足为奇了,这种渴望一直持续到现在。近来,根据给定项目的目标,使用计算机找出数据中的模式,已经涉及数据库系统、人工智能、统计学、信息检索、计算机视觉和其他各种计算机科学子领域,以及信息系统、数学或者商业等。不管我们将这种活动称作什么—数据库中的知识发现、数据挖掘、数据科学,其主要使命始终是找出有趣的模式。

这一使命听起来似乎有些微不足道,数据挖掘已经存在了很长时间,对其实现已经积累了足够多的变种,但是现在它已经成为了一个广泛而复杂的领域。我们可以想象一所烹饪学校,其中的每位新人首先学习的是如何煮开水,如何使用刀具,然后才转向更高级的技能,如制作松饼或者为鸡肉去骨。在数据挖掘中,也有一些常用的技术,刚入门的数据挖掘人员也要学习它们:如何构建分类器,如何在数据中找到聚类宏。但是,本书的主题是精通Python数据挖掘,所以,作为“精通”级别的书籍,目标是传授给你一些在之前的数据挖掘项目中未曾见过的技术。

在第1章中,我们将介绍如下主题:

什么是数据挖掘?要确定数据挖掘在不断增强的其他相似概念中的位置,还将学习这一学科成长和变化的历史。

我们如何进行数据挖掘?在此,我们将对比数据挖掘项目中常用的几种过程或者方法论。

数据挖掘中使用哪些技术?在这一部分,将总结数据挖掘定义中包含的典型数据分析技术,并强调这本精通级书籍将要涵盖的较为独特却未得到应有重视的技术。

如何建立数据挖掘工作环境?最后,我们将经历建立基于Python开发环境的过程,我们将用这个环境完成本书余下部分中的项目。

1.1 什么是数据挖掘

前文解释了数据挖掘的目标是找出数据中的模式,但是细看之下,这一过分简单的解释就站不住脚。毕竟,寻找模式难道不也是经典统计学、商业分析、机器学习甚至更新的数据科学或者大数据的目标吗?数据挖掘和其他这些领域有什么差别呢?当我们实际上是忙于挖掘模式时,为什么将其称作“数据挖掘”?我们不是已经有数据了吗?

从一开始,“数据挖掘”这一术语就明显有许多问题。这个术语最初是统计学家们对盲目调查的轻蔑叫法,在这种调查中,数据分析人员在没有首先形成合适假设的情况下,就着手寻找模式。但是,这一术语在20世纪90年代成为主流,当时的流行媒体风传一种激动人心的研究,将成熟的数据库管理系统领域与来自机器学习和人工智能的最佳算法结合起来。“挖掘”这一单词的加入预示着这是现代的“淘金热”,执著、无畏的“矿工”们将发现(且可能从中得益)之前隐藏的珍宝。“数据本身可能是珍稀商品”这一思路很快吸引了商业上和技术刊物的注意,使他们无视先驱们努力宣传的、更为全面的术语—数据库中的知识发现(KDD)。

但是,“数据挖掘”这一术语沿用了下来,最终,该领域的一些定义试图改变其解释,认为它指的只是更漫长、更全面的知识发现过程中的一步。今天“数据挖掘”和KDD被视为非常相似、紧密相关的术语。

那么,其他相关术语如机器学习、预测性分析、大数据和数据科学又是怎么回事?这些术语和数据挖掘或者KDD是不是一回事?下面我们比较这些术语:

机器学习是计算机科学中的一个非常特殊的子领域,其焦点是开发能从数据中学习以作出预测的算法。许多数据挖掘解决方案使用了来自机器学习的技术,但是并不是所有数据挖掘都试图从数据中作出预测或者学习。有时候,我们只是想要找到数据中的一个模式。实际上,在本书中,我们所研究的数据挖掘解决方案中只有少数使用了机器学习技术,而更多的方案中并没有使用。

预测性分析有时简称为分析,是各个领域中试图从数据中作出预测的计算解决方案的统称。我们可以思考商业分析、媒体分析等不同术语。有些(但并不是全部)预测性分析解决方案会使用机器学习技术进行预测,但是同样,在数据挖掘中,我们并不总是对预测感兴趣。

大数据这一术语指的是处理非常大量数据的问题和解决方案,与我们是要搜索数据中的模式还是简单地存储这些数据无关。对比大数据和数据挖掘这两个术语,许多数据挖掘问题在数据集很大时更为有趣,所以为处理大数据所开发的解决方案迟早可用于解决数据挖掘问题。但是这两个术语只是互为补充,不能互换使用。

数据科学是最接近于KDD过程的术语,数据挖掘是它们的一个步骤。因为数据科学目前是极受欢迎的流行语,它的含义将随着这一领域的成熟而继续发展和变化。

我们可以查看Google Trends,了解上述术语在一段时期内的搜索热度。Google Trends工具展示了一段时期内人们搜索各种关键词的频度。在图1-1中,新出现的术语“大数据”目前是炙手可热的流行语,“数据挖掘”居于第二位,然后是“机器学习”、“数据科学”和“预测性分析”。(我试图加入搜索词“数据库中的知识发现”,但是结果太接近于0,无法看到趋势线。)y轴以0~100的指数显示了特定搜索词的流行度。此外,我们还将Google Trends给出的2014~2015年每周指数组合为月平均值。

时间: 2024-12-02 19:21:51

《Python数据挖掘:概念、方法与实践》一 第1章 扩展你的数据挖掘工具箱的相关文章

《Python数据挖掘:概念、方法与实践》——第1章扩展你的数据挖掘工具箱

第1章 扩展你的数据挖掘工具箱 面对感官信息时,人类自然想要寻找模式,对其进行区别.分类和预测.这种寻找周围模式的过程是人类的基本活动,人类的大脑对此很擅长.利用这种技能,我们的祖先更好地掌握了狩猎.聚会.烹饪和组织知识.因此,人类最早计算机化的任务是模式识别和模式预测也就不足为奇了,这种渴望一直持续到现在.近来,根据给定项目的目标,使用计算机找出数据中的模式,已经涉及数据库系统.人工智能.统计学.信息检索.计算机视觉和其他各种计算机科学子领域,以及信息系统.数学或者商业等.不管我们将这种活动称

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

1.2 如何进行数据挖掘 由于数据挖掘传统上被视为KDD全过程中的一步,并且越来越成为数据科学过程的一部分,在本节中我们将熟悉其所涉及的步骤.进行数据挖掘有多种流行的方法.本书中我们重点介绍4种方法:其中两种取自数据挖掘理论的教科书,一种取自行业中非常实用的过程,一种是为教授入门者而设计的. 1.2.1 Fayyad等人的KDD过程 知识发现和数据挖掘过程的早期版本之一由Usama Fayyad.Gregory Piatetsky-Shapiro和 Padhraic Smyth在1996年的一篇

《软件工程方法与实践》—— 第2章 软件过程 2.1 引言

本节书摘来自华章出版社<软件工程方法与实践>一 书中的第1章,第1.1节,作者窦万峰,更多章节内容可以访问"华章计算机"公众号查看. 第2章 软 件 过 程 2.1 引言 大型软件的开发一直是开发人员和机构所面临的严峻的挑战,特别是软件危机出现以后,人们为了解决软件危机提出了各种各样的方法.从技术方面入手,这些方法直接影响了系统分析的思想,结构化程序设计成为程序设计的主流.人们从管理方面入手, 这些方法解决软件的一个核心问题,这就产生了软件工程的概念.软件工程继续发展,人们

《软件工程方法与实践》—— 第1章 软件工程概述 1.1 引言

本节书摘来自华章出版社<软件工程方法与实践>一 书中的第1章,第1.1节,作者窦万峰,更多章节内容可以访问"华章计算机"公众号查看. 第1章 软件工程概述 1.1 引言 软件工程(Software Engineering,SE)是在20世纪60年代末期提出的.提出这一概念的目的是倡导以工程化的思想.原则和方法开发软件,并用来解决软件开发和维护过程中出现的诸多问题.

《软件工程方法与实践》—— 第3章 软件过程模型 3.1 引言

    本节书摘来自华章出版社<软件工程方法与实践>一 书中的第3章,第3.1节,作者窦万峰,更多章节内容可以访问"华章计算机"公众号查看. 第3章     软件过程模型 3.1 引言     软件是逻辑的和复杂的,完全依靠开发者的智力思维活动.软件开发过程涉及人员的有效组织与管理,以充分发挥开发人员的能动性.因而,软件开发过程是非常复杂的.然而,软件开发过程中的各种活动具有一般性的规律,可以对软件开发过程进行定量度量和优化,人们总结了这些规律,提出了软件过程模型.    

《Python数据挖掘:概念、方法与实践》一1.4 如何建立数据挖掘工作环境

1.4 如何建立数据挖掘工作环境 前面几节帮助我们更好地了解了将要从事的项目及原因.现在可以开始建立一个开发环境,支持所有项目工作了.由于本书的目的是介绍如何构建挖掘数据模式的软件,因此我们将用一种通用编程语言编写程序.Python编程语言具有非常强大且仍在不断成长.专门致力于数据挖掘的社区.这个社区已经贡献了一些非常方便的程序库,我们可以用来进行高效的处理,我们还可以依靠他们提供的许多数据类型,更快地工作. 在本书编著时,有两个版本的Python可供下载:现在被视为经典的Python 2(最新

《多核与GPU编程:工具、方法及实践》----第3章 共享内存编程:线程 3.1 引言

第3章 共享内存编程:线程 本章目标: 学习线程的定义以及创建方法. 学习完成特定任务的初始化线程方法. 学习多种终止多线程程序的技术. 理解多线程访问共享数据过程中的主要问题,例如竞争和死锁. 学习信号量和监视器的定义和使用方法. 熟悉经典同步问题及其解决方法. 学习运行时动态管理线程. 学习多线程程序的调试技术. 3.1 引言 从20世纪60年代麻省理工学院引入兼容分时系统(CTSS)以来,多个程序并发执行的现象已经变得较为常见.操作系统通过中断当前正在执行的程序并将CPU的控制权交由另一个

《多核与GPU编程:工具、方法及实践》----第2章 多核和并行程序设计 2.1 引言

第2章 多核和并行程序设计 本章目标 学习设计并行程序的PCAM方法. 使用任务图和数据依赖图来识别可以并行执行的计算部分. 学习将问题的解法分解为可并发执行部分的流行的分解模式. 学习编写并行软件的主要程序结构模式,如主/从和fork/join. 理解分解模式的性能特点,如流水线. 学习如何结合分解模式和合适的程序结构模式. 2.1 引言 即使是对于经验丰富的专业程序员,向多核编程的过渡也并不简单.多核和并行编程往往会打破语句按严格顺序执行的串行程序的传统风格.当许多事情在同一时间发生时,正如

《多核与GPU编程:工具、方法及实践》----第1章 概 述 1.1 多核计算机时代

第1章 概 述 本章目标: 了解计算机(计算机体系架构)设计的发展趋势以及该趋势如何影响软件开发. 学习基于Flynn分类的计算机分类方法. 学习评估多核/并行程序性能即加速比和效率的必备工具. 学习测量和报告程序性能的正确实验方法. 学习Amdahl和Gustafson-Barsis定律,并使用这两个定律预测并行程序性能. 1.1 多核计算机时代 在过去的40年中,数字计算机已经成为技术和科学发展的基石.遵循20世纪70年代摩尔(Gordon E. Moore)发现的摩尔定律,计算机的信息处理