数据挖掘有哪些技术

发布时间:2020-10-22 15:21:54

数据挖掘包括什么工作内容,职业通道大致如何?

  数据挖掘工作流程:

  一、收集数据

  收集数据一般是补充外部数据,包括采用爬虫和接口,获取,补充目前数据不足部分。Python scrapy,requests是很好的工具。

  二、准备数据

  主要包括数据清洗,预处理,错值纠正,缺失值填补。连续值离散化,去掉异常值,以及数据归一化的过程。同时需要根据准备采用的挖掘工具准备恰当的数据格式。

  三、分析数据

  通过初步统计、分析以及可视化,或者是探索性数据分析工具,得到初步的数据概况。分析数据的分布,质量,可靠程度,实际作用域,以确定下一步的算法选择。

  四、训练算法

  整个工作流最核心的一步,根据现有数据选择算法,生成训练模型。主要是算法选择和参数调整:

  1.算法的选择,需要对算法性能和精度以及编码实现难度进行衡量和取舍。 (甚至算法工具箱对数据集的限制情况都是算法选择考虑的内容)。实际工程上,不考虑算法复杂度超过O(N^2)的算法。Java的Weka和Python的Scipy是很好的数据挖掘分析工具,一般都会在小数据集做算法选择的预研。

  2.参数调整。这是一门神奇的技能,只能在实际过程中体会。

  五、测试算法

  这一步主要是针对监督算法(分类,回归),为了防止模型的Overfit,需要测试算法模型的覆盖能力和性能。方法包括Holdout,还有random subsampling.

  非监督算法(聚类),采用更加具体的指标,包括熵,纯度,精度,召回等。

  六、使用,解释,修正算法

  数据挖掘不是一个静态的过程,需要不断对模型重新评估,衡量,修正。算法模型的生命周期也是一个值得探讨的话题。

  现在,许多企业都把数据看成宝贵的财富,纷纷利用商务智能发现其中隐藏的信息,借此获得巨额的回报。国内暂时还没有官方关于数据挖掘行业本身的市场统计分析报告,但是国内数据挖掘在各个行业都有一定的研究。据国外专家预测,在今后的5--10年内,随着数据量的日益积累以及计算机的广泛应用,数据挖掘将在中国形成一个产业。

  众所周知,IT就业市场竞争已经相当激烈,而数据处理的核心技术---数据挖掘更是得到了前所未有的重视。数据挖掘和商业智能技术位于整个企业IT-业务构架的金字塔塔尖,目前国内数据挖掘专业的人才培养体系尚不健全,人才市场上精通数据挖掘技术、商业智能的供应量极小,而另一方面企业、政府机构和和科研单位对此类人才的潜在需求量极大,供需缺口极大。如果能将数据挖掘技术与个人已有专业知识相结合,您必将开辟职业生涯的新天地!

学数据挖掘必须掌握哪些技能?

一、掌握基础、更新知识基本技术怎么强调都不过分。这里的术更多是(计算机、统计知识), 多年做数据分析、数据挖掘的经历来看、以及业界朋友的交流来看,这点大家深有感触的。

二、数据库查询--SQL数据分析师在计算机的层面的技能要求较低,主要是会SQL,因为这里解决一个数据提取的问题。有机会可以去逛逛一些专业的数据论坛,学习一些SQL技巧、新的函数,对你工作效率的提高是很有帮助的。

三、统计知识与数据挖掘你要掌握基础的、成熟的数据建模方法、数据挖掘方法。例如:多元统计:回归分析、因子分析、离散等,数据挖掘中的:决策树、聚类、关联规则、神经网络等。但是还是应该关注一些博客、论坛中大家对于最新方法的介绍,或者是对老方法的新运用,不断更新自己知识,才能跟上时代,也许你工作中根本不会用到,但是未来呢?

四、行业知识如果数据不结合具体的行业、业务知识,数据就是一堆数字,不代表任何东西。是冷冰冰,是不会产生任何价值的,数据驱动营销、提高科学决策一切都是空的。一名数据分析师,一定要对所在行业知识、业务知识有深入的了解。例如:看到某个数据,你首先必须要知道,这个数据的统计口径是什么?是如何取出来的?这个数据在这个行业, 在相应的业务是在哪个环节是产生的?数值的代表业务发生了什么(背景是什么)?最后,提醒大家,但大家一定不要忘记了一些基本的技术,不要把基础去忘记了,如果一名数据分析师不会写SQL,那麻烦就大了。你只有把数据先取对了,才能正确的分析,否则一切都是错误了,甚至会导致致命的结论。新同学,还是好好花时间把基础技能学好。因为基础技能你可以在短期内快速提高,但是在行业、业务知识的是一点一滴的积累起来的,有时候是急不来的,这更需要花时间慢慢去沉淀下来。不要过于追求很高级、高深的统计方法,我提倡有空还是要多去学习基本的统计学知识,从而提高工作效率,达到事半功倍。以我经验来说,我负责任告诉新进的同学,永远不要忘记基本知识、基本技能的学习。

从零开始,如何学习数据挖掘?

这个问题思考了很久,作为过来人谈一谈,建议在看我这篇回答之前先去了解一下数据挖掘的概念和定义。

在学习数据挖掘之前你应该明白几点:

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

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

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

一、目前国内的数据挖掘人员工作领域大致可分为三类。1)数据分析师:在拥有行业数据的电商、金融、电信、咨询等行业里做业务咨询,商务智能,出分析报告。2)数据挖掘工程师:在多媒体、电商、搜索、社交等大数据相关行业里做机器学习算法实现和分析。3)科学研究方向:在高校、科研单位、企业研究院等高大上科研机构研究新算法效率改进及未来应用。二、说说各工作领域需要掌握的技能。

(1).数据分析师

需要有深厚的数理统计基础,但是对程序开发能力不做要求。需要熟练使用主流的数据挖掘(或统计分析)工具如SAS)、SPSS、EXCEL、BI工具等。需要对与所在行业有关的一切核心数据有深入的理解,以及一定的数据敏感性培养。经典图书推荐:《概率论与数理统计》、《统计学》推荐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集群。需要广而深的阅读世界著名会议论文跟踪热点技术。如KDD,ICML,IJCAI,Association for the Advancement of Artificial Intelligence,ICDM 等等;还有数据挖掘相关领域期刊:ACM Transactions on Knowledge Discovery from Data,IEEE Transactions on Knowledge and Data Engineering,Journal of Machine Learning Research Homepage,IEEE Xplore: Pattern Analysis and Machine Intelligence, IEEE Transactions on等。可以尝试参加数据挖掘比赛培养全方面解决实际问题的能力。如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只是局限在报表的展示和简单的统计分析,却也号称是数据挖掘;另一方面,国内真正规模化实施数据挖掘的行业是屈指可数(银行、保险公司、移动通讯),其他行业的应用就只能算是小规模的,比如很多大学都有些相关的挖掘课题、挖掘项目,但都比较分散,而且都是处于摸索阶段,但是我相信数据挖掘在中国一定是好的前景,因为这是历史发展的必然。

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

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

高中辅导机构推荐

简单学习网

简单学习网简单学习网是知名的中学辅导网站,提供高中学习机及高中视频资源,帮助全国中学生提高学习效率及成绩。

免费试听