如何系统地学习数据挖掘

数据挖掘:What?Why?How?

这个问题思考了很久,作为过来人谈一谈,建议先看下以前的一些回答。

  1. 什么是数据挖掘?
  2. 怎么培养数据分析的能力?
  3. 如何成为一名数据科学家?

磨刀不误砍柴工。在学习数据挖掘之前应该明白几点:

  • 数据挖掘目前在中国的尚未流行开,犹如屠龙之技。
  • 数据初期的准备通常占整个数据挖掘项目工作量的70%左右。
  • 数据挖掘本身融合了统计学、数据库和机器学习等学科,并不是新的技术。
  • 数据挖掘技术更适合业务人员学习(相比技术人员学习业务来的更高效)
  • 数据挖掘适用于传统的BI(报表、OLAP等)无法支持的领域。
  • 数据挖掘项目通常需要重复一些毫无技术含量的工作。

如果你阅读了以上内容觉得可以接受,那么继续往下看。

学习一门技术要和行业靠拢,没有行业背景的技术如空中楼阁。技术尤其是计算机领域的技术发展是宽泛且快速更替的(十年前做网页设计都能成立公司),一般人没有这个精力和时间全方位的掌握所有技术细节。但是技术在结合行业之后就能够独当一面了,一方面有利于抓住用户痛点和刚性需求,另一方面能够累计行业经验,使用互联网思维跨界让你更容易取得成功。不要在学习技术时想要面面俱到,这样会失去你的核心竞争力。

一、目前国内的数据挖掘人员工作领域大致可分为三类

1)数据分析师:在拥有行业数据的电商、金融、电信、咨询等行业里做业务咨询,商务智能,出分析报告。

2)数据挖掘工程师:在多媒体、电商、搜索、社交等大数据相关行业里做机器学习算法实现和分析。

3)科学研究方向:在高校、科研单位、企业研究院等高大上科研机构研究新算法效率改进及未来应用。

二、说说各工作领域需要掌握的技能

(1).数据分析师

  • 需要有深厚的数理统计基础,但是对程序开发能力不做要求。
  • 需要熟练使用主流的数据挖掘(或统计分析)工具如Business Analytics and Business Intelligence Software(SAS)、SPSS、EXCEL等。
  • 需要对与所在行业有关的一切核心数据有深入的理解,以及一定的数据敏感性培养。
  • 经典图书推荐:《概率论与数理统计》、《统计学》推荐David Freedman版、《业务建模与数据挖掘》、《数据挖掘导论》、《SAS编程与数据挖掘商业案例》、《Clementine数据挖掘方法及应用 》、《Excel 2007 VBA参考大全》、《IBM SPSS Statistics 19 Statistical Procedures Companion》等。

(2).数据挖掘工程师

需要理解主流机器学习算法的原理和应用。

需要熟悉至少一门编程语言如(Python、C、C++、Java、Delphi等)。

需要理解数据库原理,能够熟练操作至少一种数据库(Mysql、SQL、DB2、Oracle等),能够明白MapReduce的原理操作以及熟练使用Hadoop系列工具更好。

经典图书推荐:《数据挖掘概念与技术》、《机器学习实战》、《人工智能及其应用》、《数据库系统概论》、《算法导论》、《Web数据挖掘》、《 Python标准库》、《thinking in Java》、《Thinking in C++》、《数据结构》等。

