【IT168 评论】据外媒报道,数据科学家已被誉为2016年最好的工作!这股热风还未彻底的在国内吹起什么风吹草动,不过在各大论坛已经看到网友热议…目前,国内的数据只有清华大学计算机工程硕士,美国德克萨斯理工大学教授林漳希说道过“未来五年,这方面人才缺口高达19万。”这一岗位的定义和要求的技能到底是怎样的,且看小编整理部分网上经验分享及网友亲身经历,为国内开发者们揭开数据科学家这层面纱。
关于数据科学家Datician/Daticist/Data scientist定义
百度定义:数据科学家(以下简称DS)是指能采用科学方法、运用数据挖掘工具对复杂多量的数字、符号、文字、网址、音频或视频等信息进行数字化重现与认识,并能寻找新的数据洞察的工程师或专家(不同于统计学家或分析师)。一个优秀的数据科学家需要具备的素质有:懂数据采集、懂数学算法、懂数学软件、懂数据分析、懂预测分析、懂市场应用、懂决策分析等。
数据科学家的技能集
数据科学关注的领域
DS的日常工作(来自Facebook的邹昕总结,部分引用自MITBBS上某个例子…)
目前来说,DS虽然有着相同的叫法,但在各个公司负责的工作可能会相差很多。data scientists的日常工作组成, 基本分四项:
(1) data pipelines, 这包括各种ETL, 处理数据, reporting, dashboard 等等
(2) product operation, 包括监测和产品的走向, own key metrics, 和各种ad hoc的
product support. 这种可以简单概括成被动分析, 就是有人问你关于产品问题, 你得
回答.
(3) strategic analysis, 各种exploratory的分析, 提供insight来帮助产品set
roadmaps. 这种可以简单概括成主动分析, 就是没人问你问题, 你自己要问你合适的问
题, 并且回答, 主动为产品提供发展方向.
(4) cross functional influencing. 有了insights, 要和另外几大pillars打交道(
eng, pm等等), 所以influencing必不可少.
DS必须具备的能力
1.数据科学家需要从数学的角度对数据进行解释和分析。
2.使用一门常用语言,进行数据访问、探索和建模。掌握一门统计编程语言将是关键。R、Python或MATLAB等语言,以及类似SQL等数据库查询语言是最受追捧的技能。数据提取、探索和假设检验是数据科学实践的核心。
3.具备很强的计算机科学和软件工程背景。这需要掌握包括Java、C++或算法知识和Hadoop。这些技能将用于利用数据来设计系统架构。
如何成为一名数据科学家?(Twitter data science team谢科分享)
1.学好 python。
现在几乎所以公司的数据都可以 api 给你,而 python 的数据处理能力强大且方便。加之在 machine learning 的很多算法上,python 也独俏一方。另外,它的简明方便迅速迭代开发,15 分钟写完个算法就可以看效果了。
对不规则输入的处理也给 python 一个巨大的优势。简而言之,对于数据科学面临的挑战,python 可以让你短平快地解决手中的问题,而不是担心太多实现细节。
2.学好统计学习
统计学习的概念就是“统计机器学习方法”。
统计和计算机科学前几十年互相平行着,互相造出了对方造出的一系列工具,算法。但是直到最近人们开始注意到,计算机科学家所谓的机器学习其实就是统计里面的 prediction 而已。
3.学习数据处理
这一步不必独立于 2)来进行。显然,你在读这些书的时候会开始碰到各种算法,而且这里的书里也会提到各种数据。但是这个年代最不值钱的就是数据了(拜托,为什么还要用 80 年代的“加州房价数据”?),值钱的是数据分析过后提供给决策的价值。那么与其纠结在这么悲剧的 80 年代数据集上,为什么不自己搜集一些呢?
开始写一个小程序,用 API 爬下 Twitter 上随机的 tweets(或者 weibo 吧。。。)
对这些 tweets 的 text 进行分词,处理噪音(比如广告)
用一些现成的 label 作为 label,比如 tweet 里会有这条 tweet 被转发了几次
尝试写一个算法,来预测 tweet 会被转发几次
在未见的数据集上进行测试
如上的过程不是一日之功,尤其刚刚开始入门的时候。慢慢来,耐心大于进度。
4.变成全能工程师(full stack engineer)
在公司环境下,作为一个新入职的新手,你不可能有优待让你在需要写一个数据可视化的时候,找到一个同事来给你做。需要写把数据存到数据库的时候,找另一个同事来给你做。
况且即使你有这个条件,这样频繁切换上下文会浪费更多时间。比如你让同事早上给你塞一下数据到数据库,但是下午他才给你做好。或者你需要很长时间给他解释,逻辑是什么,存的方式是什么。
最好的变法,是把你自己武装成一个全能工作师。你不需要成为各方面的专家,但是你一定需要各方面都了解一点,查一下文档可以上手就用。
会使用 NoSQL。尤其是 MongoDB
学会基本的 visualization,会用基础的 html 和 javascript
学习基本的算法和算法分析,知道如何分析算法复杂度。平均复杂度,最坏复杂度。每次写完一个程序,自己预计需要的时间(用算法分析来预测)。
写一个基础的服务器。
学习使用一个顺手的 IDE,VIM,pycharm 都可以。
5.读,读,读!
除了闭门造车,你还需要知道其它数据科学家在做些啥。涌现的各种新的技术,新的想法和新的人,你都需要跟他们交流,扩大知识面,以便更好应对新的工作挑战。通常,非常厉害的数据科学家都会把自己的 blog 放到网上供大家参观膜拜。看了几篇之后,你就会觉得:哈!我也能想到这个!
总结:
大数据其实有点儿像青少年的性。每一个人都兴致勃勃地谈论它,但是没有任何一个人真的知道该怎么做。每一个人都觉得身边的人都在尝试,为了不落人后,于是每个人都在外面宣城自己也已经有“伴儿”了。
成为一个数据分析师确实是一件挺让人激动的事。你能从别人根本无法达到的角度获取真相,这足够酷炫了。从底层开始开发数据管道或者机器语言模型,会给人带来深层次的满足感,。任何一个聪明,有想法的年轻人都应该考虑成为一名数据分析师。