大数据技能知多少?

我们的口号是“Friday BI Fly  周五BI飞起来”


看来可以跟嘉宾聊的话题有很多,不过因为咱们是专注于数据方面的分享,老师今天仅就跟数据相关的技能,职位等进行分享,其他方面有需要跟嘉宾交流的可以私下讨论


有请嘉宾进行下面的分享,有请! 大数据职位、 数据场技能 hello, 大家好,今天分享大数据职位与技术相关的话题哈


1 数据场与数据极客 说起“大数据”一词,也是真正被吵够了


做个简单的统计也叫大数据,做个表格、画个图形出来,就叫大数据了


言谈间凡是不和“大数据”沾边,就感觉已经落伍了
其实,很多人除了知道简单的统计外,根本不了解大数据是什么

甚至连Hadoop与Spark都不曾听过,更别谈机器学习与深度学习了


大数据是一个概念也是一门技术,是在以Hadoop为代表的大数据平台框架上进行的各种数据分析的技术


包括了基础的大数据框架,以Hadoop和Spark为代表;还包括了实时数据处理、离线数据处理;还包括了数据分析,数据挖掘,和用机器学习算法进行预测分析


概念吵着吵着就变味了,用“大数据”来代表很多数据处理领域的技术,已经不太合理了


目前比较合适的一个词是数据科学(Data Science),做数据科学的叫数据科学家


当然真正到科学家这个级别,要求是非常高的,数据科学家是具有数据相关的完整理论和知识的人,自然境界很高


数据是金矿,数据科学自然是目前的金矿行业,做数据的人就算矿工


一个普通的数据矿工,成为数据科学家需要漫长的过程

那这个……,做不到数据科学家,我们还可以做个数据极客(Data Geek)嘛,挑战数据极限,也是挑战自己的极限


也许小时候的梦想就是当科学家,现在终于不用上博士就可以实现了


虽然很多都只是自己团队或者公司封的职位

接下来,可以看看,在数据领域,大概都有哪些职位,以及都需要什么样的技能


2 数据职位 目前,已经有很多的公司依赖于数据,以数据作为核心的业务驱动


可以说,没有数据及数据挖掘能力,这些公司将无法运转

以八卦中的坤卦来代表数据处理整个流程,可以归纳为数据六爻:获取,处理,存储,分析,表现,应用


基本上主流以数据驱动的公司都是在运用这六爻中的一种或者多种技术


通过各种途径获取数据,将数据进行清洗或者结构化处理,存储入数据库或者大数据集群,进而运用多维分析甚至机器学习,最后将结果展现给大众,或者直接应用于产品服务于大众


大致理解了上面这六爻的数据流程,对于各种数据的职位也差不多有一定的理解了


有兴趣的可以慢慢去拉勾网搜索一下“数据”这个词,基本上和数据相关的职位可以分以下几类: 平台开发: 与数据相关的开发,数据工程师,Hadoop平台二次开发,爬虫开发 业务挖掘: 算法挖掘,机器学习与深度学习,图片识别、视频处理 数据处理: ETL开发,数据清洗 商业智能(BI): 商业决策,数据分析,数据分析(基础统计),运营数据分析(运营经理),产品数据分析(产品经理) 数据展现: 运营报表,趋势图谱,WEB展现 个性推荐: 用户画像,关联挖掘 自然语言处理(NLP): 文本分析,主题模型 2.1 开发相关 主要有数据抓取,也即通常说的网络爬虫


需要考虑数据抓取的实时性与完整性,还有数据及时更新,数据去重等等


严格来说,和通常意义上的大数据相关性不大,主要是后端开发的一系列技术,其中也会涉及分布式的一些技术


ETL开发,ETL为Extract、Transform和Load的缩写,即数据抽取,转换与装载


将各种来源的数据进行收集、规范和存储起来
可以是离线的方式,存储在以Hadoop为代表的大数据集群中
也可以是实时的展现在报表系统中

如果是实时的,也叫实时数据流开发,通常和Storm框架或者Spark Streaming技术相关


