作者 | 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
你是否被统计学复杂的理论和晦涩的公式劝退过?别担心,“山有木兮:统计学极简入门(Python)” 将为你一一化解这些难题。课程 ...
2025-03-31在电商、零售、甚至内容付费业务中,你真的了解你的客户吗? 有些客户下了一两次单就消失了,有些人每个月都回购,有些人曾经是 ...
2025-03-31在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的需求持续飙升。世界经济论坛发布的《未来就业报告》, ...
2025-03-28你有没有遇到过这样的情况?流量进来了,转化率却不高,辛辛苦苦拉来的用户,最后大部分都悄无声息地离开了,这时候漏斗分析就非 ...
2025-03-27TensorFlow Datasets(TFDS)是一个用于下载、管理和预处理机器学习数据集的库。它提供了易于使用的API,允许用户从现有集合中 ...
2025-03-26"不谋全局者,不足谋一域。"在数据驱动的商业时代,战略级数据分析能力已成为职场核心竞争力。《CDA二级教材:商业策略数据分析 ...
2025-03-26当你在某宝刷到【猜你喜欢】时,当抖音精准推来你的梦中情猫时,当美团外卖弹窗刚好是你想吃的火锅店…… 恭喜你,你正在被用户 ...
2025-03-26当面试官问起随机森林时,他到底在考察什么? ""请解释随机森林的原理""——这是数据分析岗位面试中的经典问题。但你可能不知道 ...
2025-03-25在数字化浪潮席卷的当下,数据俨然成为企业的命脉,贯穿于业务运作的各个环节。从线上到线下,从平台的交易数据,到门店的运营 ...
2025-03-25在互联网和移动应用领域,DAU(日活跃用户数)是一个耳熟能详的指标。无论是产品经理、运营,还是数据分析师,DAU都是衡量产品 ...
2025-03-24ABtest做的好,产品优化效果差不了!可见ABtest在评估优化策略的效果方面地位还是很高的,那么如何在业务中应用ABtest? 结合企业 ...
2025-03-21在企业数据分析中,指标体系是至关重要的工具。不仅帮助企业统一数据标准、提升数据质量,还能为业务决策提供有力支持。本文将围 ...
2025-03-20解锁数据分析师高薪密码,CDA 脱产就业班助你逆袭! 在数字化浪潮中,数据驱动决策已成为企业发展的核心竞争力,数据分析人才的 ...
2025-03-19在 MySQL 数据库中,查询一张表但是不包含某个字段可以通过以下两种方法实现:使用 SELECT 子句以明确指定想要的字段,或者使 ...
2025-03-17在当今数字化时代,数据成为企业发展的关键驱动力,而用户画像作为数据分析的重要成果,改变了企业理解用户、开展业务的方式。无 ...
2025-03-172025年是智能体(AI Agent)的元年,大模型和智能体的发展比较迅猛。感觉年初的deepseek刚火没多久,这几天Manus又成为媒体头条 ...
2025-03-14以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-13以下的文章内容来源于刘静老师的专栏,如果您想阅读专栏《10大业务分析模型突破业务瓶颈》,点击下方链接 https://edu.cda.cn/go ...
2025-03-12以下的文章内容来源于柯家媛老师的专栏,如果您想阅读专栏《小白必备的数据思维课》,点击下方链接 https://edu.cda.cn/goods/sh ...
2025-03-11随着数字化转型的加速,企业积累了海量数据,如何从这些数据中挖掘有价值的信息,成为企业提升竞争力的关键。CDA认证考试体系应 ...
2025-03-10