扫盲!全方位解析数据挖掘

数据挖掘是一个利用各种分析工具在海量数据中发现模型和数据间关系的过程,这些模型和关系可以用来做出预测。

什么是数据挖掘

当今数据库的容量已经达到上万亿的水平(T)--- 1,000,000,000,000个字节。在这些大量数据的背后隐藏了很多具有决策意义的信息,那么怎么得到这些“知识”呢?也就是怎样通过一颗颗的树木了解到整个森林的情况?

计算机科学对这个问题给出的最新回答就是:数据挖掘,在“数据矿山”中找到蕴藏的“知识金块”,帮助企业减少不必要投资的同时提高资金回报。数据挖掘给企业带来的潜在的投资回报几乎是无止境的。世界范围内具有创新性的公司都开始采用数据挖掘技术来判断哪些是他们的最有价值客户、重新制定他们的产品推广策略(把产品推广给最需要他们的人),以用最小的花费得到最好的销售。

数据挖掘是一个利用各种分析工具在海量数据中发现模型和数据间关系的过程,这些模型和关系可以用来做出预测。

数据挖掘的第一步是描述数据---计算统计变量(比如平均值、均方差等),再用图表或图片直观的表示出来,进而可以看出一些变量之间的相关性(比如有一些值经常同时出现)。选择正确的数据源对整个数据挖掘项目的成败至关重要,在后面数据挖掘的步骤中我们会着重强调这一点。

单单是数据描述并不能为人们制订行动计划提供足够的依据,你必须用你的这些历史数据建立一个预言模型,然后再用另外一些数据对这个模型进行测试。一个好的模型没必要与数据库中的数据100%的相符(城市交通图也不是完全的实际交通线路的等比缩小),但他在你做决策时是一个很好的指南和依据。

最后一步是验证你的模型。比如你用所有对你的产品推广计划做出回应的人的数据库做了一个模型,来预测什么样的人会对你的产品感兴趣。你能在得到这个模型后就直接利用这个模型做出决策或采取行动吗?还是更稳妥一点先对一小部分客户做一个实际的测试,然后再决定?

数据挖掘:不能干什么

数据挖掘它无法告诉你某个模型对你的企业的实际价值。而且数据挖掘中得到的模型必须要在现实生活中进行验证。

注意数据挖掘中得到的预言模型并不会告诉你一个人为什么会做一件事、采取某个行动,他只会告诉你他会这样做,为什么要人去考虑。比如,数据挖掘可能会告诉你,如果这个人是男的、年收入在5万到6万之间,那么他可能会买你的商品/服务。你可能会利用这条规则,集中向这类人推销你的商品而从中获益,但是数据挖掘工具不会告诉你他们为什么会买你的东西,也不能保证所有符合这条规则的人都会买。

为了保证数据挖掘结果的价值,你自己必须了解你的数据,这一点至关重要。输入数据库中的异常数据、不相关的字段或互相冲突的字段(比如年龄和生日不一致)、数据的编码方式等都会对数据挖掘输出结果的质量产生影响。虽然一些算法自身会对上面提到的这些问题做一些考虑,但让算法自己做所有这些决定是不明智的。

数据挖掘不会在缺乏指导的情况下自动的发现模型。你不能这样对数据挖掘工具说,“帮我提高直接邮件推销的响应率”,你应该让数据挖掘工具找(1)对你的推销回应的人,或(2)即回应又做了大量订单的人的特征。在数据挖掘中寻找这两种模型是很不相同的。

虽然数据挖掘工具使你不必再掌握艰深的统计分析技术,但你仍然需要知道你所选用的数据挖掘工具是如何工作的,他所采用的算法的原理是什么。你所选用的技术和优化方法会对你的模型的准确度和生成速度产生很大影响。

数据挖掘永远不会替代有经验的商业分析师或管理人员所起的作用,他只是提供一个强大的工具。每个成熟的、了解市场的公司都已经具有一些重要的、能产生高回报的模型,这些模型可能是管理人员花了很长时间,作了很多调查,甚至是经过很多失误之后得来的。数据挖掘工具要做的就是使这些模型得到的更容易,更方便,而且有根据。