(本篇题目为:《大数据职位,数据场技能》,如果刚看到这条消息,说明你很幸运,这是小可正在写的书《全栈数据场》中的一篇文章


) Hadoop平台开发,专指以大数据框架为基础,并在此基础上进行二次开发或者数据流开发


对数据平台做开发与改进,只能是程序员的工作了,根据业务需求,对现有的平台进行改进与优化


因为是平台相关的,通常需要Java与Scala的专业程序员,这块和数据分析基本没有太大关系


另外还有纯前端的数据可视化技术开发,或者纯运维的大数据集群管理等等


本人正在写一本书《全栈数据场》,内容跟今天分享的主题有关: 2.2 业务分析 商业智能分析,包括报表分析,运营或者销售分析,这一块以Excell、SPSS和R为代表


主要是指对针对具体业务,对现有的数据进行统计分析,期待从中发现一些规律与趋势


数据分析报表,也是最常用的数据分析师职位的一些工作,通常产出以报表为主


这块很多时候会与运营部门的需求相关,技术上主要以成熟的工具为主


当数据量一大,就会涉及在集群环境下的分析,分析师通常很熟悉SQL,这也是构建于Hadoop之上的Hive能被大众熟悉的原因


除了报表统计外,还需要对数据的有很强的解读能力,能分析和解读出一些现象产生的原因,同时需要针对这些问题,提出一些可能的应对方案,以便对业务策略或者商业方向上有更多的指导


一些专业领域分析,如网络安全分析,金融领域分析

这些领域的分析,通常需要用领域知识,深入现象背后去挖掘出产生的原因,不仅要具有很强的分析能力,也需要很强的领域知识


题外话 太极,其大无外,其小无内
简单说就是:大到没有外部,小到没有内部

从桌面电脑时代,向大处走,便是向云中走,走出了大数据;向小处走,便是向终端走,走出了移动互联网


一阴一阳之谓道,阴阳合而万物生,大数据与移动端相联,并是万物互联(Internet of Everything),也即物联网


大到没有边界,才是大数据

2.3 算法挖掘 做为数据科学中的重头戏,便是数据挖掘和机器学习了


在线电商中的个性推荐技术,商业与银行中的欺骗检测,智能手机中语音识别(Siri),机器翻译,图像识别等等


涉及大量机器学习算法,包括分类、聚类和个性推荐等常用数据挖掘技术


也包括数据分析的很多基础,和数据分析偏重的报表产出并不同,并不强调产出大量的报表,通常是在现有数据基础上的产出新数据,用于服务业务系统


还可以推广到人工智能,其中涉及大量的数据处理与挖掘技术

比如机器人,无人驾驶,总之是尽量的在某些领域达到或者超过人类


人类能处理如下内容: Number: 数据(数) NLP: 自然语言处理(文字) Pic: 图像处理(图片) Voice: 语音识别(语音) Video: 视频处理(视频) 个性推荐: (集体智慧与社交化) 其中会用到大量的机器学习算法,包括深度学习,从而达到服务人类的目的


3 七大技能 那么,成为数据极客,建立自己的数据场需要哪些技能呢?且不说那高深复杂的理论,仅从实用的角度来分析一下,建立数据场的七个方面


关于数据的统计、分析与挖掘,这些概念的侧重点不一样

数据统计,利用统计学的知识,产出数据和报表;数据分析,除了产出数据和报表外,还需要分析其中原因,最好能找出对应的策略;数据挖掘,需要在数据分析的基础上,发现新的,有价值的知识及潜在的规律


如果只是对原有的数据进行统计分析,而没有对未知的事物进行预测,是不算数据挖掘


(理解一个算法或者一种应用是怎么做的,只是一种具体的法,今天更多的是讲道) 数据相关的职位各种各样,我们要构建数据场时,抽取其中的各种技能出来,组成自己的技能表


