NO.53
数据挖掘概述
Mr. 王:今天我们来讨论一个新的话题,你听说过数据挖掘吗?
小可:这个名字倒是挺有意思的啊,不过数据是一种抽象的、虚拟的概念,要怎么去挖掘呢?
Mr. 王:数据挖掘是时下非常热门的一个领域。在大数据时代的背景下,数据量变得非常大,不过我们现在处于一种拥有的数据量大而“知识”匮乏的状态。
小可:这个“数据”和“知识”分别怎么解释呢?
Mr. 王:比如某商家存有大量会员的信息数据,现在公司有一种新产品,他们想知道这些会员中哪些人有更大的可能性去购买这种新产品,从而有效地制定下一步营销战略。从直观上看,仅仅通过这些数据是很难看出来的。对于比较大的企业,它的会员数量也会非常大,用人工去分析海量的数据是不现实的。再比如银行存有大量的会员用户信息,如工作、信用记录、年收入等,他们希望通过一种手段来鉴别贷款给哪些用户风险会比较小,而哪些用户是高风险的,贷款给他们容易形成不良贷款。这是银行必须考虑的问题,有助于保护银行的信贷资金安全,降低银行运营风险等。
但是大银行的会员用户是非常多的,处理数据难度是非常大的。还比如有一家游戏公司,希望发现每天游戏玩家大多集中在什么时候登录、登录的时间有多长。这样的数据有助于该公司去平衡游戏服务器的负载,对于调整维护和客服人员的工作时间也是很有意义的。但是比较火热的游戏的登录用户非常多,而且经常玩的玩家登录的次数也会比较多,这就形成了海量的用户登录数据。人工去分析这些数据是很困难的。
在这三个例子中,他的手中都拥有数量规模很大的数据,可是虽然拥有这种大数据,却不能直接对这些数据加以利用。另外,他并不关心这些数据中的每一个细节,他们需要的是一种“知识”,这种知识是来源于大数据的有价值的信息,只有这些有价值的信息才能有效地帮助他们去进一步指导策略或者行动。而数据挖掘,就是从数据中去发现有价值的信息这样一种研究领域。
小可:听起来就觉得这是一项很有意义、有价值的工作啊!不过,数据挖掘要怎么进行呢?或者说这样的“知识”应该如何去发现呢?
Mr. 王:我先举个最直观的例子。比如下面是一组来自某商场销售记录的片段。
假如你是销售经理的话,你会更倾向于在哪些人中销售产品A 呢?
小可:那当然是20 多岁的人了。从前面的销售记录来看,30 岁以上的人基本上不会购买产品A,而30 岁以下的人购买产品A 的很多。
Mr. 王:其实数据挖掘期待的就是这样一种知识的发现。通过对这组数据的分析,我们发现是否购买产品A 与年龄呈现一种高度相关的分布。发现30 岁以下的人更倾向于购买产品A,而30 岁以上的人不会购买产品A,所以我认为,在其他的人群和以后的销售中也会呈现这样的分布。因此,我要更集中地在20 多岁的人中推销产品A。这就是我挖掘这组数据得出的结论。当数据量变得不是10 条左右的数据,而是达到PB 级的记录时,单单凭借这些杂乱无章的数据,我们很难利用它们。所以我们需要一种手段,将大批量的数据有效地转化成人类能懂、有实际价值意义的这样的知识,以指导我们进行以后的一些行动。这种手段或者说技术,就是“数据挖掘”。
数据挖掘的分类
小可:哦,这样就清楚多了。那么在计算机中,数据挖掘的具体方法都有哪些呢?
Mr. 王:一般意义上,我们将数据挖掘算法分为两种,一种是聚类算法,一种是分类算法。聚类算法是对我们要分析的数据直接进行类别划分的那些数据挖掘算法。聚类算法的代表有k-means、k- 中心点、DBSCAN 等。而分类算法是,首先用一组样本对机器进行一个“训练”。
也就是说,首先从这组样本中发掘出分类的标准,然后再对我们要分析的目标数据进行类别划分,从而得出结论。分类算法典型的代表是决策树构建算法Naive Bayes(朴素贝叶斯分类器)等。分类算法使用的样本称作“训练集”。出于有无训练集的区别,我们也称聚类算法是无监督学习,因为它没有训练集对其进行一个训练,直接在目标数据上进行操作;分类算法我们称为有监督学习,它有一个训练集对其进行训练,可以先得出一个从样本中提取出的模式,然后再对目标数据进行分类。
比如在前面的例子中,我们可以把这个销售记录表当作训练集,交给数据挖掘算法,经过数据挖掘算法的分析和处理,我们就可以得到一个知识,这个知识就是大于30 岁的客户大多不会购买产品A,而小于30 岁的客户倾向于购买产品A。在处理以后的数据时,就可以用这个标准来判断。比如来了一个25 岁的会员顾客,我们就可以把产品A 推荐给他。
小可:因为有训练集,所以它是一个分类算法。它做的事情就是分析样本,得出知识,然后对目标数据进行一个分类吧?
Mr. 王:没错,分类算法就是在训练集的监督下,得出对后来再出现的数据的一种分类标准。
小可:那么数据挖掘这个过程具体是怎么实现的呢?就是数据挖掘算法的内部具体是怎么
做的呢?
Mr. 王:下面就介绍几种经典的数据挖掘算法。另外,数据挖掘操作的集合往往是比较大的,所以我们依然要想到,如何用大数据的思想去处理数据挖掘问题。在介绍完每个数据挖掘算法之后,我们就谈谈如何用适用于大数据的并行平台MapReduce 来进行数据挖掘的方法和策略。
下期精彩预告
经过学习,我们了解了一下了解数据挖掘的概述与数据挖掘的分类。在下一期中,我们将进一步研究一下聚类算法,更加详细的解释算法。更多精彩内容,敬请关注灯塔大数据,每周五不见不散呦!
文章来源:王宏志
文章编辑:秦革