数据挖掘和数据仓库

大部分情况下,数据挖掘都要先把数据从数据仓库中拿到数据挖掘库或数据集市中。从数据仓库中直接得到进行数据挖掘的数据有许多好处。就如我们后面会讲到的,数据仓库的数据清理和数据挖掘的数据清理差不多,如果数据在导入数据仓库时已经清理过,那很可能在做数据挖掘时就没必要在清理一次了,而且所有的数据不一致的问题都已经被你解决了。

数据挖掘库可能是你的数据仓库的一个逻辑上的子集,而不一定非得是物理上单独的数据库。但如果你的数据仓库的计算资源已经很紧张,那你最好还是建立一个单独的数据挖掘库。

当然为了数据挖掘你也不必非得建立一个数据仓库,数据仓库不是必需的。建立一个巨大的数据仓库,把各个不同源的数据统一在一起,解决所有的数据冲突问题,然后把所有的数据导到一个数据仓库内,是一项巨大的工程,可能要用几年的时间花上百万的钱才能完成。只是为了数据挖掘,你可以把一个或几个事务数据库导到一个只读的数据库中,就把它当作数据集市,然后在他上面进行数据挖掘。

在此我向大家推荐一个大数据开发交流圈:658558542    (☛点击即可加入群聊)里面整理了一大份学习资料,全都是些干货,包括大数据技术入门,大数据离线处理、数据实时处理、Hadoop 、Spark、Flink、推荐系统算法以及源码解析等,送给每一位大数据小伙伴,让自学更轻松。这里不止是小白聚集地,还有大牛在线解答!欢迎初学和进阶中的小伙伴一起进群学习交流,共同进步!

数据挖掘和在线分析处理(OLAP)

一个经常问的问题是,数据挖掘和OLAP到底有何不同。下面将会解释,他们是完全不同的工具,基于的技术也大相径庭。

OLAP是决策支持领域的一部分。传统的查询和报表工具是告诉你数据库中都有什么(what happened),OLAP则更进一步告诉你下一步会怎么样(What next)、和如果我采取这样的措施又会怎么样(What if)。用户首先建立一个假设,然后用OLAP检索数据库来验证这个假设是否正确。比如,一个分析师想找到什么原因导致了贷款拖欠,他可能先做一个初始的假定,认为低收入的人信用度也低,然后用OLAP来验证他这个假设。如果这个假设没有被证实,他可能去察看那些高负债的账户,如果还不行,他也许要把收入和负债一起考虑,一直进行下去,直到找到他想要的结果或放弃。

也就是说,OLAP分析师是建立一系列的假设,然后通过OLAP来证实或推翻这些假设来最终得到自己的结论。OLAP分析过程在本质上是一个演绎推理的过程。但是如果分析的变量达到几十或上百个,那么再用OLAP手动分析验证这些假设将是一件非常困难和痛苦的事情。

数据挖掘与OLAP不同的地方是,数据挖掘不是用于验证某个假定的模式(模型)的正确性,而是在数据库中自己寻找模型。他在本质上是一个归纳的过程。比如,一个用数据挖掘工具的分析师想找到引起贷款拖欠的风险因素。数据挖掘工具可能帮他找到高负债和低收入是引起这个问题的因素,甚至还可能发现一些分析师从来没有想过或试过的其他因素,比如年龄。

数据挖掘和OLAP具有一定的互补性。在利用数据挖掘出来的结论采取行动之前,你也许要验证一下如果采取这样的行动会给公司带来什么样的影响,那么OLAP工具能回答你的这些问题。

而且在知识发现的早期阶段,OLAP工具还有其他一些用途。可以帮你探索数据,找到哪些是对一个问题比较重要的变量,发现异常数据和互相影响的变量。这都能帮你更好的理解你的数据,加快知识发现的过程。

数据挖掘,机器学习和统计

数据挖掘利用了人工智能(AI)和统计分析的进步所带来的好处。这两门学科都致力于模式发现和预测。

