独家 | 麦肯锡教我的数据科学家的五大黄金法则

2024-04-13 20:08

本文主要是介绍独家 | 麦肯锡教我的数据科学家的五大黄金法则,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Tessa Xie    
翻译:苗雨校对:欧阳锦本文约3700字,建议阅读5分钟本文总结了成为优秀数据科学家的五大关键准则。

图来源于Dan Dimmock在Unsplash上的拍摄

近些年来,数据科学家这一岗位已经变得越来越炙手可热,也吸引了大批年轻人涌入渴望在激烈的竞争中抢占一席之位。各个网络平台上都已经有无数干货数据科学行业的简历、求职、面试教程,但是很显然成为一位优秀数据科学家的旅途不会因为求职成功就结束。收到offer仅仅只是第一步。

我在麦肯锡咨询公司的那些年,很荣幸能跟许多厉害的数据科学家以及各行各业的顶尖公司合作。我从中也受益匪浅,并从长期实践和观察中总结出来许多数据科学界的经验和体会。你可能会觉得震惊的一个事实就是:最优秀的数据科学家不是那些会用各种新奇模型或者代码写得很好的,事实上,真正优秀的数据科学家是掌握了丰富理论知识的同时还拥有各种 “软知识”的人。因此,这篇文章总结了我在麦肯锡的学到的成为优秀数据科学家的五大关键准则。


1. 使用金字塔原则沟通是成功的钥匙

 

巴巴拉·明托的金字塔原则是一项层次性、结构化的思考、沟通技术。这项原理被视为最有效率的信息沟通方式,并且被广泛运用于公司、企业、甚至个人生活中。金字塔原则背后的原理很简单:当你想要交流某个观念或想法的时候,最高效的方法:1. 结论先行 2. 以上统下 3. 逻辑递进

使用金字塔原则进行沟通有以下两个优点:

1. 不管你的实际内容有多深奥,使用金字塔原则可以帮助你的听众更好理解你的观点。通常学术论文、或企业报告的开头都会有个摘要,总结整篇文章或材料的中心思想。这样的作法可以确保读者在没办法理解、记住所有文章细节的情况下,也能理解其核心思想。

2. 金字塔原则可以帮你适当节省下为不同观众群体准备不同材料(比如演讲ppt)的时间。你可以运用金字塔原则做一份你所要展示的问题的核心思想的演讲材料,针对不同受众群体适当补充他们所感兴趣的细节和论点。

对于大部分数据科学家而言,由于他们本身的工作大部分时间都在关注细节、深挖可分析的点,金字塔原则可能看上去并不那么适用。事实上,我也经常看见许多数据科学家在演讲中并未采取金字塔原则,先从细节开始讲起,而这些演讲的效果也并不好,观众们很难快速理解到他们的核心思想和问题所在。

如何练习/提升:最简单的方法就是在一切最开始前先根据金字塔原则写下自己的结论、论点、和逻辑递进,并在沟通过程中参照自己最开始前写下的内容确保自己没有跑题。时不时地反问自己一些问题(类似于中心结论和问题到底是什么,问题真的被解决了吗)也可以确保你走在正确的道路上。

2. 你是数据的“翻译官”

如果你看麦肯锡的企业蓝图

https://www.mckinsey.com/industries/financial-services/our-insights/building-an-effective-analytics-organization,你会发现上面强调了数据的”翻译官“这个角色的重要性。数据的“翻译官”的也可以理解为企业与数据中心之间的沟通桥梁,需要把一个个数据分析的结论和观点翻译成实际可行性方案。我相信一个数据科学家肯定被问过以下问题:可以请你用大白话或清晰易懂且非专业性的语言解释一下你的观点和结论吗?因此,一个数据科学家应该具备把专业性极强的机器学习模型用清晰易懂的语言解释给CEO或者任何非专业背景的听众的能力,并且同时也应该具备把自己的结论观点翻译成企业实际可行性方案的能力。

具备这些能力有以下优点:

1. 不具备专业背景的人很难成为数据的“翻译官”。麦肯锡曾经尝试过很多方法去培训战略顾问成为“翻译官”,但是在我看来,从未成功过。失败的原因很简单:一个人必须具备足够的专业背景和分析能力才能精准地解释那些复杂的数据分析背后隐藏的意义,而丰富的专业背景和杰出的分析能力都不是短期的培训就能培养出的能力。举个例子,如果你并不理解k均值聚类背后的数学逻辑和原理,你没办法清晰解释为何要这么选这个数字作为你的k值而不是其他数字。而作为一个数据科学家,与其花费时间向那些非专业人士解答他们难以理解的专业术语和原理,不如想办法用清晰易懂的话语“翻译”给他们。

