前言
当你看这篇文章的时候,我们知道你已经决定把数据科学当作你的工作。当下越来越多的企业需要数据支持其决策,世界也变得越来越紧密,几乎每个企业都需要大量的数据科学实践。因此,对数据科学家的需求是巨大的。当然,人才短缺也是业内所公认的。
然而,成为一名数据科学家并不容易。它需要解决问题的能力、结构化思维、编码以及各种技术技能,才能真正成功。如果你只有非技术和非数学的背景,那么你很有可能通过书籍和视频来学习。然而这类资源大多并没有教你工业界对数据科学家要求的能力。
这也是渴望成功的数据科学家需要努力弥补自我学习与实际工作之间差距的主要原因之一。
在本文中,我将讨论业余数据科学家所犯的常见错误(我自己也犯了其中某些错误),并提供了一些比较实用的资源,旨在帮助您避免数据科学中的这些陷阱。
目录
• 学习理论概念而不应用它们
• 不学习先决知识而直接学习机器学习技术
• 完全依靠认证和学位
• 误以为你在机器学习竞赛中看到的是真实的工作现状
• 注重模型的精度胜过其适用性和可解释性
• 在简历中使用过多的数据科学术语
• 优先考虑该使用的工具和各种库而不是业务本身要解决的问题
• 没有花费足够的时间去探索和可视化数据
• 缺乏结构化的方法来解决问题
• 试图一次学习多个工具
• 不能坚持学习
• 远离讨论和竞赛
• 不去提升沟通技巧
1. 学习理论概念而不应用它们
资料来源:认知课 - YouTube
正如我在 AV 实践问题那篇文章中提到的那样:掌握机器学习技术背后的理论是很好的,但如果你不应用它们,它们只是理论。当我开始学习数据科学时,我也犯了同样的错误:我学习了书籍和在线课程,但并不总是用它们来解决问题。
因此当我有机会应用我所学的知识去解决面临的挑战或问题时,我却忘了一大半!我们需要学习的东西有很多,比如算法、推导、研究论文等。你很有可能在中途失去学习动力并放弃。我已经看到这种情况发生在很多试图进入这个领域的人身上。
如何避免这个问题?
你必须在理论和实践之间保持一个平衡。一旦你学习了一个概念,请立即访问 Google,找到可以使用它的数据集或问题。你会发现这样做之后可以更好地理解理论知识。您还可以使用 AV 的 DataHack 平台,完成上面的练习题和参与比赛。
必须承认的是你无法通过一次学习掌握所有的东西,在练习时查漏补缺,这样会使你学到更多东西!
2. 不学习先决知识而直接学习机器学习技术
资料来源:伦敦帝国理工学院 - YouTube
大多数立志要成为数据科学家的人都受到机器人视频或有趣的预测模型的鼓舞,当然也有些人是在高薪诱惑下入行的。遗憾的是(不好意思让你们失望了!),在你到达那里之前,你还有一条漫长的路要走。
在应用一项技术解决问题之前你应该了解其背后的工作原理,这样做将有助于你了解算法如何工作,知道如何去微调它,并且还将帮助你在现有技术的基础上搭建新的技术。数学在里面发挥着重要作用,因此了解某些概念总是有帮助的。在日常的企业数据科学家角色中,您可能不需要了解高级微积分,但有一个总体的了解肯定是有帮助的。
如果您有好奇心或想要进入研究领域,那么在深入了解机器学习的核心技术之前,您需要了解的四个关键组件是:
• 线性代数
• 微积分
• 统计学
• 概率论
如何避免这个问题?
正如房子是一砖一瓦建造的,数据科学家的看家本领也是由掌握一个一个知识点开始的。有大量的资源可以帮助您学习这些知识点。为了帮助您入门,下面我为每个知识点主题列出了一个资源:
您还可以查看 Analytics Vidhya 的「数据科学入门」课程,其中包括了有关统计和概率的综合模块。
3. 完全依靠认证和学位
自从数据科学变得非常受欢迎以来,各地的认证和学位几乎都出现了,给招聘经理和招聘人员增加了不少烦恼。浏览我的 LinkedIn 资料,至少 5 张认证图片被我自豪地展示在那里。虽然得到这些认证并非易事,但完全依赖它们也是非常危险的。
数以万计渴望成功的数据科学家报名并完成了种类繁多的在线课程。如果说完成这些课程曾经能为你的数据科学简历添加一些独特的价值,那么现在已经不是这种情况 了。招聘经理对这些证书并不那么看重了, 他们更加重视你的知识结构,以及你如何在现实生活中应用它们。
与客户打交道、处理项目截止日期、了解数据科学项目的生命周期如何工作、如何设计模型以适应现有业务框架,这些只是你作为一个成功的数据科学家所要做好的工作的一部分,而这些仅仅只有课程认证或学位是不够的。
如何避免这个问题?
不要误解我的意思:认证是很有价值的,但只有当你将这些知识应用到课堂之外并将其展示出来时才有价值。不管你对真实数据做何种分析,确保你写下它。创建自己的博客、在 LinkedIn 上发布,并征求社区的反馈意见。这表明你愿意学习并且有很多想法,愿意接受别人提出的建议并将其用于你的项目中。
你应该对实习持开放态度(无论你的经验水平如何)。你将学习到很多关于数据科学团队如何工作的经验,这会使你在参加下一次面试时受益。
如果你正在寻找下一个项目,那么你来对地方了。我们有一个很棒的按难度分级的项目清单。现在就开始吧。
4. 误以为你在机器学习竞赛中看到的是真实的工作现状
这是近来数据科学家们最大误解之一。竞赛和黑客马拉松提供了相当干净、一尘不染的数据集(好吧,说得是有点过了,懂我的意思就好)。你下载它们然后着手解决问题。即使这些数据集有一些缺失数值的数据列也不会多么麻烦,找到一种插补技术然后填空就好。
不幸的是真实世界里的项目并不这样。真实世界中有一条涉及与一群人一起工作的端到端的流程。你几乎总得和混乱、未清洗的数据打交道。俗话说得好,“花费你 70-80% 的时间,收集、清洗数据”是一点也不为过的。你会(很可能)不喜欢这个令人筋疲力尽的过程,但它最终会变成你日常工作的一部分。
此外还有一点我们将在下文中详谈,那就是简单的模型要优先于任何复杂的、堆砌的集成模型。准确性不总是最终目标,这是你会在工作中学到的最矛盾的事。
如何避免这个问题?
令人尴尬的是避开这个误区的重要因素是经验,你获得越多经验(这种情况下实习会大有助益),你越能区分这两者。这就是社交媒体的方便之处:多跟数据科学家们聊聊,问问他们的经验。
另外,我建议看看这个 Quora 问题,来自世界各地的科学家就这个问题在上边表达了他们的看法。竞赛排行榜确实适合衡量你的学习进度,但面试官想知道的是你怎样去优化一个算法来产生影响,而不是为优化而优化。学习一个数据科学项目如何运转,一个团队里有哪些不同的角色(从数据工程师到数据架构师),基于你的理解构建你的回答。
5. 注重模型的精度胜过其适用性和可解释性
来源:Design Shack
正如以上所述,精确度并不总是业务所追求的。固然一个能以 95% 的精确度预测贷款违约的模型相当不错,但若你无法解释这个模型如何做到这一点,什么特性使其如此,以及你在建构模型时的思路是什么,你的客户就会拒绝这个模型。
极少地,如果有的话,你会看到深度神经网络用于商业应用中。向客户解释一个神经网络(更别说深度神经网络)是如何利用其隐藏层、卷积层等来得到其结果是不可能的。首要且必须考虑应该是我们能够理解模型之下发生着什么。如果你没法判断年龄、家庭成员数目、抑或此前的信用记录是否与拒绝信贷申请有关,你该如何向你的客户做出建议让他们能改进他们的业务?
另一个关键方面是你的模型能否契合组织业已存在的框架。如果开发环境不能支持你使用的 10 种不同的工具和库,这将相当失败,你将不得不用一种更简单的方法从零开始重新设计并重建模型。
如何避免这个问题?
避免这个错误的最好方法便是与业界人士交流,没有比经验更好的老师。选择一个领域(金融,人力资源,销售,运营等)并与他们联系,了解他们的项目是如何运转的。
除此之外,练习构建简单的模型并向非技术人员解释它们。随后提升模型的复杂度并继续这么做,直到即使是你也不能理解其表层之下发生着什么。这将教会你何时停止,以及为何现实世界的应用中简单的模型总是更受青睐。
6. 在简历中使用过多的数据科学术语
如果你之前这么干过,你就应该知道我指的是什么。如果你的简历现在就有这个问题,请立即修正!你或许清楚一堆技术和工具,但只是简单地罗列他们无异于使潜在的招聘经理对你失去兴趣。
你的简历是对你取得的成就以及你如何做到的概括,而不是不是简单罗列的事情清单。当招聘官查看简历的时候,他/她希望能以简洁明快的方式了解你的背景知识以及你所取得的成就。如果半页简历都充斥着模糊的数据科学术语,例如线性回归、XGBoost、LightBGM,却没有任何解释,你的简历可能通不过筛选轮。
如何避免这个问题?
使简历变得整洁的最简单方法便是使用项目符号。只列出你用来完成某件事情(可以是项目或竞赛)的技术。扼要地阐述你是如何使用它们的,这将帮助招聘官理解你的想法。
当你申请对经验要求较少或入门级的工作时,你的简历需要反映你能给业务带来何种潜在影响。你可能会申请不同领域的工作角色,因而有一个固定的简历模板是非常有帮助的,你只要对应于不同的岗位要求对你的简历稍作调整以反应出你对此行业的兴趣就可以了。
7. 优先考虑该使用的工具和各种库而不是业务本身要解决的问题
来源:Data Science Lab
让我们通过一个例子来理解一下为何这是一个错误。想象你有一个房价数据集,而且你要预测未来房地产的价值。数据库中有超过 200 个变量,包括建筑物数量、房间数量、租户数量、家庭规模、庭院大小、是否有水龙头等。你很可能无法理解某些变量的意义,但你依然可以建构一个准确的模型,只是关于为何某个特定变量不产生影响,你可能完全没有头绪。
随后事实证明,那个变量是现实世界中的关键要素。这是个灾难性的错误。
有着库和工具的坚实基础是件好事,但这也只能在一定程度上帮到你。将这些知识与领域提出的业务问题结合起来才是真正的数据科学家所做的,你应该了解你感兴趣(或正谋求职位)的领域中的基本挑战。
如何避免这个问题?
这里有不少选择:
• 如果你正在谋求某个特定领域中的数据科学家职位,去关注该领域的公司如何应用数据科学。
• 若可行,寻找特定领域的数据集并着手处理它们。这会是你的简历中一个非常突出的要点。
8. 没有花费足够的时间去探索和可视化数据
数据可视化是数据科学中的一个重要方面,但许多渴望成功的数据科学家都倾向于草草了事并进入后续的模型构建阶段。这种方法或许能在竞赛中奏效,但绝对会在现实世界中失败。理解你的数据是你要去做的最重要的事情,你的模型的输出会反映这一点。
通过花时间了解数据集并尝试不同的可视化图表,你将能对要解决的挑战或问题有更为深入的理解。你定会惊讶于通过这么做获得的洞见!逐渐明晰的模式和趋势、一目了然的暗含规律,更棒的是,可视化是向客户展示你的发现的最佳方式!
作为一名数据科学家,你需要有天生的好奇心。这是数据科学非常有吸引力的地方之一:你越是好奇,你便会问越多的问题,这将助你对数据有更好的理解,并助你发现之前没有发现的问题!
如何避免这个问题?
练习!下次处理一个数据集的时候花更多时间在这个步骤上,你会惊讶于它给你带来的洞见。提出问题,并请教你的经理、领域中的专家,在互联网上寻求解决方案。若你什么都没找到,可以在社交媒体上继续询问,条条大路通罗马!
为了助你起步,我在下边列出了几项你可以参阅的资源:
• Comprehensive Guide to Data Visualization in R
• A Comprehensive Guide to Data Exploration(强烈推荐)
• 18 Free Exploratory Data Analysis Tools For People who don't code well
9. 缺乏结构化的方法来解决问题
来源:MindMatters.co.in
结构化思考对数据科学家有诸多好处:
• 让你将一个问题从逻辑上分为几个部分
• 让你将问题如何发展以及如何设计你的方法的过程可视化
• 让你以逻辑化和易于理解的方式帮助用户或客户理解你框架的流程
有更多的理由认为具有结构化的思维方式是非常有帮助的。可以想象,没有结构化的思维方式是违反直觉的。你的工作和解决问题的方法都是随意的,当遇到复杂的问题时,你还会忘记自己的步骤。
当你面试的时候,你将不可避免地面对一些案例研究的题目,例如一些估计问题或者谜题。在面试的压力和时间限制之下,面试官会看你如何组织你的思路来得到你最终的结果。很多情况下,这将成为你取得工作的关键因素,要么因此与这个工作失之交臂,要么因此得到这个工作。
如何避免这个问题?
你可以通过简单的培训和严谨的方法获得结构化的思维方式。下面列出了一些文章,可以帮助你开始这个关键的学习:
• The Art of Structured Thinking and Analysis
• Tools for Improving Structured Thinking
• Must for Data Scientists & Analysts: Brain Training for Analytical Thinking
10. 试图一次学习多个工具
我见过这个太多次了。由于每个工具都有其缺点和其独特的功能,人们倾向于尝试一次学习所有的工具。这是个坏主意,因为你最终掌握不了它们中的任何一个。工具只是实现数据科学的一种手段而不是最终目标!
如何避免这个问题?
选择一个工具并坚持下去,直到你掌握它为止。如果你已经开始学习 R,那么不要被 Python 诱惑。坚持使用 R,从入门到精通,然后尝试将另一种工具融入你的技能组合中,你可以通过这种方法学到更多。
每个工具都有一个出色的用户社区,你可以在遇到困难时使用。使用我们的论坛来提问,在线搜索,永不言弃。我们的目的是通过一个工具学习数据科学,而不是通过数据科学学习一个工具。
11. 不能坚持学习
这个问题适用于所有数据科学家而不仅仅是新手,那就是我们容易分心。我们学习一段时间(比如一个月),然后我们在接下来的两个月里停止了学习。在那之后试图接着之前的知识点继续学习,那将是一场噩梦。早先学过的概念基本忘光了,笔记也丢了,感觉就像我们最近几个月完全浪费了一样。
我个人也经历过这一点。由于总是需要同时处理各种事情,我们可以找借口和理由不学习。但这最终是我们自己的损失。如果数据科学就像打开教科书和塞满一切一样容易,那么到今天,每个人都能成为数据科学家。然而事实上它需要长期的努力和学习,这是人们容易忽视的一点,直到为时已晚。
如何避免这个问题?
为自己设定目标。绘制出时间表并贴在墙上:计划你想要学习的方式和内容,并为自己设定截止日期。例如,当我想学习神经网络时,我给了自己几周时间学习,然后在黑客马拉松比赛中测试了我学到的东西。
当你决定成为一名数据科学家,你就应该准备好投入时间和精力。如果你不断寻找不去学习的借口,这个领域可能并不适合你。
12. 远离讨论和竞赛
这一节是对我们上述其中几点的一个总结。渴望成功的数据科学家倾向于回避在社区中发布他们的分析,因为他们担心受到批评。但是如果你不收到社区的反馈,你就不会成长为数据科学家。
数据科学是一个需要讨论、思考和头脑风暴的领域。你不能坐在井底工作,你需要合作并理解其他数据科学家的观点。同样,人们不参加比赛是因为他们觉得自己不会赢,这显然是一种错误的心态!你参加这些比赛是为了学习而不是赢,赢是额外的奖励,而学习才是目标。
如何避免这个问题?
这很简单,开始参加讨论和比赛!没有进入前 5%是没什么问题的。如果你从整个过程中学到一个新技术,那么你就是靠自己赢得了胜利。
13. 不去提升沟通技巧
来源:Jim Harvey
沟通技巧是最容易被数据科学家低估和忽略的一项能力,我还没有遇到一个强调这一点的课程。你可以学到所有的最新技术,掌握多种工具并制作出最好看的图表,但如果你无法向客户解释你的分析结果,你不会成为一个出色的数据科学家。
不仅仅是客户,你还将与不熟悉数据科学的团队成员合作,IT、人力资源、财务、运营等。可以打包票的是在面试中,面试官会自始至终地观察你的沟通表达能力。
假设你使用逻辑回归构建了一个信用风险模型。作为一个练习,请花点时间思考一下你将如何向非技术人员解释你是如何得出最终结论的。如果你的解释中出现了任何一个技术词汇,那么你需要尽快行动起来,提高你的表达沟通能力了!
如何避免这个问题?
目前大多数数据科学家来自计算机科学背景,所以我理解这可能是一项令人生畏的技能。但要成为一名成功的数据科学家并取得职业提升,你别无选择,只能磨练自己的个性。
我认为最有用的一点是向非技术人员解释数据科学术语,它可以帮助我衡量我对问题阐述的清晰度。如果你在中小型公司工作,请在营销或销售部门找一个人并与他们一起做这个练习。从长远来看,它将会极大地帮助你。
互联网上有大量的免费资源可以帮助你入门数据科学,但请记住,练习是培养软技能的关键。确保你今天就开始行动起来。
结束语
这绝对不是一个详尽的清单,渴望成功的数据科学家往往还会犯很多其他的错误,但这些是我见过的最常犯的错误。如前所述,我的目标是希望帮助其他人尽可能多地避免这些提到的问题。
我很想听听你对本文内容的看法以及你对类似问题的个人经历。请使用下面的评论部分告诉我们!