干货|如何组建一支优秀的数据分析团队?
Q:数据分析人员能做什么?
A:从纷繁的数据里提炼出有价值的信息并给公司提供支持啊。
Q:你怎么提炼啊?
A:写程序采集啊,清洗啊,用一定的算法计算数据内部联系,根据业务做出判断啊……
Q:如果都是用已有的算法,这些事情为什么不能用现成的流程来做呢?或者为什么不能写成程序,让机器自己实现呢?
作为一名数据分析师,刚入行的时候跟人聊天聊成这样,非常常见也非常令人不爽。但我们数据分析师是不是仅能手工操作一些算法,等着机器和算法逐步取代我们么?并不是!
照例观点先行:数据分析不等于数据分析算法/程序,数据分析算法/程序只是分析师手中的工具,数据分析要取得成功必须依赖人的力量,数据分析师的作用在于根据对业务的理解,合理使用分析工具,完成分析目标。
结合业务的数据分析才是科学的,一切只看计算机输出结果不考虑业务实际情况的数据分析都是无(shua)用(liu)功(mang)。计算机能实现的算法也好,程序也好,只是数据分析中的一部分;如何选择分析切入点,如何选择数据来源,如何确定算法,如何解读结论,这些机器统统做不了,需要我们数据分析师来解决。
观点在上边两段里已经充分展示了,接下来我要愉快的展(che)开(dan)观点内容了:
数据分析通常包括几个阶段:提出/发现问题——获取并清洗数据——建模——调整优化——输出结论。
大多数时候,数据分析都是为了解决一个问题(锁定某个产品的目标客户,对同样的人群做营销活动用A方案好还是B方案好,等等),或者验证一个猜想(不让旅游者上班高峰坐地铁是不是会大幅度缓解拥挤现象,啤酒和尿布放一起是不是真的会提升啤酒的销售额,等等),总之需要达到一个目标。即使是探索性分析(拿着一大堆数据看看能不能找出点什么结论),那也需要先预设一个或多个目标作为切入点,然后在探索过程中逐步修正。
提出和发现问题的过程,交给计算机干不太靠谱,首先计算机不会提出问题(因为笨),其次计算机能发现的问题也一定是人已经发现了的问题(还是因为笨),需要先有人来设定规则,然后计算机才能根据规则发现问题。而数据分析师,就是设定规则的人。
这两个阶段中,分析算法出场了,描述分析、关联分析、回归、分类、聚类、时间序列,每个类别里都有一大堆的固定算法,分析师不能通过手算得出结论,需要借助封装好算法的分析工具(图形化的SPSS,命令行方式的R,等等),看来这一阶段计算机要超越分析师了!
等等,建模哪有这么简单,计算机解决不了的问题一大堆呢:什么时候用哪个类别的算法(该做分类还是聚类),同一类别不同算法哪个更适合当前情况(K-means还是两步聚类,这是个问题),同一个算法怎么调整参数能使效果更好(到底该把用户聚成几类呢),算法输出的结果是否正常(有一部分数据出了问题导致分析结果出现偏差)等等。这些问题计算机统统不知道耶,需要分析师来告诉它该做什么事。
打个比方,数据分析就是打仗,算法是机枪、大炮、坦克等等技术兵器,分析师是士兵、炮手、驾驶员(操纵者),不能因为士兵自己不能一分钟吐出几百发子弹或者炮手自己不能一下子拆掉一个碉堡,就让机枪大炮坦克把操纵者扔下,自己上阵去打仗……就算是无人机,那也得有个拿遥控器的驾驶员蹲在办公室里操作啊……
这一阶段计算机的工作已经基本完成了,对模型输出的数据进行解读,那完全是分析师的天下——同一份数据给不同的分析师,可能会得出不同的结论,很多时候分析师并不单单根据数据本身得出结论,还要结合很多外界因素来修正结论。分析师的经验越丰富,拥有的有效信息量越多,得出的结论就越接近事实(之所以用接近,是因为对数据解读的准确度永远达不到100%,影响结果的因素太多了,比如一个企业销售额连续增长10年,分析师根据公司数据和市场情况判断下一年还会继续增长,结果老板出事跑路了,企业直接倒闭),而这个过程是计算机目前没办法自主进行的,商业智能系统做的再好,也需要由分析师来设定规则,告诉计算机在什么时间需要做什么。
也许随着大数据和人工智能的发展,有一天计算机可以完全不依赖人工设定的规则(不需要确定数据来源,不需要选择算法和模型,不需要人工干预来修正模型,等等),自己对数据进行全方位的分析,加入所有因素的影响,并输出准确度非常高的报告,只有到那时候,分析师才会失业啊。
多年以来我和数百家企业打过交道,在这个过程中,我领悟了让数据分析项目成功的一些因素,也亲眼看着很多项目失败。
最常见的失败原因说出来可能会让你惊讶。并非是缺乏数据专业知识或者整合失误,而仅仅是因为企业没有让“利用数据”成为任何人员的职责。太多公司花费好几个月收集有趣的数据,然后让它们静静地躺在角落里积攒灰尘。这个现象驱使我来撰写本文,希望它能给你灵感,让你为下一个分析项目增加一些结构性。 对分析的应用,本应该成为你不断汲取的商业泉源。
有一个团队成员要负责分析工作的实施交付。你可能已经知道,一个高效的项目管理者要:
识别项目的利益相关者,并搞清他们需要什么。这些人会问“我们要回答的商业问题是什么?”
设定并传达工作目标、范围和时间,落实到每个相关人员。
管理项目所依赖的资源,发现交付过程中的障碍。
确保项目如实交付、达成目标(例如,数据确实回答了对业务至关重要的问题)。
确保每个相关人员,从工程师到产品经理,同步工作并理解要交付什么。这个部分比较重要,因为人们通常低估或高度数据的作用。
对项目领导者的建议:
如果你专注于那些可以直接为产品或业务带来改变的问题,你的分析项目会得到最及时的反馈。例如:新的宣传活动带来的顾客是否转化为付费用户了(是否该继续在这个宣传渠道上继续投资)?或者,我们准备取消这个功能,你能否查看一下是否有付费用户在使用这个服务?
这个头衔听起来很炫,但它只是意味着你的团队需要有个懂技术的人创建数据模型,并理解查询语句如何工作。数据模型可以很简单,甚至像一封电子邮件,列出你要跟踪的行为和优先级。
对数据分析者的建议:
花点时间让曾经使用过相同工具的人看看你的数据模型。例如,如果你在使用Keen,就跟使用过Keen的开发者聊聊。也可以让分析服务提供者和你一起审阅你的数据模型。不管你在使用什么工具,都会有些事情需要取舍,解决方案总有些部分不会按照预期工作。节省些时间,跟有过相同经历的人谈谈你的计划吧。
建立数据模型时,使用客户和业务领域的习惯用语,而不是应用开发者的习惯用语。例如,不要去追踪“阶段变化”,客户和你公司里的其他人无法理解它。如果能保证使用的语言是业务导向的,它会帮助你的机构/企业理解如何去查询和使用数据。
保证让至少一个人审阅你的数据模型,保证模型可被他人理解。你可能会发现有些对自己来说很直白的标签,对其他人来说并不清晰。比如,对于机构里的不同人员,“uuid”意味着不同的东西。
项目一开始,就要有至少一个开发人员承担埋点的工作。他们在各处加一些代码,这样每次登录、购买、上传和其他行为的数据都能被保存。如果事件的来源有很多,比如移动应用+网页,这个工作可能由多个开发者完成(如,一个网站开发者和一个移动开发者)。在小一些的机构,埋点的开发者通常也扮演数据建构者。在大一些的团体中,开发者和数据建构者紧密合作,确保模型数据足够理想,以及事物被跟踪并以一致的格式标记(如“user.id” = “23cv42343jk88” 不是 “user.id” = “fran@cooldomain.com”)。埋点是个相对直接的过程,许多分析服务有直接可用的客户库使得此过程简化,不过,你的团队依然需要决定要跟踪什么行为,如何命名。
对产品开发者的建议:
确保根据对你的机构有意义的数据模型进行埋点。如果你的团队没有数据建构者,那么就扮演这个角色,在开始埋点之前规划一个模型。这会帮你理清思路,也更利于与他人沟通。
使用分开的repository,带有各自的key,针对dev, test和prod,这样就不会让生成数据和测试数据混淆。
你会收集很多有意思的数据,但如果没人利用,这些数据就不会有价值。团队里需要至少有一个人对数据背后隐藏的东西非常好奇。我把这些人称为分析者。分析者通常是个开发者、产品经理或产品团队/营销团队的某个人。这些人不仅疯狂地想了解业务问题的答案,还能时时提出新问题。分析者喜欢钻研项目第一阶段收集的数据,而且有很多点子,引出下一阶段应该收集的新东西。换句话说,团队中需要有个人享受实践分析的过程。不要着急,这样的人有很多:)。技术背景对这个角色有很大帮助,这使得他们能快速理解什么样的查询语句可以得到想要的答案。
这个角色对于项目成功至关重要,如果没人从数据中理解、学习,就无法从中得到任何价值。
对分析者的建议:
分析的结果可能对你自己而言显而易见或很有意义,但别人看来可能不是这样。这是因为你从一开始就知道要回答什么问题。你知道数据包含哪些不包含哪些。此外你写的查询语句最终生成了可视化结果或报告。要让他人理解最终得到的数字都意味者什么,那么你要分享很多上下文内容给他们。
分享分析的结果时,需要写明你从数据中得到的结论,以及根据分析结果应该采取什么业务行动(如,上个版本发布后我们的转化率下降了,所以应该改回去)。其他人可能不仅没有正确解读数据所需的上下文,他们也很可能不像你那样感觉数据很迷人,且没时间去试图理解其意义。
不要用力过猛,不过,对于这个岗位来说沟通技巧很重要。分析者大约半数的时间都用在了沟通上。解释与总结从数据中获得的结论、结果需要花点时间。如果你的分析结果不能只是静静躺在别人的收件箱里。有些你是机构里唯一意识到某个机会或问题的人,应该确保机构对机会或问题有所反应。有时你得做那个难搞的人。不要低估自己工作的价值。
这个角色不是必需的,但你可能会想要制作一些报告,便于整个团队和其他利益相关者获取。要想让数据的实用性会大大提升,数据应该更紧密地与业务流程相连,而不是被遗弃在数据库里等着有人翻阅。一个前端开发者要能够把query变成产品经理和其他业务人员阅读的报告。下面是一些可能有用的例子:
Email寄送周报
内部网站的一个页面
在面向用户的app中
用Google表格公开发布
推送到slack频道
在某个面板上展示
对报告制作者的建议:
确保报告的使用者能理解数据才能让你的工作产生最大价值。一个办法是,不断问他们“当你看到转化率5.2%时,这对你来说意味着什么?你会认为它是怎么计算出来的?”
另一种提高报告可读性的方式是写一份指南(如注释),以解释数据从何而来、如何被计算。例如,数据是否包含从网站和app获取的用户,或只是来自其中一种的用户?它是否包括测试用户和公司的内部用户,或者他们已经被过滤掉了?
内容来源:网络大数据