数据挖掘不是为了替代传统的统计分析技术。相反,他是统计分析方法学的延伸和扩展。大多数的统计分析技术都基于完善的数学理论和高超的技巧,预测的准确度还是令人满意的,但对使用者的要求很高。而随着计算机计算能力的不断增强,我们有可能利用计算机强大的计算能力只通过相对简单和固定的方法完成同样的功能。

一些新兴的技术同样在知识发现领域取得了很好的效果,如神经元网络和决策树,在足够多的数据和计算能力下,他们几乎不用人的关照自动就能完成许多有价值的功能。

数据挖掘就是利用了统计和人工智能技术的应用程序,他把这些高深复杂的技术封装起来,使人们不用自己掌握这些技术也能完成同样的功能,并且更专注于自己所要解决的问题。

软硬件发展对数据挖掘的影响

使数据挖掘这件事情成为可能的关键一点是计算机性能价格比的巨大进步。在过去的几年里磁盘存储器的价格几乎降低了99%,这在很大程度上改变了企业界对数据收集和存储的态度。如果每兆的价格是¥10,那存放1TB的价格是¥10,000,000,但当每兆的价格降为1毛钱时,存储同样的数据只有¥100,000!

计算机计算能力价格的降低同样非常显著。每一代芯片的诞生都会把CPU的计算能力提高一大步。内存RAM也同样降价迅速,几年之内每兆内存的价格由几百块钱降到现在只要几块钱。通常PC都有64M内存,工作站达到了256M,拥有上G内存的服务器已经不是什么新鲜事了。

在单个CPU计算能力大幅提升的同时,基于多个CPU的并行系统也取得了很大的进步。目前几乎所有的服务器都支持多个CPU,这些SMP服务器簇甚至能让成百上千个CPU同时工作。

基于并行系统的数据库管理系统也给数据挖掘技术的应用带来了便利。如果你有一个庞大而复杂的数据挖掘问题要求通过访问数据库取得数据,那么效率最高的办法就是利用一个本地的并行数据库。

所有这些都为数据挖掘的实施扫清了道路,随着时间的延续,我们相信这条道路会越来越平坦。

数据挖掘应用

由于数据挖掘带来的显著的经济效益,使数据挖掘越来越普及。他不仅能用于控制成本,也能给企业带来效益。

很多企业都在利用数据挖掘技术帮助管理客户生命周期的各个阶段,包括争取新的客户、在已有客户的身上赚更多的钱、和保持住好的客户。如果能够确定好的客户的特点,那么就能提供为客户提供针对性的服务。比如,已经发现了购买某一商品的客户的特征,那么就可以向那些具有这些特征但还没有购买此商品的客户推销这个商品;找到流失的客户的特征就可以,在那些具有相似特征的客户还未流失之前进行针对性的弥补,因为保留一个客户要比争取一个客户便宜的多。

数据挖掘可以应用在各个不同的领域。电讯公司和信用卡公司是用数据挖掘检测欺诈行为的先行者。保险公司和证券公司也开始采用数据挖掘来减少欺诈。医疗应用是另一个前景广阔的产业:数据挖掘可以用来预测外科手术、医疗试验和药物治疗的效果。零销商更多的使用数据挖掘来决定每种商品在不同地点的库存,通过数据挖掘更灵活的使用促销和优惠卷手段。制药公司通过挖掘巨大的化学物质和基因对疾病的影响的数据库来判断哪些物质可能对治疗某种疾病产生效果。

成功的数据挖掘

有保证数据挖掘成功的两个关键要素。一是准确的定义你所要解决的问题,定位准确的问题通常会带来最好的回报。二是使用正确的数据,选定了你所能得到的数据,也许还要从外部购买数据,你需要对这些数据做有效的数据整合和转换。

感谢您的观看,如有不足之处,欢迎批评指正。最后祝福所有遇到瓶颈的大数据程序员们突破自己,祝福大家在往后的工作与面试中一切顺利。

你可能感兴趣的:(扫盲!全方位解析数据挖掘)