2. 如果数据科学家可以自己解释自己的工作成果,可以大幅度避免信息在传播过程中导致的扭曲和失真。我相信大部分人都玩过传话游戏,传播过程越长,涉及的人数越多,信息越容易在传播过程中被扭曲、误传。这种情况也同样适用于数据科学家的日常工作中,如果你通过别人来“翻译”你的工作成果,你很难保证当信息传播到终端用户的时候跟你最开始想要传达的没有一点偏差。

如何练习/提升:找一位身边的朋友(最好是非专业人士),向他解释你的模型和数据分析结果。在解释的过程中,如果你发现你不知道如何把一个概念用清晰易懂的方式表达出来,大部分情况下是因为你并没有完全掌握这个概念。因此,这个练习也是一个很好的查漏补缺的机会。 

3. 时刻把解决实际问题放在第一位

这一黄金准则并不只限于数据科学家,事实上,“时刻把解决实际问题放在第一位”适用于任何行业中的任何职位。发现问题并提出问题的能力尤为重要,而更重要的是有解决问题的能力。如果没有时刻把解决问题放在第一位,开会讨论的时候经常会陷入一个怪圈:过度关注于问题本身而不是想办法去解决问题。

在我看来,大部分顶尖咨询公司都奉行“时刻把解决实际问题放在第一位”的准则。作为一个数据科学家,你可能经常会因为不具备专业背景的同事提出一些在你看来很可笑的稀奇古怪的问题或需求而感到懊恼。我见过许多数据科学家们在这种情况下束手无策,直接拒绝他们的需求。比起直接拒绝,更好的做法是运用自己的分析能力和专业背景帮助他们重新定义问题所在并想办法切实地解决他们的问题。

“时刻把解决实际问题放在第一位”并不意味着你不能在工作中拒绝任何需求。事实上他意味着每当你拒绝后,你可以紧跟着提出“或许……做可以解决你的问题吗?”

如何练习/提升:当你遇到问题时,在跟同事沟通讨论前,先自己花时间想一想如果是你的话你会如何解决。面对问题时,多运用你的创造性思维发掘新的解决方案,不要害怕做那个提出新的解决方案的人。有时候换位思考的能力也很重要,尝试着以整个公司或者其他业务部门的角度去思考他们会如何解决这个问题。从大局出发思考,有时候也会带来意想不到的解决问题的方案。

 

4. 有时候可以为了模型的可解释性而适当牺牲模型的准确率。

没有人真的想精准预测出结果,所有人都只是在尝试分析、理解结果。

 

当一个企业想要建立模型去预测出未来客户流失数时,大部分情况下,人们都忘了在第一时间问为什么我们需要预测客户流失数。企业想要预测出某些结果是因为他们可以提前采取措施应对以避免损失。所以当你的模型告诉CEO “在预测客户流失数里网站访问量的立方根是最显著的特征”意味着什么呢?很可能在他看来毫无意义。

作为一个数据科学家,我以前也经常过度追求模型的准确性。但是我逐渐意识到了通过添加一些无法解释、没有意义的变量;或者调参仅仅只是为了把准确率从96%提高至98%对整个公司来说并没有太大的意义(当然,这个观念仅仅只适用于业务导向的数据科学家们,对于其他领域的机器学习工程师而言,模型准确率可能极其重要)。

对于大部分高管和业务部门来说,如果你无法解释你的模型和模型的结果,那你的模型可能在他们眼里看来并没有那么可靠。模型只是为了辅助他们去更好地做出商业决策,所以模型更大的意义是可解释性而不是准确率。

 

如何练习/提升:当你在建模或做数据分析时,时刻反问自己“这会如何影响公司呢”。建模过程中,尽量避免放一些随机、意义不大的交互特征。当你的模型或分析有结果后,可以根据结果具有针对性地写下对公司的建设性意见,这样的作法也会帮助你更好的评估自己的模型是否适用。

 

5. 在开始前,确保自己有个假设场景,但是不要仅局限于一个假设。

在开始任何分析工作之前,设立好自己将要分析的假设场景尤为重要。如果不设立好分析背景,你可能在前期数据处理、EDA 或者是如何选择特征时一头雾水。如果没有任何假设,AB测试也没办法进行。尽管提前设立好自己的假设如此重要,我也见过没有提前设立好假设就开始处理问题的数据科学家。在这种情况下,数据科学家们往往把设立假设这个关键任务丢给了缺乏专业背景的业务部门,而他们往往会因为缺乏一些专业背景和对数据的熟悉设立一些实际工作场景中无法检验的假设。因此,在我看来最好的做法是数据科学家们在一开始就应该参与到设定假设的过程中去指引他们哪些是可尝试的而哪些是无法尝试的。

设立假设尤为重要,因为它是一切的起点,但是这并不代表设立好一个假设后就万事大吉了。我经常看见许多数据集科学家们过于执着于一个假设,尽管这个假设带来了自相矛盾的结果。太过于执着于一个假设可能会导致为了满足这个假设而去人为的更改一些数据或进行一些影响准确率的操作。如果你听过辛普森悖论,那你一定很清楚数据是具备撒谎的能力的。一个好的数据科学家应该把数据可靠性放在第一位,因此不要仅仅只局限于一个假设。

 

