如何成为一名优质的数据科学家
开随着“数据驱动”的价值越来越明显,越来越多的企事业开始组建或扩大数据分析队伍,“数据科学家”这个职位也越来越被大家关注。
▪ “数据科学家”是不是“统计师”更性感的版本?
▪ 起码得有统计、应用数学、计算机的背景?
▪ 干了5年的软件开发,写SQL如反掌观纹,换行做数据科学家很容易吧?
▪ 我们市场部也想更加“数字化”,但不懂编程,应该如何起步?
数据科学家的定义
经历了一些不同阶段的大数据项目之后,我意识到,在“数据科学家”这个角色没定义好之前,“数据化”会遇到很多挑战。这个角色的定义相当模糊,造成很多混淆--很像对“数字化”本身的混淆。
我翻阅了一下招聘网站上数据科学家的职责,有的专门通过统计和机器学习来建立预测模型,有的定义则更加宽泛。那么到底“数据科学家”具备什么样的技能,能做哪些事?很多希望实现“数据驱动”的企业对数据科学家的期望比较笼统,并且在不断修正中,这很正常,那么你,怎样才能更好地为这一职位做好准备?
网上已经有很多种答案,本文并不想提出新的诠释,而是尽量将最主流的观点提供给大家,并结合现有的技术,为有志于成为数据科学家的朋友,提供建议。
定义一:数据科学家起码是统计师
“数据科学家是对统计师更性感的称谓” -Nate Silver
Nate Silver是个著名的统计师,凭借2008年美国总统竞选中,成功地预测了所有50个州里的49个州竞选结果,而一战成名,并被《时代周刊》评为2009年度最有影响力的100人之一。
他说:“数据科学家是对统计师更性感的称谓。......,数据科学家(这个称谓)有点多余,人们不应该批评“统计师”这个词”。
不过,数据本身在变化——越来越多,越来越快,种类越来越丰富,统计师们用以前的办法难以应对,所以数据科学家至少是比统计师们更善于编程的那些人。
定义二:数据科学家用编程和统计,将数据更有用
随着数据分析和业务需求的发展,以及分工的细化,这个称谓也在逐渐演化。 比如,Pandora的研究部门负责人Michael Hochester是这样定义数据工程师的:
“数据科学家是一些能综合运用编程和统计技术的人,他们致力于通过各种方式让将数据更发挥作用。”他认为数据科学家分为两类:
A类: 分析型
主要像统计学家那样,进行静态的数据分析,并能清洗数据。他们用不同办法处理较大的数据集,可视化,非常熟悉某个领域,能很好解读数据等等;分析型数据科学家也能通过写代码来处理数据,但不像工程师那样专业。他们更擅长实验设计,预测、建模、统计推断和其他统计工作。结论会更直白,而不是像P值和置信区间那么学术化。提炼出简洁有力的结论,并传达给其他人,是数据科学家常常被低估而异常重要的职责之一。
B类: 搭建型
除了统计知识之外,搭建型数据科学家编程很强,关注于用在线生产数据搭建模型,并和其他系统连接,实现自动更新结果、或自动和用户互动,比如推荐系统(产品、你认识的人、广告、电影、查询结果等等)。
一个好的分析师具备哪些特点?
我最喜欢这个问题,网上的答案也五花八门。 有推荐一大堆技术的,有一大堆统计名词的。 Monica Rogati的答案值得回味:她在《一个好的分析师由哪些条件组成?》里提出四点:
1. 务实
技术和模型是否最优,远不如所带来的影响更重要。 几个星期的工作,是否能为公司带来相应收益,结论能带来多大的改变? 务实,意味着在开始之前搞清楚:1)可能的,和最有可能的结果;2)所需的时间、人力和资源。
花几个星期研究一个新算法,甚至学一个新技术,很能带来成就感。但对公司来讲,是不是真的比一个基于简单的启发法(Heuristics)的结论有用得多? 不考虑机会成本,就可能纠结于一个最多能带来2%提升的难题,而忽略了能带来20%提升的课题。
所以,当产品经理跟你讲:“能不能帮忙把xxx产品今年的数据帮我汇总一下”,一定要问问用途,比如“为啥需要啊?”,“想看哪方面?”,对方也许关心渠道增长,或者想进行捆绑营销。不清楚目的,而一头扎进各种报表,不仅费时费力,而且结论的针对性和深度有限。
2. 好奇
数据分析有点像侦探工作。 重大发现都是从蛛丝马迹开始,看似无关的线索可能有深藏其后的关联。追,可能能获得重要的洞察,不追……也没人怪你。线索=数据,多种来源、不同规范程度的数据。80%的精力都会耗费在提取、清理和规范数据上,所以,缺乏好奇心,就很难坚持追下去,而最终真相的价值可能超过最新最酷的机器学习算法。
3. 技术和解决问题的能力
技术、能力和业务知识,缺一不可。
技术意味着对统计、算法和软件工具的熟悉。 并不非要有统计学的硕士学位,但起码得明白最小二乘法之类的基本统计方法和如何解读结果。
能力意味着能解决实际问题,能坚持不懈地用各种技术进行探索,灵活地编程,使用命令行,对不同数据源进行清洗、转换, 应用不同的算法和模型。 计算机学位也不是必须的,实际上很多技术侠连正式的计算机课程都没修过。
业务知识是指和具体领域、公司或部门相关的背景知识。比如分析医疗设备数据时,如果了解哪些耗材配套哪些设备? 哪些医院科室常做哪些检测?就可以更明智地使用数据。
没人能对所有这些都熟悉。好在信息时代让学习变得更加简单。最快的途径是边做边学,比如自己做些小项目,并跟着有经验的数据科学家学习。不同的公司所看重的技术、工具、业务知识也不同。 很多公司非常看重统计学基础,比如提供网络游戏和社区的Twitch的数据科学家Brad Schumitsch谈到:
“在Twitch, 我们的数据科学团队由三部分组成:统计、编程和产品知识。 我们从来不招统计学不强的人。你可以是个很强的程序员,但如果不懂贝叶斯定理, 我只能建议你去我们工程部。”
所以,不同企业或不同阶段,对技术、能力和业务知识这三方面的侧重不同。 Google的数据科学家可能有博士学位,对计算机和数学很有研究。电商领域的同样岗位可能对电商非常熟悉,却不一定经过正式的数学或计算机培训。
4. 沟通能力
能不能把复杂的概念阐述得言简意赅,而不用专业术语? 能不能几秒钟之内就做一个简明扼要的图? 能不能忍住不把所有前提、场景、局限性都一股脑倒出来,来保证结论的绝对正确?是不是觉得可视化和简洁的结论只是给不懂技术的人,或者不如你聪明的人看的?
我的大数据导师老丁曾是惠普全球运营报表部门的老大,当时我负责此平台开源后的市场工作。宣传资料做了两版之后,老丁扔过来一句话“太技术”,等到第三版,老丁急了,扔过来一本乳品生产企业的宣传册,说“按这办”。“乳品”vs“数据库”,我有点懵......老丁是80年代放弃成为第二批计算机学科院士的机会,毅然投入美帝数据库一线工作几十年的老IT了,那全局观,那思路,不可能错啊。
N个月之后,我明白了。 宣传也好,数据科学家也好,有一点是相同的:我们的结论不应只追求正确,更重要的是简洁。让别人彻底明白,才有可能及时促成行动。
这个过程责任重大,所涉及到的前提、场景和局限性都很重要,但应先等一等,不能一股脑抛给你的听众。它们终究会被简化掉,由数据科学家主动去简化,不比被以后的人随意简化强吗?
如何成为数据科学家?
数据科学家的收入和职业前景不错,那么如何才能找到一份数据科学家的工作? 另一个相近的版本是,很多企业建立内部数据科学部门的时机也逐渐成熟,如何培养内部人员成为数据科学家?
网上能找到不少关于数据科学家方方面面技能的教程、课程或视频,包括分析方法、开源工具、编程语言等。如果英文较好,还能从InfoQ、Quora、StackOverflow等获得不少国外大牛的指点。不过许多攻略都是这样:1)你需要A、B、C、D这些技能;2)这里是链接。Python的链接在这,R的链接在那,机器学习的视频在最下面,再去安个Hadoop和Spark。 这是最常见的学习方式,但很费时费力,效果没那么好。 很多培训用的是处理过的规范数据,演示效果很好,但现实却不太一样。
实际上,大家更认可“边干边学”的效果,可是在找到数据科学家的工作之前,怎么才能得到“干”的机会? Monica Rogati的《How Can I become a data scientist》和Tomi Mester的《How to get your first job in Data Science》都提出了很好的方法。
第一步 四种工具
如果你想从最基础开始,有四种工具比较常用。这些工具都是免费的,Tomi Mester提供了一个英文的攻略:
Bash和命令行;
Python
R
有时需要Java
一般来说,不同的公司会选用其中两到三种。好消息是,一旦学会一种,学其他的也很快。 总共花一两周,选其中两三种掌握基本使用,就可以进入下一步。
Tomi的攻略需要安装和连接到云上的虚机。这些服务国内众多的云服务商都能提供,可以直接选国内的即可。 具体的安装,如果自己不熟悉,也可以请朋友帮忙,不一定要花太多时间。
第二步 先定个小目标,比如动手做几个小项目
亲手做些项目,不仅是最快最有效地的学习办法,而且能让你的简历更引人注目,在面试时加分不少。
选个感兴趣的题目
结合可以找到的数据,选选自己感兴趣的题目,比如空气质量、气候变化、民航运输、旅游、医疗支出等等。网上有不少数据可以免费或者很便宜地下载。除了国内数据,一些美国网站上也有很多世界范围的公众数据,比如天气、各国经济、疾病、自然灾害等等。 常用的网站有国家统计局(“国家数据”)、美国政府公开数据Data.gov、Kaggle比赛的数据集、世界数据图册、CEIC、证监会、新浪财经、AWS公用数据集、数粮、机器学习的UCI数据集等等。 如果是公司支持的项目,还可以从公司IT部门拿到数据。 重要的是,应该从容易上手的项目做起,找到数据,争取一周之内得出结果。
发个微博或微信,看看反映
在动手分析之前,先大概看看数据,把你想做的项目和初步印象用一两句话,在微博和微信上看看大家的反应。既要现实一点(能在一个星期内做出结果),又要保持乐观(相信自己能做出来,能找到些有趣的结论)。猜想一个可能的结果,不一定很准确(甚至可以编编),并邀请大家反馈,比如Monica Rogati曾经这么发微博:
“我用LinkedIn数据研究创业者,发现他们比想象的老,学物理的比学护理或神学的多。也许是因为风投们很难投一个新的宗教吧?”
“我用Jawbone的数据研究天气对运动的影响--纽约人没有加州人那么容易受天气变化的影响,你们觉得是因为纽约人更强,还是他们主要在室内运动?”
“我结合BBC的讣告和维基,来看看2016这一年对名人来讲,是不是真的很衰。”
如果你想学习某种技术的话,还可以这么写,比如:Shelby Sturgis:“我为老师和管理者做了个Web应用,通过分析学校排名、考试分数的变化和不同科目的成绩,来帮助他们提高教育质量。我用了MySQL、Python、Javascript、Highcharts.js和D3.js,来存储、分析和展示加州STAR考试数据。”
“我用了TensorFlow来自动对黑白照片上色和还原,帮奶奶做了这个拼贴图--最棒的圣诞!”
想象自己在交流会和面试里反复介绍,刊登在《今日美国》或《华尔街日报》上。你会觉得无聊,难以讲清还是觉得自己聪明,并感到自豪?如果答案是否定的,就重新再找,或者回到上一步,直到找到2-3个信服的想法。 问问其他人--这个有意思吗? 你愿意面试做这个的人,来做数据分析的工作吗?
除了找数据和粗略地了解相关的技术和工具,此时你还没有写任何代码,或者做任何具体分析。你可以很方便地多次重复这个阶段,而不要太着急地一头扎进某些教程或者课程,花几个月时间毫无所获。
开始干
分析数据。清洗。绘制图表。重复。看看每个字段常见的前十个值。研究一下异常值。看看分布情况。如果数据不是很零散,可以把类似的值分组。分析相关度,处理缺失的数据。尝试不同的聚类和分类算法。调试。找找为什么有的效果好,有的不好? 如果数据多的话,搭建AWS Data Pipeline。对非结构化数据尝试用不同的NLP库。可能会用到Spark,numpy, panda, nltk, 矩阵分解和TensorFlow。这些技术不是为了学而学,而是因为解决问题必须用到。
找个懂统计学、软件工具或业务分析的朋友,会有很大帮助。每周花一个小时或每两周聚一次,都会很快帮你理顺思路,或者解决实际问题。
做个侦探,提出新的问题和新的方向。数据的收集方式是否合理? 引入另外的数据集会怎么样?这应该是个有趣的过程,偶尔遇到障碍时,可以向网上、论坛、老师或做相同工作的朋友求助。 如果感觉不好玩,就重新找个题目。如果感觉很差,就重新思考要不要当数据科学家。如果这部分不能让你充满干劲,你很难坚持和干好真实数据工作中占80%的乏味的苦活。
表达
用简单的语言和干净、说服力强的图表来一目了然地表达。 学会用可视化工具非常重要。 如果你建了个原型,可以做一个简洁、有趣的演示或视频。把技术细节和代码放在链接里。发出去,并收集反馈。公开展示能让你提高标准,得到高质量的代码、表达和图形结果。重复这一过程,逐渐就能形成自己的项目集,给招聘人员看,直到加入梦寐以求的团队。
有没有捷径?
很多朋友从事市场、财务等工作,不具备统计学背景,更没有编程经验,如何转向数据科学?
2016年底,一个朋友带给我一个很典型的场景:她在一家医疗仪器公司,负责市场工作,积累了不少的数据,包括客户、销售、产品等方面,分别来自于CRM、财务和产品管理系统。最大的表100多G,维度也比较全面。公司希望能培养自己的数据科学家,她也很感兴趣,问题是,如何开始?
一般来说,如果对Excel的统计函数(如sum, sumif, count,时间转换等),vlookup和数据透视表比较熟悉,可以从可视化工具入手。如果公司有预算,可以考虑Tableau,Power BI等;也可以选用国内帆软、魔镜等。 Tableau的教学视频比较系统,很容易从0基础开始。
同时可以快速翻阅几本经典书,包括《深入浅出数据分析》、《统计学》、《R语言实战》、《深入浅出Python》等。对数据分析本身的使命、基本概念、常见方法等获得总体了解,能让你更快地找到自己的目标,为自己的项目整理思路。
同样重要的,要以自己的项目为主线,限定期限,避免为技术细节,扎到浩瀚的资料里。遇到问题再去Quora、知乎、Stackoverlow、微信群和相关工具的论坛问问题,项目进展会快得多,有时候几分钟就会有人给你答案。 做完第一个项目之后,再逐渐用更复杂的指标、算法或工具,再用一两周时间做出下一个项目,以此类推。
即使完全没基础,也不用担心。花点时间看看上面提到的书或可视化工具的教学视频,大概了解数据分析的基本概念和方法,你就可以开始选自己的题目,开始探索数据科学家的星辰大海,迎接崭新的未来。
数据分析咨询请扫描二维码
数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20统计学专业的就业方向和前景非常广泛且充满机遇。随着大数据、人工智能等技术的快速发展,统计学的重要性进一步凸显,相关人才的 ...
2024-11-20