最近读到一篇文章:《机器学习职位需要的七个关键技能》 英文原文地址: http://bigdata-madesimple.com/7-key-skills-required-for-machine-learning-jobs/ 中文翻译地址: http://www.36dsj.com/archives/29515?utm_source=tuicool&utm_medium=referral 文章描述了机器学习需要的七个技能,以及需要这些技能的原因,主要技能如下: 1. 编程语言(Python/C++/R/Java); 2. 概率与统计; 3. 应用数学与算法; 4. 分布式计算; 5. Unix/Linux工具集; 6. 高级信号处理技术(特征提取); 7. 大量阅读,适应快速变化,更新自己


在这篇文章的基础上,我总结了以下七个方面,用于构建我们自己的数据场技能: SQL与NoSQL技能 Linux工具集 Python或者R语言生态 Hadoop与Spark生态 概率、统计与线性代数 机器学习与深度学习 业务及杂项 3.1 SQL与NoSQL技能 传统的SQL工具与大数据环境下的NoSQL工具中,以关系型的MySQL为代表,以文档型的MongoDB为代表,以大数据环境下的Hive代表


这都是数据分析的基础而强大利器,在很多场合下都能快速的解决问题


扩展的,还会有内存型数据库Redis,图数据库Neo4j,还有全文索引的ElasticSearch和Solr,还有Hbase和Cassandra,这些根据具体的业务,选择性的掌握其中一部分


学到什么程度并无定论,重点在具体的数据环境下,不至于永远只知道MySQL这一个工具,在不同的场景,其它的数据库能发挥出强大的优势


总结起来说,重点不是工具,而是数据

不仅要能处理结构化数据,还要处理半结构化数据,不仅能单机处理,还要在集群环境下处理


3.2 Linux工具集 Shell, AWK, sed, grep等基本工具集,这是很多数据简单处理的得力助手,包含数据文件编码,数据合并,数据拆分,数据规范,格式验证等等


Linux脚本能力,简单服务配置能力,正则表达式能力,Vim或者Emacs编辑能力,文件系统常用操作命令,远程登录ssh等等,这些都能快速的处理很多问题


任何的分析或挖掘都会依托与一个系统,而Linux是其中最常用的,尤其是在服务器环境


熟悉一个系统,能让自己的数据科学工作事半功倍

简单的数据收集与处理,很多时候也会依赖于Linux系统或者基于其上的一系列工具,比如常用的Web服务器引擎Nginx及其产生的日志,常用的文件传输scp或者rsync,常用的定时任务crontab等等这些工具,稳定又实用


3.3 Python或者R语言生态 掌握一门分析专用语言,很有必要


其中以R语言和Python语言为代表
R起源于统计学,如今在数据科学领域也占有强大的阵地

Python更是一门完整的编程语言,不论是Web开发、自动化运维、云计算,还是数据科学领域,都有众多的用户


两者在数据分析中都有完整的生态圈,而且其它环境对这两者的支持也是非常好的


无意于争端,全看个人喜好
本人只熟悉Python这块生态,因此只讨论这一块相关的

最为大众熟悉的一些包为:Numpy,Scipy, Pandas和Scikit-learn,Keras,解决了从数据分析到机器学习和深度学习的几乎所有任务


3.4 Hadoop与Spark生态 大数据平台,无疑是以Hadoop和Spark为代表,无论在线处理还是离线分析


Hadoop比较适合离线处理
而在线处理中,Storm就是比较有名的

如果需要自己实现Map-Reduce或者对接数据之类的开发,编程语言中以Java和Scala为代表


在线搜索相关,估计会用前面说过的ElasticSearch或者Solr


当然,区别于hadoop的Map-Reduce流程,Spark提供的弹性数据集RDD,能作用于RDD上的算子非常多,使得数据处理与分析更加方便


除此之外,Spark还提供了实时任务的Streaming,能实时的对数据进行处理与获取结果


还有Spark SQL功能,尤其以其中的DataFrame重为重要


另外,ML与MLlib也是分布式机器学习的重要部分

Spark是Hadoop生态圈中的有力补充,并非替代品,如果要说替代,那也只是替代了MapReduce分布式计算框架而已,分布式调试与管理依然用Yarn,文件系统依然会使用HDFS


