
1.2 什么是数据挖掘
与数据分析相同,数据挖掘技术也是一门广泛应用于各个学科的技术,本节将分别介绍数据挖掘的概念、发展历史及主要任务。
1.2.1 数据挖掘相关概念
前文介绍了数据分析的发展历史,数据分析与数据挖掘联系紧密却又不尽相同。数据分析侧重于通过对历史数据的统计分析,提炼出数据中深层次的价值,并将结果中的有效信息呈现出来,那么数据挖掘又是什么呢?
数据挖掘被定义为从一组巨大的原始数据中提取可用信息的过程,它意味着使用一个或多个软件分析大量数据的数据模式。数据挖掘在很多领域中都有应用,比如科学研究。数据源可以包括数据库、数据仓库、网络和其他信息存储库或动态流入系统的数据。商业智能涵盖了严重依赖聚合的数据分析,主要关注业务信息,而数据挖掘也是特殊的数据分析技术,侧重于统计建模和知识发现,用于预测目的而不是纯粹的描述目的。在统计应用中,数据分析可分为描述性统计分析、探索性数据分析(Exploratory Data Analysis,EDA)和验证性数据分析(Confirmatory Data Analysis,CDA)。EDA侧重于发现数据中的新特征,而CDA则侧重于确认或证伪现有假设。预测分析侧重于应用统计模型进行预测或分类,而文本分析则应用统计、语言和结构技术从文本源(一种非结构化数据)中提取和分类信息。以上是各种数据分析。
如果觉得专业术语晦涩难懂,那么不妨这样理解数据挖掘和数据分析的区别:例如,对泰坦尼克号幸存者的数据进行分析发现,是否能幸存与年龄、性别、所在舱位和社会地位相关;而数据挖掘所做的工作则是通过编写好的算法从数据中提取有用的信息,从而对船上的人员是否能存活进行合理的预测。
1.2.2 数据挖掘起源
随着大数据时代的来临,数据挖掘技术日益普及。大数据,这一规模庞大的数据集,经过计算机的分析处理,能够揭示出人类可以理解的特定模式、关联和趋势。这种数据集合不仅体量巨大,而且涵盖了多种类型和内容丰富的信息,为各行各业提供了前所未有的洞察力和决策支持。
因此,对于如此大量的数据,人工干预的简单统计是行不通的,需要由数据挖掘过程来满足需求。这个过程将从交易、照片、视频、平面文件等原始数据中提取相关信息,并自动处理这些信息以生成对企业采取行动有用的报告。因此,数据挖掘过程对于企业发现数据中的模式和趋势、汇总数据并提取相关信息来做出更好的决策至关重要。
到20世纪90年代初,数据挖掘被认为是一个子过程或更大过程中的一个步骤,称为数据库中的知识发现(Knowledge Discovery in Databases,KDD)。KDD最常用的定义是“在数据中识别有效的、新颖的、潜在有用的和最终可理解的模式的非平凡过程”。
构成KDD流程的一部分子流程如下。
(1)了解应用程序并确定KDD过程的目标。
(2)创建目标数据集。
(3)数据清洗和预处理。
(4)将KDD过程的目标与特定的数据挖掘方法相匹配。
具体的流程可以参照图1-2。

图1-2 数据库中的知识发现(KDD)流程
到20世纪90年代末,数据挖掘已经是一项众所周知的技术。这打开了允许组织记录客户购买数据的大门,可以挖掘此数据来识别客户购买模式。数据挖掘的普及在过去十年中持续快速增长。在过去的二十年中,数据挖掘作为一门学科变得非常流行,其应用程序广泛应用于商业、政府和科学等各领域。从文本挖掘开始,它已经发展了很多技术,未来用它来观察不同数据(例如,空间数据、不同来源的多媒体数据)的使用会非常有趣。
1.2.3 数据挖掘要解决的问题
面对数以千万甚至上亿并且格式各异的数据,很难再用纯人工或纯统计的方法从如此多的变量中找到其隐含价值,此时需要用到一个与数据挖掘相关的概念——机器学习。机器学习是规范的解决方案,能够充分利用数据中的每一个部分,自动提取价值。数据挖掘就提供了这样一系列的框架、工具和方法,可以处理不同类型的大量数据,并且使用复杂的算法部署,去探索数据中的模式。总之,数据挖掘的产生原因主要有以下几点。
(1)海量数据。随着互联网技术的发展,数据的生产、收集和存储也越来越方便,海量数据因此产生。比如,微信每天要产生超过380亿条数据;今日头条每天要发布上百万篇新文章;淘宝每天有上千万的包裹要发出。
(2)维度众多。在一个多维度的数据中,每增加一个维度都会增加数据分析的复杂程度。比如,点外卖事件涉及的维度就有浏览饭店的菜品(形式有文字、图片或语音、视频等)、浏览时间、下单价格、交易流程、分配配送员及GPS信息、完成订单后的评价等。
(3)问题复杂。通常用数据挖掘解决的问题都比较复杂,很难用一些规则或简单的统计方式给出结果。如果让开发者写一个微波炉的智能控制逻辑,难度不是很大,即便是有十几个甚至几十个按钮的控制中心,也不过是多花费一点时间而已。但如果编写一段代码来区分某图片中是否有一只猫咪,那要考虑的问题就太多了,使用传统的方法很难解决,而这恰恰是数据挖掘所擅长的。
对于每一种基本任务,除了要了解它们具体可以做什么,更重要的是要学习每一种任务对应哪些行之有效的方法。举个例子来说,分类与预测,常用的方法有决策树、神经网络、朴素贝叶斯、支持向量机、随机森林等。这些典型方法的具体原理是什么,怎么使用,如何应用于具体的数据挖掘任务,将会在后续的章节中逐一说明。
1.2.4 数据挖掘任务
数据挖掘位于机器学习、统计和数据库系统的交界处。正如之前讲述的,它可以以多种方式为现代行业赋能。因此,我们可以将数据挖掘任务分为以下几大类。
(1)分类与预测。这是一种基于类别标号的学习方式,这种标号若是离散的,则属于分类问题;若是连续的,则属于预测问题,或者称为回归问题。从广义上来说,不管是分类还是回归,都可以看作一种预测,差异就是预测的结果是离散的还是连续的。
(2)聚类分析。就是“物以类聚,人以群分”在原始数据集中的运用,其目的是把原始数据聚成几类,从而使类内相似度高,类间差异性大。
(3)关联规则。数据挖掘可以用来发现规则,关联规则属于一种非常重要的规则,即通过数据挖掘方法,发现事务数据背后所隐含的某一种或多种关联,从而利用这些关联来指导商业行为和决策。
(4)异常值检测。根据一定准则识别或检测出数据集中的异常值,所谓异常值就是和数据集中的绝大多数数据表现不一致的值。
(5)智能推荐。这是数据挖掘中一个很活跃的研究和应用领域,在各大电商网站中都会有各种形式的推荐,例如,推荐同类用户所购买的产品。