(3).科学研究方向

  • 需要深入学习数据挖掘的理论基础,包括关联规则挖掘 (Apriori和FPTree)、分类算法(C4.5、KNN、Logistic Regression、SVM等) 、聚类算法 (Kmeans、Spectral Clustering)。目标可以先吃透数据挖掘10大算法各自的使用情况和优缺点。
  • 相对SAS、SPSS来说R语言更适合科研人员The R Project for Statistical Computing,因为R软件是完全免费的,而且开放的社区环境提供多种附加工具包支持,更适合进行统计计算分析研究。虽然目前在国内流行度不高,但是强烈推荐。
  • 可以尝试改进一些主流算法使其更加快速高效,例如实现Hadoop平台下的SVM云算法调用平台–web 工程调用hadoop集群。
  • 需要广而深的阅读世界著名会议论文跟踪热点技术。
  • KDDICMLIJCAIAssociation for the Advancement of Artificial Intelligence 等等;
  • 数据挖掘相关领域期刊:ACM Transactions on Knowledge Discovery from Data,IEEE Transactions on Knowledge and Data EngineeringJournal of Machine Learning Research Homepage等。
  • 可以尝试参加数据挖掘比赛培养全方面解决实际问题的能力。如Sig KDD ,Kaggle: Go from Big Data to Big Analytics等。
  • 可以尝试为一些开源项目贡献自己的代码,比如Apache Mahout: Scalable machine learning and data mining ,myrrix等(具体可以在SourceForge或GitHub.上发现更多好玩的项目)。
  • 经典图书推荐:《机器学习》 《模式分类》《统计学习理论的本质》《统计学习方法》《数据挖掘实用机器学习技术》《R语言实践》,英文素质是科研人才必备的《Machine Learning: A Probabilistic Perspective》《Scaling up Machine Learning : Parallel and Distributed Approaches》《Data Mining Using SAS Enterprise Miner : A Case Study Approach》《Python for Data Analysis》等。

三、通信行业数据挖掘工程师的工作感受

真正从数据挖掘项目实践的角度讲,沟通能力对挖掘的兴趣爱好是最重要的,有了爱好才可以愿意钻研,有了不错的沟通能力,才可以正确理解业务问题,才能正确把业务问题转化成挖掘问题,才可以在相关不同专业人才之间清楚表达你的意图和想法,取得他们的理解和支持。所以我认为沟通能力和兴趣爱好是个人的数据挖掘的核心竞争力,是很难学到的;而其他的相关专业知识谁都可以学,算不上个人发展的核心竞争力。

说到这里可能很多数据仓库专家、程序员、统计师等等都要扔砖头了,对不起,我没有别的意思,你们的专业对于数据挖掘都很重要,大家本来就是一个整体的,但是作为单独一个个体的人来说,精力有限,时间有限,不可能这些领域都能掌握,在这种情况下,选择最重要的核心,我想应该是数据挖掘技能和相关业务能力吧。

从另外的一个极端的例子,我们可以看, 比如一个迷你型的挖掘项目,一个懂得市场营销和数据挖掘技能的人应该可以胜任。这其中他虽然不懂数据仓库,但是简单的Excel就足以胜任高打6万个样本的数据处理;他虽然不懂专业的展示展现技能,但是只要他自己看的懂就行了,这就无需什么展示展现。

前面说过,统计技能是应该掌握的,这对一个人的迷你项目很重要;他虽然不懂编程,但是专业挖掘工具和挖掘技能足够让他操练的;这样在迷你项目中,一个懂得挖掘技能和市场营销业务能力的人就可以圆满完成了,甚至在一个数据源中根据业务需求可以无穷无尽的挖掘不同的项目思路,试问就是这个迷你项目,单纯的一个数据仓库专家、单纯的一个程序员、单纯的一个展示展现技师、甚至单纯的一个挖掘技术专家,都是无法胜任的。

这从另一个方面也说明了为什么沟通能力的重要,这些个完全不同的专业领域,想要有效有机地整合在一起进行数据挖掘项目实践,你说没有好的沟通能力行吗?

数据挖掘能力只能在项目实践的熔炉中提升、升华,所以跟着项目学挖掘是最有效的捷径。国外学习挖掘的人都是一开始跟着老板做项目,刚开始不懂不要紧,越不懂越知道应该学什么,才能学得越快越有效果。我不知道国内的数据挖掘学生是怎样学的,但是从网上的一些论坛看,很多都是纸上谈兵,这样很浪费时间,很没有效率。

