漫谈数据挖掘之数据挖掘概述

前言

最近在从事机器学习和数据挖掘相关的研究和工作,出于总结和整理知识的目的写下这一系列的文章。为了落到实处,讲到算法时不仅会讲原理,也会讲具体的算法实现,可能算法都是基于Python的,如果对于Python不大熟悉的可以参照我写的另一个系列关于数据挖掘Python基础的文章,或者关注公众号QStack,里面有所有的文章和学习资料。

什么是数据挖掘

我觉得KDD就是对数据挖掘的一个很好的概括和诠释,KDD也就是 Knowledge Discovery in Database,也就是从数据中发现知识,有人常说我们现在淹没在数据的海洋里却缺乏信息,也就是缺乏知识。数据挖掘的目的就是利用数据挖掘的技术从数据的海洋里发现有趣的知识模式

数据挖掘相关技术

上面我们已经提到了数据挖掘就是在海量的数据中去发现有趣的知识和模式,那么如何去发现呢?这就牵扯到数据挖掘的一些概念和技术,下面我们就来看一看一些具体的数据挖掘的技术以及这些技术的应用。

频繁模式和关联性分析

频繁模式,从字面上看就是频繁出现的模式,关联性就是事物之间的联系。这个概念看上去好像很抽象,但是在我们的生活中却经常可以遇见,其中最著名的就是啤酒和尿布的案例。啤酒和尿布给人的第一印象就风马牛不相及,没人会把两者联系到一起,不过正如上面所说的数据挖掘就是为了发现一些有趣的模式,这也是它的魅力所在。研究人员通过大量的数据分析和挖掘,发现买尿布的客户总会买啤酒,所以将啤酒和尿布放在一个地方销售,结果啤酒和尿布的销量的得到了很大的提高。

在这个案例中,啤酒和尿布在人们的购物篮中频繁的出现,这就是频繁模式。在频繁模式中我们需要注意两个指标,一个是支持度,一个是置信度。其中支持度就是模式出现的次数与总体的商,在这个案例里就是同时购买啤酒和尿布的用户数除以总用户数,如果支持度太小,说明这个模式可能是个特殊的情况,挖掘的价值就不高。置信度在这个案例里,就是购买啤酒和尿布的客户数除以购买尿布的人数,这说明了两者之间的关联性,置信度越高说明这两者关联性越强,这个模式可信度就越高。

这就是数据挖掘在商业上初级的应用,一个模式的发现背后可能就是数以百万计的利润,这也是各个公司越来越重视数据挖掘的原因。对于频繁模式的挖掘已经有很多的算法,具体的思想和实现我们会在接下来的文章中具体介绍。

分类

分类就是利用训练数据集找出区分和描述数据的模型,然后用这个模型去预测未知数据的类标号。概念理解比较抽象,我们以分类中常用的决策树来简单说明一下这个过程,比如我们需要对客户进行分群,因为同一个类型的客户的兴趣可能很类似,一个用户购买了商品A,和A属于同一类的用户有很大几率也对商品A感兴趣,所以我们就可以把商品A推荐给类内的其他人,这比漫无目的的推销效率要高很多。为了例子的简单我们只考虑两个属性,age和income,分类过程如下图。通过这两个属性我们可以将用户分为A ,B, C。当来了一个新用户我们知道他的age为youth,income为high,我们就可以把他归为A类,然后进行接下来的操作,如推荐商品或其他。分类技术的目的就是构造这样一个模型,然后用这个模型去预测未知数据的类别。
漫谈数据挖掘之数据挖掘概述

聚类

在上面所提的分类技术中,训练数据的类别是知道的,分类所需要做的是找出相关的条件去更好的区分这些类别,让误分类的概率降到最低。而在聚类中是没有已知的类标号的,或者说聚类就是为了找出类标号。如图所示,我们在开始之前并不知道这些点的类别,我们可以过K最近邻将这些点聚类成三个类,如圆圈所画的那样。在现实生活中这些点就是用户,可以用聚类的技术进行用户分群。

漫谈数据挖掘之数据挖掘概述

离群点检测

上面聚类技术让我们去将相似的用户聚类,物以类聚,人以群分。然而就是有一些用户“特立独行”,与其他用户天差地别,如下图所示的红点。我们把这个红点称为离群点。对于离群点研究研究也很多,比如信用卡诈骗,消费行为与大多数用户行为差别很大,这就是离群点,所以在一些风控中,离群点研究有很广泛的应用。
漫谈数据挖掘之数据挖掘概述

最后

点赞就是最大的支持,更多文章和学习资料可以关注微信公众号QStack。