作者: IT168 陈亮  



  什么是数据挖掘?

  对于数据挖掘有两个常见的误区,一个是认为 数据挖掘就是商业智能,另一种则认为数据挖掘高不可攀遥不可及,前者夸大了数据挖掘的能力,后者则夸大了数据挖掘的难度。那么什么是数据挖掘呢?


  数据挖掘是商务智能应用中较高层次的一项技术,而商务智能中还包括数据仓库、ETL、联机分析、商业报表等多项技术。数据挖掘在商务智能应用中提供的是一种自动化或半自动化的数据分析手段,利用数据挖掘用户将可以更加方便地发现数据的模式(其实就是用户关心的业务模式),用户还可以利用这些模式对某些符合特征的数据作出预测。

  那么数据挖掘究竟是怎么做到上面这些貌似神奇的事情的呢?现在主流的数据挖掘技术有两种,其中之一来源于我们每一个人可能都学习过的一门学科——统计学,例如聚类、关联规则、时间序列等,而另外一种则来源于我们每一个人都听说过的一门学科——机器学习(俗称人工智能),例如神经元网络、遗传算法等。

  数据挖掘能干什么?

  前面提到数据挖掘是用于发现数据模式的,那么什么是模式呢?例如著名的啤酒和尿布,这就是数据模式。除了这个之外,根据风向、湿度、云图等进行天气预测、根据网络数据包的分析进行入侵检测、根据用户在线浏览路径推荐商品等等都和数据模式有关系。最神奇的是,在我和我太太准备要宝宝的时候很多朋友都提到了这个说法那个经验,突然发现这也和数据模式有关系。扯远了!数据模式在企业中有什么作用呢?

  分类

  在西方电信经常有促销活动,也就是客户可以免费试用该电信服务商一段时间的服务,结果就发现有些客户经常在多个电信商之间来回选择免费试用服务而永远不会转成长期客户。数据挖掘技术就曾经帮助这些电信公司在客户申请试用服务的时候筛选出那些有可能滥用试用服务的客户而减少成本支出。这就是一个分类的问题。数据挖掘中有很多算法可以进行分类,例如决策树、神经元网络、贝叶斯算法等。

  分类可以把大量数据(在数据挖掘中也称为事例CASE)分成多个类别,而分类的依据就是这些事例中的属性。前面提到的电信服务商就是通过用户最近几期的家用账单、收入、职业等来进行分类的。

  聚类

  听说过物以类聚么?分类有一个同胞兄弟就是聚类,聚类相对分类更加自动,聚类也将大量实例分成多个类别,不过这次是根据属性值的相似程度自动汇聚成不同的类别。通常把分类成为有监督的算法,而聚类则被称为无监督的算法,主要原因就是分类在执行前就已经有了明确的类别,例如前面所说的客户——两种,试用后会选择的和试用不购买的,而聚类在分析前还不知道有多少分类,而是通过不断的迭代使得各分类之间的边界更加清晰,然后再分析这些分类之间的差别,因此聚类也成为无监督的算法。

  如果你有足够多的详细人口资料,那么我说某男30岁、大学教育、在大型外企从事IT业,你也许可以判断出我的收入,这是分类,不过如果我问什么样的女孩子愿意嫁给我那么看上去就更像是聚类的问题了。

  关联

  我在为一家大型国际餐饮连锁集团作商务智能咨询的时候曾经向客户提供过一个数据挖掘原型应用,在这个原型应用中客户认为购买汉堡包和辣鸡翅的用户有47%的可能性会购买百事冰可乐(这是第一次挖掘的结果,我们后面会讨论这个比例的问题),而这个就是一个关联的问题,因此关联分析另外一个相当响亮的名字就是购物篮分析。

  关联是找到事例中出现频率较高的组合规则,能做出上面这种判断的原因是47%的客户在购买汉堡包和辣鸡翅的时候同时购买了百事冰可乐,我们称之为“支持度”。

序列

  提到关联,另外一个同胞兄弟就是序列。序列也是发现组合规律的,不过关联中所提到的规律不涉及到先后次序,而序列则是有先后次序的。一个客户在网站上浏览了几种品牌的笔记本,如果顺序是Thinkpad -> HP -> DELL -> XX牌,那么我们说他很有可能想买笔记本,不过更有可能买的是XX牌或者同一档次的笔记本,如果顺序倒过来,最后还看了Mac Air,那么还是说明他想买笔记本,不过他更有可能会买X300或者Mac Air,至少也是HP,这就是序列和关联的区别。

  回归

  温度、气压、风向和湿度,大体上气象预报员可以告诉你明天的天气怎么样。这就使回归。上周股票平均交易价格是29元,30元,31元,33元,35元,那么貌似这周一的价格是多少呢?当然不一定是37元,我不炒股也知道这个原因,但是如果我有三个月或者更长时间的股票交易价格历史,我倒是愿意估计一下,这也是一个回归的问题。当然有人愿意把这个问题叫做时间序列分析,不过我更加愿意把对连续的结果值(不依靠人为分段Discretize)进行预测的算法归为回归,其原因是其最为流行的方法就是发现回归公式。   

  企业中应用数据挖掘需要注意什么问题

  还记得那个47%的值么,当时一定有人说47%这种比例很不靠谱阿!对的,原因是那是一个原型,原型永远是可以工作,但工作不好的!

  企业在数据挖掘的时候需要注意的一个问题是过适应!造成之前47%结果的原因之一的,我们答应了客户的一个要求,测试数据挖掘的性能压力,我们对这个连锁餐饮集团全国一周所有门店交易明细数据进行了挖掘,约合8000万条数据!因此第一得到的结果不是47%,依稀记得是5%一下!后来对数据进行筛选后,逐渐得到了47%的结果,客户没有正式开始实施项目前我们就停在了这个值上面,因为客户已经愿意开始继续商务谈判了。?

  另外一个问题就是挖掘的收益率问题!客户愿意继续商务谈判的一个原因是我们推荐的SQL Server 2008果然能对5000万条数据进行数据挖掘(虽然很荒谬的要求),另一个原因是我们告诉了客户47%的这条规则并不有用,因为就算能多卖出1万杯百事冰可乐,收益也不会比的上在某些符合特殊特征的门店成功多销售出5000个新款汉堡包。

  因此数据挖掘得到的规则必须和这条规则可以产生的收益挂钩!那些只会产生1%改变的规则没有10%改变的规则来的重要。

  群众才是力量!我曾经告诉客户,数据挖掘得到的规则可能80%一些长期在一线的门店经理都知道,但是这些经理只会占到所有门店经理的20%,28原则哪儿都存在么!如果说是员工的话,那么可能1%都不到,因此怎么让所有员工都能应用这些规则才是最重要的!

  将数据挖掘规则嵌入到一线的POS机应用中,这样收银员就不会只知道推销那些促销组合,而知道如何根据用户已经点的餐品来多掏客户十块钱,记住,是所有的收银员,包括那些刚刚穿上制服的新人!

  最后一个问题就是数据挖掘的时效性!我们不可能两次踏入同一条河流。尽管对于大的商业企业来说,业务的变化不会那么迅速,但是定期更新规则,并且尝试利用数据挖掘规则作一些新的预测分析偶尔会有一些惊喜,至少长期来看会更加卓有成效。