3.5 概率、统计与线性代数 对数据进行统计与分析,是需要统计学的基础知识


另外,很多问题都可以转化为一个概率问题,并不是要完全确定的结果,只要概率达满足即可


概率论方面的主要是贝叶斯统计,隐马尔可夫模型等之类的
这些都是深入理解算法的基础

对数据的运算,很多时候就是直接矩阵运算,而涉及矩阵的各种运算也正是线性代数相关相关的问题


机器学习之所以有效,是因为模型对数据的处理,最后都会变成一系列的数学优化问题,而且主要和凸优化知识相关


机器学习的各种计算,都是和数学密切相关
除了上面的概率、统计与线性代数,还会和微积分有一定的关系

当然,但除非你深入研究算法的核心原理或者写学术论文需要,也不要被数学吓到了


在机器学习应用过程中,并不会用到太多的数学知识
而且,也并不需要完全把上面这些课程学好了再来进行机器学习
计算机基于数学,但应用型的算法,并不需要特别深厚的数学功底

如果以前课程学得不好也没有太大的关系,很多知识到了关键时刻再补一下也不迟


3.6 机器学习与深度学习 数据挖掘与人工智能中和算法相关的部分,常用的分类算法,聚类算法是基础


推广开来,就是监督算法与非监督算法,监督算法中,除了分类,还有回归


非监督算法中,除了聚类,还有数据降维,还有用于个性推荐的关联规则


另外,专门处理自然语言的机器学习也即NLP,或者文本数据挖掘,是另外一个侧重方向


对算法的理解,需要前面的统计与概率等等数学知识,还需要结合编码能力,最好能自己实现一些演示算法流程的Demo程序来辅助理解


实际应用中,最好以第三方库为准,它们经过大量人员的测试,无论是性能还是算法完整性上都会更好,自己实现的程序仅仅用于理解算法流程即可


除非你对算法理解很彻底,并且编码能力也非常强,而且觉得现有的框架不能满足你的使用


除了算法及其参数调优外,还有另外两个重要的内容,特征提取与模型评估


如何从原始数据中提取出用于算法的特征是很关键的

很多时候,不同算法在性能差异上并不明显,但不同的特征提取方法,却能产生比较大的差距


在某种特征上应用特定的算法,还需要做的就是模型评估,如何评估一个模型是好还是坏,在一定程度上也体现了机器学习是否有效的依据


在特征提取上,一个比较火热的领域自然是深度学习了

源于多层神经网络,是一种非监督的特征提取方法,更好的用于图片、语音与视觉处理


值得一提的是,深度学习在很多地方的性能已经超过传统的机器学习算法


3.7 业务及杂项 除上上面的纯技术外,还有一些非技术上的技能


业务理解,商业洞察,沟通与交流能力,尤其以业务的理解能力为重要


数据是死的,无法更好的理解业务中的问题,也就无法更好的利用现有数据,甚至无法更好的解读其中的结论


理解业务通常需要一些专业的领域知识,比如做网络安全的,需要安全的一些基础知识;做电商的,需要理解其中各个指标对当前销售的影响;做二手车估值的,需要对二手车残值评估有一定的了解


除了业务知识外,还需要一定的文档与报表技能,比如Word、PPT与Markdown工具的使用,只有完整的文档与良好的表达,才更好体现数据所展现出来的效果


另外,英文能力与写作也同样重要,需要经常阅读一些英文文章
阅读的主要目的,就是随时更新自己的技能,扩展知识面

而写作,就是自己知识积累的一种方式,将纸上的东西,变成自己的技能


4 结语 对于高级信号处理,主要用于特征提取,个人感觉目前可以通过学习神经网络与深度学习来解决,深度学习是专为解决特征提取的问题而来


七大技能,总结起来,就是熟悉一门Linux系统及其上的常用工具,遇到普通的数据,可以通过SQL来做简单分析或者聚合


如果数据量比较大,可以使用Hadoop等大数据框架处理

