作者 | William Koehrsen
翻译 | Mika
本文为 CDA 数据分析师原创作品,转载需授权
如果现代工作面试教会了我们什么,那就是关于“你最大的弱点是什么?”这个问题,正确答案是“我工作太努力了。”显然,说出自己的弱点是很可笑的。虽然在个人简历中列出弱点不太好,但是如果不承认自己的不足,我们就无法采取措施改善它们。
做出改进的方法很简单:
明确现在的位置:找出弱点
想变成什么样:制定实现的计划
执行计划:一步步改进
我们很少能跨越第一步,特别是对于在技术领域工作的人群。我们埋头苦干,不断工作,使用已掌握的技能,而不是获得哪些能让我们工作更轻松或能带来新机会的新技能。自我反省,客观地评估自己,这似乎是一个陌生的概念。但若能够退后一步,弄清我们哪些方面能做得更好,从而在该领域取得进步,这是至关重要的。
考虑到这一点,我试着客观地评价自己,并总结了目前自己的三个弱点,改善以下这几点能让我成为更好的数据科学家:
软件工程
扩展数据科学
本文中我列出这些弱点主要的目的在于:首先,我非常想提高自己的能力,通过列出自己的不足以及如何解决它们,希望能够激励自己继续学习,完成目标。
其次,我希望鼓励其他人思考自己有哪些没掌握的技能,以及该如何获取这些技能。
最后,我想告诉你,成为出色的数据科学并不需要做到无所不知。关于数据科学和机器学习的知识是无线的,你能够掌握的是有限的。我常常听到初学者抱怨,要掌握的知识太多了,我给出的建议就是:从基础开始,你并不需要掌握所有内容。
只有极少的数据科学家能够掌握全部知识
对于每个弱点,我都列出了具体的问题,以及我目前在做什么进行改进。发现自己的不足很重要,但制定改进计划也同样重要。学习一项新技能需要时间,但计划好一步步的具体步骤会大大增加你成功的几率。
1. 软件工程
在大学时进行我的第一个数据科学项目后,我开始试着避免一些数据科学方法中的坏习惯。其中包括编写仅运行一次的代码,缺少文档,没有一致性且难阅读的代码,硬编码特定值等。这些都是写论文所带来的,为了写一篇论文,开发针对特定数据集且只能运行一次的解决方案。
其中一个典型的例子是,我们有个项目使用建筑能源数据,最初每隔15分钟获取一次数据。当我们把时间增加为20分钟时,数据管道完全崩溃了,因为许多地方已明确将时间编为15分钟。我们不能进行简单的查找和替换,因为该参数被设定为多个名称,如`electricity_interval` `timeBetweenMeasurements`还有`dataFreq`。我们当中没有人想过让代码更易阅读或能够灵活改变输入。
相比之下,从软件工程的角度来看,代码必须使用大量不同的输入进行测试,在现有框架内工作,并遵守编程标准,以便其他开发人员能够理解。尽管我的初衷是好的,但我偶尔会像数据科学家那样写代码,而不是像软件工程师那样。现在我正在训练自己像计算机科学家一样思考。
我在做什么
学习技能没有比练习更好的方法。幸运的是,在我目前的工作中,我能够为内部工具和开源库(Featuretools)做出贡献。这迫使我学习了很多技能,包括:
编写单元测试
遵循编码风格
编写接受更改参数的函数
彻底记录代码
让他人检查代码
重构代码,使其更简单、更易于阅读
对于还未工作的数据科学家,你也可以通过参与开源项目获得这些经验。除此之外,你还可以通过查看GitHub上流行库的源代码。
像软件工程师一样思考需要改变思维模式,但做到这一点并不难。例如,每当我发现自己在Jupyter Notebook中复制和粘贴代码并更改一些值时,我就会停下来,并意识到从长远的角度看用函数会更高效。
总有需要改进的地方(在Sublime Text 3中使用pylint)
我还想研究计算机科学的许多其他方面,例如编写有效的实现,而不是用蛮力方法(例如使用矢量化而不是循环)。同时要注意想一下子全部改变是不显示的,这也是我为什么专注于一些实践,并将其融入到我的工作流程中。
虽然数据科学自成一体,但从业者仍可以通过借鉴软件工程等领域的最佳实践从中受益。
2. 扩展数据科学
虽然你可以自学数据科学中的所有内容,但要将其应用到实践中还是存在一些限制。一个是难以将分析或预测模型扩展到大型数据集。我们中大多数人无法访问计算集群,也不想为一台个人超级计算机掏钱。这意味着当我们学习新方法时,我们倾向于将它们应用于小型且表现良好的数据集。
然而在现实情况中,数据集并不符合一定的大小或干净程度,你需要用不同的方法来解决问题。首先,你可能需要打破个人计算机的安全限制,使用远程实例(例如通过AWS EC2)甚至多台计算机。
在学习数据科学时,我尝试在EC2机器上练习,这有助于让我熟悉命令行,但是,我仍然没有解决当数据集大于机器的内存情况。最近,我意识到这一点限制了我的前进,是时候学习如何处理更大数据集的了。
我在做什么
即使不在计算资源上花费大量金钱,就可以实践超出内存限制的数据集的处理方法。其中包括每次迭代数据集的一部分,将大型数据集分成较小的数据集,或者使用Dask这样的工具来处理大数据。
我目前采用的方法是将数据集分为多个子集,开发能够处理每个部分的管道,然后使用Dask或Spark,与PySpark并行地运行管道中的子集。这种方法不需要用到超级计算机或集群,你可以在个人计算机上并行操作。
此外,由于像Kaggle等数据存储库,我能够找到一些大型的数据集,并查看其他数据科学家的处理它们的方法。我已经学到了很多有用的技巧,例如通过更改数据框中的数据类型来减少内存消耗。这些方法有助于更有效地处理任何大小的数据集。
虽然我还没处理过TB级的数据集,但这些方法帮助我学习了处理大数据的基本方法。对于最近的一些项目,我能够运用目前学到的技能对在AWS上运行的集群进行分析。希望在之后的几个月,我能逐步提高处理数据集的大小。
美国国会图书馆“只有”3PB的材料
3. 深度学习
虽然人工智能在繁荣和萧条中更迭,但是它最近在计算机视觉、自然语言处理、深度强化学习等领域的成功应用让我确信基于神经网络的深度学习不是昙花一现。
与软件工程或扩展数据科学不同,我目前的职位不需要用到深度学习,例如随机森林等传统的机器学习技术已经能够解决所有问题。但是,我认识到并非每个数据集都是结构整齐的,而神经网络是目前处理文本或图像项目的最佳选择。
探索和利用的权衡在强化学习和你的生活中的应用
在深度学习中有许多不同的子领域,很难弄清楚哪些方法最终会胜出。尽管如此,我认为熟悉该领域能够让人们能够处理更广泛的问题。
我在做什么
我学习深度学习的方法与成为数据科学家的方法相同:
阅读着重部署应用的书籍和教程
在实际项目中练习技术和方法
通过写作分享和解释我的项目
在学习一项技术时,最有效的方法是边做边学。对我来说,这意味着不是从基础的基础理论开始,而是通过找出如何实现解决问题的方法。这种自上而下的方法意味着我更重视关于动手的书籍,即当中包括许多代码例子。
对于深度学习,我主要看了以下三本书:
Deep Learning Cookbook,作者:Douwe Osinga
Deep Learning with Python,作者: Francois Chollet
Deep Learning,作者:Ian Goodfellow、Yoshua Bengio、Aaron Courville
前两本重点是用神经网络构建实际解决方案,而第三本重点是深入理论。当阅读有关技术主题的书籍时,你需要更主动参与其中,尽可能试着书中的代码。像前两本提供代码例子的书籍很棒,我经常会在Jupyter Notebook中逐行输入代码,弄清当中的原理。
此外,我不仅试着复制这些代码,还会将它们用于自己的项目。这方面的一个应用是我最近构建的图书推荐系统,该系统是根据Deep Learning Cookbook的类似代码改编的。从头开始创建自己的项目可能会令人生畏,但这也是提升自己最好的方法。
最后,学习技术最有效方法之一是教别人。只有当我试着用简单的术语向其他人解释时,我才能我完全理解这个概念。随着学习深度学习的每个知识,我将写下了,分享当中的技术实现细节和概念性解释。
教学是最好的学习方式之一,我打算将其作为学习深度学习的一个重要组成部分。
结语
罗列自己的弱点可能会有点奇怪,但这能让我成为更好的数据科学家。而且,我发现很多人,包括雇主们,会对你坦诚自己的弱点并探讨如何解决它们留下深刻印象。
缺乏某些技能并不是缺点——真正的缺点是假装你什么都懂,而且没有想改进的意思。
通过发现我在数据科学方面的弱点:软件工程,扩展分析/建模,深度学习,我的目标是提高自己,鼓励其他人思考自己的弱点。要成为成功的数据科学家,你并不需要什么都懂。虽然反思自己的弱点可能是痛苦的,但学习是愉快的:最有成就感的事情莫过于,经过一段时间的持续学习后,你会发现自己比刚开始时已经懂了很多。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
数据分析在当今信息时代发挥着重要作用。单因素方差分析(One-Way ANOVA)是一种关键的统计方法,用于比较三个或更多独立样本组 ...
2025-04-25CDA持证人简介: 居瑜 ,CDA一级持证人国企财务经理,13年财务管理运营经验,在数据分析就业和实践经验方面有着丰富的积累和经 ...
2025-04-25在当今数字化时代,数据分析师的重要性与日俱增。但许多人在踏上这条职业道路时,往往充满疑惑: 如何成为一名数据分析师?成为 ...
2025-04-24以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《刘静:10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda ...
2025-04-23大咖简介: 刘凯,CDA大咖汇特邀讲师,DAMA中国分会理事,香港金管局特聘数据管理专家,拥有丰富的行业经验。本文将从数据要素 ...
2025-04-22CDA持证人简介 刘伟,美国 NAU 大学计算机信息技术硕士, CDA数据分析师三级持证人,现任职于江苏宝应农商银行数据治理岗。 学 ...
2025-04-21持证人简介:贺渲雯 ,CDA 数据分析师一级持证人,互联网行业数据分析师 今天我将为大家带来一个关于用户私域用户质量数据分析 ...
2025-04-18一、CDA持证人介绍 在数字化浪潮席卷商业领域的当下,数据分析已成为企业发展的关键驱动力。为助力大家深入了解数据分析在电商行 ...
2025-04-17CDA持证人简介:居瑜 ,CDA一级持证人,国企财务经理,13年财务管理运营经验,在数据分析实践方面积累了丰富的行业经验。 一、 ...
2025-04-16持证人简介: CDA持证人刘凌峰,CDA L1持证人,微软认证讲师(MCT)金山办公最有价值专家(KVP),工信部高级项目管理师,拥有 ...
2025-04-15持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。在实际生活中,我们可能会 ...
2025-04-14在 Python 编程学习与实践中,Anaconda 是一款极为重要的工具。它作为一个开源的 Python 发行版本,集成了众多常用的科学计算库 ...
2025-04-14随着大数据时代的深入发展,数据运营成为企业不可或缺的岗位之一。这个职位的核心是通过收集、整理和分析数据,帮助企业做出科 ...
2025-04-11持证人简介:CDA持证人黄葛英,ICF国际教练联盟认证教练,前字节跳动销售主管,拥有丰富的行业经验。 本次分享我将以教培行业为 ...
2025-04-11近日《2025中国城市长租市场发展蓝皮书》(下称《蓝皮书》)正式发布。《蓝皮书》指出,当前我国城市住房正经历从“增量扩张”向 ...
2025-04-10在数字化时代的浪潮中,数据已经成为企业决策和运营的核心。每一位客户,每一次交易,都承载着丰富的信息和价值。 如何在海量客 ...
2025-04-09数据是数字化的基础。随着工业4.0的推进,企业生产运作过程中的在线数据变得更加丰富;而互联网、新零售等C端应用的丰富多彩,产 ...
2025-04-094月7日,美国关税政策对全球金融市场的冲击仍在肆虐,周一亚市早盘,美股股指、原油期货、加密货币、贵金属等资产齐齐重挫,市场 ...
2025-04-08背景 3月26日,科技圈迎来一则重磅消息,苹果公司宣布向浙江大学捐赠 3000 万元人民币,用于支持编程教育。 这一举措并非偶然, ...
2025-04-07在当今数据驱动的时代,数据分析能力备受青睐,数据分析能力频繁出现在岗位需求的描述中,不分岗位的任职要求中,会特意标出“熟 ...
2025-04-03