如何练习/提升:设立假设是具备业务思维和敏锐度尤为重要。有了假设之后跟着你的假设去进行数据探索,但是当数据呈现出与你的假设相反的结果时,也不要过度执着于自己一开始的假设。

 

人们通常把人才分为两种:战略性人才和分析性人才,这样的分法就好像在暗示一个人无法同时拥有这两种能力。但是事实上,一般最好的分析性人才恰恰是那些能理解公司战略性政策和想法,并且懂得如何和业务部门沟通的人。而最好的战略性人才也恰恰是那些具备足够数据分析能力的人。

 

原文标题:

5 Lessons McKinsey Taught Me That Will Make You A Better Data Scientist

原文链接:

https://towardsdatascience.com/5-lessons-mckinsey-taught-me-that-will-make-you-a-better-data-scientist-66cd9cc16aba?gi=2242e432865c

 

编辑:于腾凯

校对:汪雨晴

译者简介

苗雨,美国加州大学洛杉矶分校应用统计学硕士在读,毕业后准备继续在统计学领域读博深造。对机器学习,因果推断很感兴趣,希望能和大家一起成长。

翻译组招募信息

工作内容:需要一颗细致的心,将选取好的外文文章翻译成流畅的中文。如果你是数据科学/统计学/计算机类的留学生,或在海外从事相关工作,或对自己外语水平有信心的朋友欢迎加入翻译小组。

你能得到:定期的翻译培训提高志愿者的翻译水平,提高对于数据科学前沿的认知,海外的朋友可以和国内技术应用发展保持联系,THU数据派产学研的背景为志愿者带来好的发展机遇。

其他福利:来自于名企的数据科学工作者,北大清华以及海外等名校学生他们都将成为你在翻译小组的伙伴。

点击文末“阅读原文”加入数据派团队~

转载须知

如需转载,请在开篇显著位置注明作者和出处(转自:数据派ID:DatapiTHU),并在文章结尾放置数据派醒目二维码。有原创标识文章,请发送【文章名称-待授权公众号名称及ID】至联系邮箱,申请白名单授权并按要求编辑。

发布后请将链接反馈至联系邮箱(见下方)。未经许可的转载以及改编者,我们将依法追究其法律责任。

点击“阅读原文”拥抱组织

这篇关于独家 | 麦肯锡教我的数据科学家的五大黄金法则的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/901094

相关文章

MySQL数据脱敏的实现方法

《MySQL数据脱敏的实现方法》本文主要介绍了MySQL数据脱敏的实现方法,包括字符替换、加密等方法,通过工具类和数据库服务整合,确保敏感信息在查询结果中被掩码处理,感兴趣的可以了解一下... 目录一. 数据脱敏的方法二. 字符替换脱敏1. 创建数据脱敏工具类三. 整合到数据库操作1. 创建服务类进行数据库

MySQL中处理数据的并发一致性的实现示例

《MySQL中处理数据的并发一致性的实现示例》在MySQL中处理数据的并发一致性是确保多个用户或应用程序同时访问和修改数据库时,不会导致数据冲突、数据丢失或数据不一致,MySQL通过事务和锁机制来管理... 目录一、事务(Transactions)1. 事务控制语句二、锁(Locks)1. 锁类型2. 锁粒

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC

SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南

《SpringBoot集成EasyExcel实现百万级别的数据导入导出实践指南》本文将基于开源项目springboot-easyexcel-batch进行解析与扩展,手把手教大家如何在SpringBo... 目录项目结构概览核心依赖百万级导出实战场景核心代码效果百万级导入实战场景监听器和Service(核心

使用Python开发一个Ditto剪贴板数据导出工具

《使用Python开发一个Ditto剪贴板数据导出工具》在日常工作中,我们经常需要处理大量的剪贴板数据,下面将介绍如何使用Python的wxPython库开发一个图形化工具,实现从Ditto数据库中读... 目录前言运行结果项目需求分析技术选型核心功能实现1. Ditto数据库结构分析2. 数据库自动定位3

pandas数据的合并concat()和merge()方式

《pandas数据的合并concat()和merge()方式》Pandas中concat沿轴合并数据框(行或列),merge基于键连接(内/外/左/右),concat用于纵向或横向拼接,merge用于... 目录concat() 轴向连接合并(1) join='outer',axis=0(2)join='o

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

C#监听txt文档获取新数据方式

《C#监听txt文档获取新数据方式》文章介绍通过监听txt文件获取最新数据,并实现开机自启动、禁用窗口关闭按钮、阻止Ctrl+C中断及防止程序退出等功能,代码整合于主函数中,供参考学习... 目录前言一、监听txt文档增加数据二、其他功能1. 设置开机自启动2. 禁止控制台窗口关闭按钮3. 阻止Ctrl +