数据分析岗位是随着互联网行业发展而发展起来的,互联网企业积累了大量数据,必然要对这些数据处理、加工、分析、应用以获取价值,由此产生三个岗位,即:数据挖掘、数据分析、算法岗。
数据分析的目的或是为了监测,比如某个关键指标(KPI)突然上升或下降,那么通过分析数据给出变动原因;或是为了A/B测试,其实有点像控制变量法,产品迭代后看相关指标的变动;或是为了业务增长,这方面可以参考“增长黑客”,与数据运营类似;当然最多的还是通过数据量化地科学地观察业务掌握业务。
数据分析应该以业务为核心,不是为了炫技,也不是为了分析而分析,这就需要对业务有全面深入的了解。了解业务,最重要的方式就是在工作中学习,多和业务部门交流,多问为什么和取数的目的是什么,如果条件允许的话,最好能够参与业务的进程。除此以外,还应多和该行业的从业者交流学习,包括阅读一些行业报告、学习数据分析业务课程等等。
数据分析技术方面大致上属于工科,工科的学习方法有点像个木匠,或者像个剑客,只看书看视频不去实操,效率不大,需要干中学,学会一些基本技能,马上去应用,有的时候都不需要理解其中原理,只要会操作就行,这是工科的学习方法,当然如果想精进技术还是应该掌握原理的。其次,工科是和机器打交道,机器会不断升级迭代,人也需要随机器而动,不断学习新技术。数据分析机器的基本内容有很多相似之处,如Excel、SQL、Python这数据分析基础三件套的语法就有很多相似之处,学通一种工具对掌握其他的很有帮助。而且,发明机器的是人,新的构想大多是站在前人思路上继续前进,我们掌握基础机器对掌握新发明的机器是有帮助的,所以不要畏惧变革,应持续学习。
数据分析的全过程大致可以分为数据采集、数据清洗、数据报表呈现和可视化、数据建模和分析、最后得出结论或给出建议。如果业务需求比较同质的话,还可以把整一套流程工程化,形成一个数字产品,每次输入参数,得到想要的部分内容,大大提高效率。
其实这一套流程和经济学的研究方法很像,不仅能应用于工业界,也可以应用于学界,所以空闲时间会继续自学数量经济学和数学(特别是数理统计)课程。我个人的兴趣点在中东和穆斯林话题,可以把这一套流程用于对此类话题的研究中。量化分析是未来社会科学的趋势,目前我想到几个感兴趣项目:如用数学语言公理化体系重写一遍思辨教义学、对古兰圣训做词频分析和情感分析、对花儿做词频分析以把握底层回族的思想动态、爬取美团和饿了么的清真外卖的数据做分析……希望能将职业技能应用于兴趣点,使这两者交融发展,互相促进。
下面是数据分析各个环节所需的技能树,这半年的任务就是把这些技能先粗略地掌握,能够比较流畅地完成数据分析任务。然后逐渐深入,希望未来五年内成为这个领域的专家型人才。
1.数据采集。有个相关的术语叫“埋点”,数据可以是业务部门提供的,也可以是一些行业或政府部门提供的,最后就是自己挖掘了。最常见的方法是爬虫,爬下的数据载入Mongodb数据库。此外,还可以把一些文字内容切成词频表,利用Jieba等工具分析,我不清楚视频、图片、语音能不能数据化,印象中是可以的。这方面的技能树有:数据挖掘(这是一个很大的领域,目前粗浅了解即可)、爬虫(对网页的了解和正则表达式)、存放数据的仓库(数仓)。
2.数据清洗。如果是业务部门提供的数据很可能已经是完美的,这时只需要构建指标体系,通过SQL语言取出数据。SQL语言应注重性能,学会调优,特别是数据量较大的时候,不应该追求语法的简练而应该深入了解SQL语言的原理,写出高效的SQL语句,SQL技能应该精通。当然很多时候获得的数据是脏数据,需要通过Python导入数据,利用python和numpy和pandas这两个库进行处理。先查看是否存在缺失值,对缺失值进行删除或补全,查看是否存在异常值,分析异常值产生的原因,删除重复值,把粗糙的数据切割转化为可供分析的数据。这方面的技能树有:SQL语言、Python的基本语法和numpy和pandas、missingno这几个库、正则表达式、EXCEL。
3.数据可视化。把得到的数据填入Dashboard(仪表盘)。如果数据量比较少且需要快速作图时的话,导入Excel绘制图表是最方便的,此外Tableau也是重要的可视化工具。此外要想绘制漂亮的定制化的图形应该使用Python的matplotlib和seaborn库。这方面的技能树有:Excel、Tableau、Python的matplotlib和seaborn这两个库。
4.数据建模分析。数据分析应贯穿整个流程,并不是单独一个流程。这是最重要的一个环节,既需要对业务有深入了解,也需要有统计学知识。这方面的技能树有:扎实的统计学基础、利用SPSS做一些聚类和主成分分析等、利用R\Python建模、机器学习算法(如随机森林、决策树、神经网络)、再深入下去就是人工智能领域了。
5.得出结论和给出建议。这方面的要点是数据和业务结合,用简洁通俗易懂的语言说清事实给出结论,之后应跟踪业务,进行复盘和修正。
6.此外还一个大数据领域。这方面目前还没有接触,可能需要掌握一些分布式系统,Java语言,Spark框架,数仓之类的东西。