前言
我刚和一位老友恢复了联系。她一直对数据科学很感兴趣,但10个月前才涉足这一领域——作为一个数据科学家加入了一个组织。我明显感觉到她已经在新的岗位上学到了很多东西。然而,我们聊天时,她提到了一个至今在我脑海里都挥之不去的事实或者说是问题。她说,不论她表现如何,每一个项目或分析任务在令经理满意之前都要做好多次。她还提到,往往事后发现原本不需要花这么多时间!
听起来是不是很像你的遭遇?你会不会在得出像样的答案之前反复分析很多次?或者一遍又一遍地为类似的活动写着代码?如果是这样的话,这篇文章正好适合你。我会分享一些提高效率和减少不必要的重复工作的方法。
备注:请别误会。我不是说迭代都不好。这篇文章的重点在于如何识别哪些迭代是必要的,哪些是不必要且需要避免的。
什么原因导致了数据分析中的重复工作?
我认为没有加入新信息,就没必要重复分析(后面提到一个例外)。下面这些重复工作都是可以避免的:
对客户问题的诊断有偏差,不能满足需求,所以要重做。
重复分析的目的在于收集更多的变量,而你之前认为不需要这些变量。
之前没有考虑到影响你分析活动的偏差或假设,后来考虑到了所以要重做。
哪些迭代是必要的呢?下面举两个例子,一、你先建立了一个6个月后的模型,随后有了新的信息,由此导致的迭代是健康的。二、你有意地从简单的模型开始逐渐深入理解并构建复杂模型。
上面没有涵盖所有可能的情况,但我相信这些例子足够帮助你判断你的分析迭代是不是健康的。
这些生产力杀手的影响?
我们很清楚一点——没有人想在分析中出现不健康的迭代和生产力杀手。不是每个数据科学家都乐于一边做一边增加变量并反复运行整个分析过程。
分析师和数据科学家会因为不健康迭代和丧失效率而深感挫败,缺乏成就感。那么让我们尽一切努力来避免它们吧。
小贴士:如何避免不健康迭代并增加效率
技巧1: 只关注重大问题
每个组织都有很多可以用数据解决的小问题!但雇一个数据科学家的主要目的不在于解决这些小问题。好钢要用在刀刃上,应该选取3到4个对整个组织影响最大的数据问题交给数据科学家来解决。这些问题一般具有挑战性,会给你的分析活动带来最大杠杆(或者收获满满或者颗粒无收,想象一下借贷炒股)。当更大的问题没被解决时,你不应当去解决小问题。
听起来没什么,但实际上很多组织都没做好这一点!我看到很多银行没用数据分析去改善风险评分,而是去做市场营销。有些保险公司没用数据分析提升客户留存率,而是试图建立针对代理机构的奖励计划。
技巧2: 一开始就创建数据分析的演示文稿 (可能的布局和结构)
我一直这样做并且受益匪浅。把分析演示稿的框架搭起来应该是项目启动后的第一件事。这听起来或许有悖常理,然而一旦你养成这个习惯,就可以节省时间。
如何搭框架呢?
你可以用ppt、word、或者一段话来搭框架,形式是无关紧要的。重要的是一开始就要把所有可能情况列出来。例如,如果你试图降低坏账冲销率,那么可以像下面一样布局你的演示文稿:
接下来,你可以考虑每个因素如何影响坏账冲销率?例如,由于给客户增加了信用额度导致银行的坏账冲销率增加,你可以:
首先,确定那些信用额度没被增加的客户并没有导致此次坏账冲销率增加。
下一步,用一个数学公式来测量这个影响。
一旦你把分析中的每一个分支都考虑到了,那么你已经为自己创造了一个良好的起点。
技巧3: 事先定义数据需求
数据需求直接源于最后的分析结果。如果你已经全面地规划了要做哪些分析、产生什么结果,那么你将知道数据需求是什么。这里有几个提示来帮助你:
• 试着赋予数据需求一个结构: 不单是记下变量列表,你应该分门别类地想清楚分析活动需要哪些表格。以上面增加坏账冲销率为例,你将需要客户人口统计表,过往市场营销活动统计表,客户过去 12 个月的交易记录,银行信贷政策变更文件等资料。
• 收集你可能需要的所有数据: 即使你不是 100%肯定是否需要所有的变量,在这一阶段你应该把所有数据都收集起来。这样做工作量大一些,但是与在以后的环节增加变量收集数据相比,还是更有效率一些。
• 定义您感兴趣的数据的时间区间。
技巧 4: 确保你的分析可重现
这个提示听起来可能很简单——但初学者和高级分析人员都难以把握好这一点。初学者会用Excel执行每一步活动,其中包括复制粘贴数据。对于高级用户,任何通过命令行界面完成的工作都可能不可重现。
同样,使用记事本(notebook)时需要格外小心。你应该克制自己修改以前的步骤,尤其是在前面的数据已经被后面的步骤使用的情况下。记事本在维护这种涉及前后数据勾稽关系的数据流方面表现地非常强大。但是如果记事本中没维护这种数据流,它也会非常没用。
技巧5: 建标准代码库
没必要为简单的操作一次又一次重写代码。它不仅浪费时间,还可能会造成语法错误。另一个窍门是创建常见操作的标准代码库并在整个团队中共享。
这将不仅确保整个团队使用相同的代码,而且也使他们更有效率。
技巧6: 建中间数据集市
很多的时候,你会反复需要同一批信息。例如,你将在多个分析和报告中用到所有客户信用卡消费记录。虽然你可以每次都从交易记录表中提取,但是创建包含这些表的中间数据集市,可以有效节省时间和精力。同样,市场营销活动的汇总表也没必要每次都查询提取一次。
技巧7: 使用保留样本和交叉验证防止过度拟合
很多初学者低估了保留样本和交叉验证的强大。很多人倾向于认为只要训练集足够大,几乎不会过拟合,因此没必要交叉验证或保留样本。
有这种想法,往往会在最后出岔子。不单我这样说——可以看一下Kaggle上任意竞赛公开或非公开的排行榜。你会发现前十名中有些人不再过拟合时他们的排名就不再下降了。你可以想象这些都是高级数据科学家。
技巧8: 集中一段时间工作并且有规律地休息
对于我来说,最佳的工作状态是集中利用2-3小时解决一个问题或项目。作为一名数据科学家,你很难同时完成多项任务。你需要以自己的最佳状态对待一个单独的问题。对于我来说,2-3 小时的时间窗口最有效率,你可以依据个人情况自行设定。
后记
上面这些就是我提高工作效率的一些方法。我不强调非要第一次就把事情做好,但是你必须养成每一次都能做好的习惯——这样你才能成为一个专业的数据科学家。
你有什么提高工作效率的好方法吗?有的话请在下面的评论中留言。
原文标题:8 Productivity hacks for Data Scientists & Business Analysts
翻译笔记
1、catch up with sb.还特指同某人恢复联系,相当于become current with what’s going on in someone’s life when you haven’t been in touch for a while
所以这句话的意思是说 “再次联络到(碰到/遇到)你真好”,特指有段时间和你没有见面或者联络时候的说法。
2、productivity killers,生产效率杀手,降低生产效率的因素,阻碍提高生产效率的因素。
3、坏账冲销率,信用卡行业的重要指标,每月发生坏账除以当月初信用卡应收款总额的年化比例,主要用于衡量资产的信用水平。
4、插图中Brand strategy change,品牌战略变更可能会导致坏账冲销率增加。例如,当采用竞争品牌或者边际品牌战略时可能会导致坏账冲销率的增加。
5、品牌战略:
形象品牌。在品牌竞争中形象品牌能有效地赢得公众的信赖,形成良好的“口碑”效应,对累积、提升品牌资本有着极为重要的作用,能促进企业其它品牌的推广。例如,雀巢公司的“雀巢”作为母品牌就是形象品牌,它有力地推动了其众多的子品牌。因此,企业的品牌经营战略不能没有形象品牌。
竞争品牌,通常是针对市场上同类产品而推出的,它将通过其特殊的市场定位如技术上的、价格上的或服务上的特色撕开竞争对手的防线,或开辟崭新的目标市场。显然,竞争品牌的主要目的就是为企业争夺更多的市场份额,创立企业的竞争优势。这种类型的品牌也许现在并不能为企业带来多少利润,但发展潜力极大,是企业参与未来市场品牌竞争的关键和希望。
利润品牌,是企业多品牌经营的中心。利润品牌为企业创造利润是现代品牌经营的重要特征。利润品牌一般都是企业独特技术(企业核心竞争力)的代表,竞争者难于在较短时间内进入这一领域为企业创造很大的利润空间,甚至是超额利润。当然这类品牌如果不加以提升和改善,就有进入衰退期的可能。
边际品牌,是企业多品牌经营战略的必要补充。边际品牌不是企业的形象品牌、竞争品牌,从其表象看难于创造利润但因其具有一定的客户基础,不像其它品牌那样需要高额的投资。因此,即使该品牌的销售额停滞不前或缓慢下降,仍有一批忠诚的消费者不会放弃这类品牌。边际品牌的作用就是创造盈余资源,并为企业的竞争品牌、形象品牌和利润品牌提供资源支持,为冲销企业的固定经营费用做出贡献。
6、插图中“Acquisition driven”,acquisition意为(1)(对公司的)收购,并购;(2)(图书馆通过采购、交换赠阅等)图书资料的获得;获得的书籍(或报刊、杂志);(3)(知识、技能等的)获得,习得。例如,data acquisition指数据采集。
7、插图中“Spend simulation”,译者在此只依文解义的翻成了“花费模拟”。在ask.com搜索引擎中,没有相应内容,网站提示是否搜索spent simulation,spent是一个互动游戏,由一个帮助流浪者和贫穷者的公益组织发起,玩家用1000美元生活一个月模拟贫穷的生活状态,玩家参与互动游戏时会面临很多选择,比如Cover the minimum on your credit cards or pay the rent?支付信用卡还是支付房租。这个游戏从2011年2月第一次举办到2014年7月已经有200万人在218个国家玩超过400万次。如果客户参与这类活动,可能会导致信用卡超期未付。参考链接:http://umdurham.org/ https://en.wikipedia.org/wiki/SPENT_(online_game)#cite_note-2
8、data requirement,数据需求,与之相关的还有Market requirement,Production requirement,其中产品需求与数据需求关系紧密。因为数据需求随着产品业务逻辑展开。要收集一个产品的数据,首先需要了解产品业务逻辑,例如功能之间的交互关系以及单一功能的业务逻辑。其次将业务逻辑节点化,识别出重要节点并列出优先级。再次将节点化的业务代码化,主要将列出的重要节点(需要统计的节点)添加统计事件和统计参数。最后形成数据需求文档。
9、more often than not,往往。
读后感
译完这篇文章,我感觉数据分析人员可以从两个方面借鉴经验,一是从传统管理咨询行业借力,DA需要具备的能力包括传统咨询行业解决问题的能力加上数据处理技能。比如本文的第二点提示,类似于咨询行业的重要方法——结构化思维。可以参考芭芭拉·明托编写的《Logic in writing, thinking and problem solving》(中文译名:金字塔原理——思考、表达和解决问题的逻辑),这本书是麦肯锡的经典培训教材,介绍了很多实用的方法,帮助读者在思考表达时重点突出、逻辑清晰、主次分明。二是可以从传统的数据资源规划中得到启发。本文第三点提示,如何确定数据需求,恰恰可以参照传统数据资源规划中从业务需求得到数据需求,并对业务和数据进行建模的系统化方法,具体可以参考高复先教授的《信息资源规划:信息化建设基础工程》。
本文最后提到工作和休息,这点因人而异。我觉得需要关注以下几点:
一是评估综合效率。一周有一两次效率特高,但综合效率或许不如一周都保持一个平稳的节奏。可以尝试用番茄钟这种时间管理工具来量化分析一下自己的情况;
二是调整生活习惯。数据分析工作需要饱满的精力,影响精力的因素很多,比如暴饮暴食可能就会带来负面影响。
三是关注呼吸,如果我们高效率的时候身心舒畅,呼吸自然,那么这种状态是可持续的。如果精力集中时,经常屏住呼吸,这种方式更倾向于消耗。冥想和正念训练或许会有帮助。
工作有如跑马拉松,有些人的目标不为跑得快只为跑得年头久,希望60岁依然能去跑,这类人对控制心率的需求大过提高速度。有些人希望尽快提高成绩,去冲刺几个重要赛事,因而自愿承担自由基增加的代价。做数据分析也一样,设定怎样的目标,那就怎样去奔跑吧。