另外现在国内关于数据挖掘的概念都很混乱,很多BI只是局限在报表的展示和简单的统计分析,却也号称是数据挖掘;另一方面,国内真正规模化实施数据挖掘的行业是屈指可数(银行、保险公司、移动通讯),其他行业的应用就只能算是小规模的,比如很多大学都有些相关的挖掘课题、挖掘项目,但都比较分散,而且都是处于摸索阶段,但是我相信数据挖掘在中国一定是好的前景,因为这是历史发展的必然。

讲到移动方面的实践案例,如果你是来自移动的话,你一定知道国内有家叫华院分析的公司(申明,我跟这家公司没有任何关系,我只是站在数据挖掘者的角度分析过中国大多数的号称数据挖掘服务公司,觉得华院还不错,比很多徒有虚名的大公司来得更实际),他们的业务现在已经覆盖了绝大多数中国省级移动公司的分析挖掘项目,你上网搜索一下应该可以找到一些详细的资料吧。

我对华院分析印象最深的一点就是2002年这个公司白手起家,自己不懂不要紧,一边自学一边开始拓展客户,到现在在中国的移动通讯市场全面开花,的确佩服佩服呀。他们最开始都是用EXCEL处理数据,用肉眼比较选择比较不同的模型,你可以想象这其中的艰难吧。

至于移动通讯的具体的数据挖掘的应用,那太多了,比如不同话费套餐的制订、客户流失模型、不同服务交叉销售模型、不同客户对优惠的弹性分析、客户群体细分模型、不同客户生命周期模型、渠道选择模型、恶意欺诈预警模型,太多了,记住,从客户的需求出发,从实践中的问题出发,移动中可以发现太多的挖掘项目。最后告诉你一个秘密,当你数据挖掘能力提升到一定程度时,你会发现无论什么行业,其实数据挖掘的应用有大部分是重合的相似的,这样你会觉得更轻松。

四、成为一名数据科学家需要掌握的技能图

人一能之,己十之;人十能之,己千之。果能此道矣,虽愚,必明;虽柔,必强。与君共勉。

以上,祝各位挖掘到自己的快乐和金矿。

本文作者:Han Hsiao

来源:51CTO

时间: 2024-11-02 04:43:02

如何系统地学习数据挖掘的相关文章

如何系统地学习数据挖掘?

看数据挖掘方面的算法理论时经常感觉一些公式的推导过程如天书一般,例如看svm的数学证明,EM算法..,感觉知识跳跃比较大,那么数据挖掘系统的学习过程是怎么样? 磨刀不误砍柴工.在学习数据挖掘之前应该明白几点: 数据挖掘目前在中国的尚未流行开,犹如屠龙之技. 数据初期的准备通常占整个数据挖掘项目工作量的70%左右. 数据挖掘本身融合了统计学.数据库和机器学习等学科,并不是新的技术. 数据挖掘技术更适合业务人员学习(相比技术人员学习业务来的更高效) 数据挖掘适用于传统的BI(报表.OLAP等)无法支

资源总结——七步学习数据挖掘与数据科学

想知道如何学习数据挖掘和数据科学吗?本文概述了七个步骤,指出的资源能让你成为一名数据科学家. 作者为Gregory Piatetsky,是一名数据挖掘与数据科学方面的专家. 以下为7个步骤用于学习数据挖掘和数据科学.虽然有编号顺序,你也可以并行或以不同的顺序学习: 1 语音:学习R.Python以及SQL语音: 2 工具:了解如何使用数据挖掘和可视化工具: 3 教材:阅读介绍性的教科书,了解基础知识: 4 教育:观看网络研讨会,参加课程,考虑获得数据科学中的证书或学位: 5 数据:检查可用的数据

SEO需要怎么样才能有系统地学习,把自己培养成一个高手?

摘要: 问题:SEO需要怎么样才能有系统地学习,把自己培养成一个高手? A5问答版主爱文回答推荐:系统学习二种方法,一种就是参与SEO收费培训,另外一种就是网上搜索SEO教程自学.不管哪种 问题:SEO需要怎么样才能有系统地学习,把自己培养成一个高手? A5问答版主爱文回答推荐:系统学习二种方法,一种就是参与SEO收费培训,另外一种就是网上搜索SEO教程自学.不管哪种,教程肯定是最好的学习老师.当然在学习中有问题也可以来A5问答提出疑惑.如果要成为高手,那就不是只靠系统学习就行的,需要不断实践,