在深入挖掘上,可用Python或者R语言进行编程,应用以概率统计为支撑的机器学习算法


要做好数据极客,只有在各种工具与技能基础上,再加强自己的业务兴趣点,配合个人的悟性而修行


果能如此,持之以恒,则天下定有你的天地

(这天下是年轻人的,终究是搞数据的年轻人,未来属于我们,致各位现在、未来的数据科学家)


(本次分享内容的完毕) 主持人: 好的,感谢云戒老师给大家带来的精彩分享,今天分享的内容对我来说很受用,我相信对很多人来说也是的,我相信很多人其实对数据相关的一些名词含义以及关系理解的不那么清楚,今天老师都给大家梳理清楚了,我相信大家对自己所做的事情在数据场中所处的位置已经很清楚了,未来的努力方向也应该比较清晰啦,下面进入自由提问环节,对今天的分享内容有疑问的,大家可以提出来啦


自 由 讨 论 问题1: 大数据和云计算的基础书籍那些值得一看? 云戒: 还是要分清楚哈,大数据和云计算并不太一样哦


搞数据的以大数据方面的书为主

大数据以spark和hadoop为核心,找些这方面的书箱来看即可


问题2:来自数据分析与数据挖掘群提问 :我想问下,从数据处理角度讲,python和R只要深入研究一种就可以了吧? 云戒: 如果从数据处理角度来讲,学python比R更好


问题3: 比如做车辆轨迹分析和时间预测这块,需要应用到的技能都会有哪些呢? 云戒 : 来自群员提问 比如做车辆轨迹分析和时间预测这块,需要应用到的技能都会有哪些呢 轨迹是指预测吗?时间预测的话,这些python都有专门的库,掌握好pandas,scikit,spark mllib都很有用


问题4:ETL工程师主要工作职责有哪些? 云戒: ETL工程师主要工作职责有哪些 ,主要是数据采集、开发,一般就都叫数据工程师,或者专门的爬虫工程师 问题5:来自7群的提问:想问问老师,python和R哪个更适合在分布式上使用? 云戒: 自然是python,python有很多成熟的方案


问题6:来自15群提问:问个工具的问题
最近了解到postgresql和greenplum比较热

云戒以为如何? 云戒: pgl就是和中数据库而已,greenplum我没有用过,需要看具体能不能满足你的需求嘛


问题7:刚入门python,老师建议如何快速的上手,这方面有什么好的建议么? 云戒: 可以从趣味数据问题开始


问题8:来自15群提问:想学习统计学,哪本书好,包含回归,聚类,神经网络,决策树 云戒: 先试一下《集体智慧编程》,这本书让你有一个不错的理解,以python为代码讲解


问题9:那个自然语言处理具体是做什么,文本挖掘? 云戒: 今日头条的个性推荐,就是比较出名的文本分析,计算文本的相似性,提取文本的主题,提取文章的情感等等


问题10:请问云戒老师,图像的非监督特征提取算法是通用的吗?这里有没有推荐的算法包? 云戒: 图像有一些相应的特征提取方法,通过的目前是深度学习,深度学习即无监督的特征学习,尤其是其中的卷积神经网络,专门用于处理图片


问题11:作为一个没有开发经验的,学etl一般的流程是怎样的,比如学什么语言等 云戒: python和java都是非常不错的,没有固定的流程,找一个网站,把数据抓取下来,存储数据库或者hadoop,再基于上面作些分析即可


问题12:大数据这块跟开发的关系是怎样的?感觉现在有些企业在打着大数据的旗号招开发的人,目前市面上的编程语言以哪种需求最高,java,python,还是什么? 云戒 : 嗯,有这样的公司哈


和大数据框架(hadoop, spark)相关的,更多是java, 和数据挖掘、机器学习相关的,python具有很多优势


转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关


大数据 为大家提供与大数据相关的最新技术和资讯



欢迎投稿 职场/创业方向. 邮箱wangfzcom(AT)163.com:王夫子社区 » 大数据技能知多少?

    标签:

点评 0

评论前必须登录!

登陆 注册