我不是在用数据分析现实, 就是在用现实分析数据
今天在知乎上回答了一个问题, 关于如何成为一名数据分析师。我查了一些资料, 很认真地作答。虽然最终得到很少赞同, 但是回答的过程自己为自己总结了数据时代的一些场景。 恰好最近很苦恼地在两家公司中作选择, 一家是做数据挖掘层, 一家是做数据分析层, 回答完问题觉得自己也更清楚两家公司的优劣, 所以觉得受益匪浅 :D
原回答如下。
问:如何成为一个数据分析师?需要具备哪些技能?
答:数据 (Data) 是 DIKW Pyramid (Data, Information, Knowledge, Wisdom) 中最低级的材料。而数据工程是一整套对数据进行采集, 处理, 提取价值(变为 I 或 K)的过程。首先介绍一下相关的几种角色: Data Engineer, Data Scientist & Data Analyst。 这三个角色任务重叠性高, 要求合作密切, 但各负责的领域稍有不同。大部分公司里的这些角色都会根据每个人本身的技能长短而身兼数职, 所以有时候比较难以区分。
Data Engineer 数据工程师: 分析数据少不了需要运用计算机和各种工具 automate 数据处理的过程, 包括数据格式转换, 储存, 更新, 查询。 数据工程师的工作就是开发工具完成 automate 的过程, 属于 Infrastructure/Tools 层。
这个角色出现的频率不多。因为有现成的MySQL, Oracle等数据库技术, 很多大公司只需要DBA就足够了。而 Hadoop, MongoDB 等 NoSQL 技术的开源, 更是使在大数据的场景下都没有太多 engineer 的事儿,一般都是交给 scientist 。据我所知 Facebook 有专门的 database team,因为数据量太超常了而且业务特殊; Square 有 Data Engineering team,因为对数据稳定性上要求苛刻;Google 就不用说了, 膜拜一下 GFS, BigTable, MapReduce 这些名字就可以了。
Data Scientist 数据科学家: 数据科学家是与数学相结合的中间角色, 需要用数学方法处理原始数据找出肉眼看不到的更高层数据, 一般是运用 Statistical Machine Learning 的方法, 最近也有流行玩 Deep Learning的。 有人称 Data Scientist 为 Programming Statistician,他们需要有很好的统计学基础, 但也需要参与很多 learning 程序的开发(基于 Infrastructure 之上), 而现在很多很多的 Data Scientist 职位都要求身兼 Data Engineer。 Data Scientist 是把 D 转为 I 或 K 的主力军。
Data Analyst 数据分析师: 工程师和科学家做了大量的工作用计算机程序尽可能多地提取了价值(I/K),然而真正要从数据中洞察出更高的价值, 则需要依靠丰富的行业经验和洞察力, 这些都需要人力的干预。 Data Analyst 需要的是对所在业务有深刻了解, 能熟练运用手上的工具(无论是 Excel, SPSS也好, Python/R也好,工程师给你开发的工具也好,必要时还要能自己充当工程师和科学家,力尽所能得到自己需要的工具)有针对性地对数据作分析,并且需要把发现言之有物地向其他职能部门呈现出来,最终变为行动。这就是把数据最终得出 Wisdom。
这个职位出现也不是很多, 在很多公司里没有这样的职位, 因为都是 C-level 的人或产品经理在做着数据分析的事情。 这样的职位大量出现的地方我只知道 Wall Street 和 NSA,因为有大量的 case 需要处理, 而每个 case 都需要有人分析。
值得一提的是 PayPal 当年内部处理 fraud 的问题, 积累了大量欺诈分析的经验, 后来 PayPal 创始人 Peter Thiel 又创立了 Palantir, 专门做数据分析工具平台, 在美国成功帮很多机构解决着反恐, 人口贩卖等很多需要专家参与的问题。 Palantir 有一句口号是 Surface data, not mining it(呈现数据,而非挖掘)。是一个比较有意思的观点 :)