零基础如何系统地学习前端开发?

  网站开发开发大致分为前端和后端,前端主要负责实现视觉和交互效果,以及与服务器通信,完成业务逻辑.其核心价值在于对用户体验的追求.可以按如下思路学习系统学习: 基础知识: 1.HTML + CSS 这部分建议在 W3school 在线教程 上学习,边学边练,每章后还有小测试. 之后可以模仿一些网站做些页面.在实践中积累了一些经验后,可以系统的读一两本书,推荐<Head First HTML 与 CSS 中文版>,这本书讲的太细了,我没能拿出耐心细读.你可以根据情况斟酌. 2.Javascri

深入浅出:如何从0开始学习大数据挖掘分析?

最近有很多人咨询,想学习大数据,但不知道怎么入手,从哪里开始学习,需要学习哪些东西?对于一个初学者,学习大数据挖掘分析的思路逻辑是什么?本文就梳理了如何从0开始学习大数据挖掘分析,学习的步骤思路,可以给大家一个学习的建议. 很多人认为数据挖掘需要掌握复杂高深的算法,需要掌握技术开发,才能把数据挖掘分析做好,实际上并非这样.如果钻入复杂算法和技术开发,只能让你走火入魔,越走越费劲,并且效果不大.在公司实际工作中,最好的大数据挖掘工程师一定是最熟悉和理解业务的人.对于大数据挖掘的学习心得,作者认为学

[SQl Server学习] step by step 前言!

server 自己最近在学习Sql Server的一些知识!为了能够提高自己的学习效果以及可以为后来者提供一些经验! 在系统的学习SqlServer的知识之前,我对于数据库的知识已经有了一些了解,对于数据库的设计以及SQL Server 2000的企业管理器和查询分析器的使用都有了一些了解. 现在开始系统地学习Sql Server的知识.学习的主要步骤及参考资料是MCDBA认证的参考书和参考步骤!

Struts学习傻瓜式入门篇

或许有人觉得struts不容易学,似乎里面的一些概念让未接触过的人迷惑,MVC1.MVC2.模式--我写这篇文章是想让从来没有接触过struts的人,能有个简单的入门指引,当然,系统地学习struts是必要的,里面有很多让人心醉的东东,那是后话了. 该案例包括首页,用户登陆.网站向导页面.就这么简单,没有深奥的struts概念,主要靠动手,然后用心体会. WEB Server用tomcat4.到 http://jakarta.apache.org 下载struts1.1,把zip文件释放到c:\

《.NET软件技术学习与实践》之序言

  自序        这是一本有自已特色的书.       这是一本于讲技术之外,更讲学习方法的书       这是一本从首至尾贯彻"授人与鱼,不如授人与渔"的书       2003年暑假我在CSDN程序人生论坛发表的个人自传--<一个普通IT人的十年回顾>(已收入本书配套光盘),一石激起千层浪,被许多网站转载,我个人也收到了海内外近千封电子邮件.       我是一个在没有明师指导情况下,几乎完全靠自己在黑暗中摸索,在自学之路上艰难跋涉过来的软件开发者.我不敢自称为&

《R语言数据挖掘》----导读

Preface 前 言 世界各地的统计学家和分析师正面临着处理许多复杂统计分析项目的迫切问题.由于人们对数据分析领域的兴趣日益增加,所以R语言提供了一个免费且开源的环境,非常适合学习和有效地利用现实世界中的预测建模方案.随着R语言社区的不断发展及其大量程序包的不断增加,它具备了解决众多实际问题的强大功能. R编程语言诞生已经有数十年了,它已经变得非常知名,不但被社区的科学家而且被更广泛的开发者社区所熟知.它已经成长为一个强大的工具,可以帮助开发者在执行数据相关任务时生成有效且一致的源代码.由于R