本周的“数据科学家问答”专栏回答了来自学生的两个简短问题。请将您与数据科学相关的困惑通过电子邮件发送至 mailto:[email protected]。请注意,问题会经过编辑以确保清晰和简洁。之前的文章包括
问题1: 我拥有航空航天工程的学士和硕士学位,并且已被今年夏天的一个数据科学训练营录取。我每周花15小时在麻省理工学院的6.041 edx.org概率课程上,这是我上过的最难的数学课。我觉得我的时间可以花在其他地方。工作时按需自学概念怎么样?或者你能推荐一些特定的概率领域来专注吗?我想做个个人项目(处理健身追踪器数据或比特币),并可能暂时搁置概率学习。
回答: 听起来你已经知道这个问题的答案了:是的!你的时间可以花在其他地方。
让你的编程项目驱动你所做的事情,并按需学习数学。这样做有3个原因
- 对大多数人来说,最好的动力将是让你正在处理的问题激发你的学习。
- 检验你是否真正理解某事的真正标准是你能否使用它并用它来构建东西。因此,你正在进行的项目对于巩固你的理解是必要的。
- 通过按需学习,你只学习你真正需要的东西,而不会浪费时间在最终可能无关紧要的主题上。
唯一的例外是:如果你想成为一名数学教授或在智库工作(在我攻读数学博士的大部分时间里,我的目标是成为一名数学教授,所以我理解其吸引力,但当时我完全不知道有这么多很棒且令人兴奋的工作是需要用到数学的)。有时你需要为白板面试复习数学知识。
问题2: 我目前正在攻读数据科学硕士学位。我的编程水平不是很高,对大多数机器学习和统计概念都很陌生。数据科学是一个非常广阔的领域,所以我的大多数朋友都建议我专注于某个特定分支。现在我什么都尝试,结果是 样样通,样样不精。我该如何着手找到一个专长呢?
回答: 在数据科学领域做个“万金油”并没有错;从某些方面来说,这就是数据科学家的意义所在。只要你将绝大部分时间花在为实际项目编写代码上,你就走在正确的道路上。
我认为有抱负的数据科学家应该重点关注的几件事
- 专注于Python(包括Numpy、Pandas和Jupyter notebooks)。
- 尽量专注于1个主要项目。扩展你在课堂上做过的事情。如果你主要是在各种领域做零散的习题集,这可能会很困难。对于自学者来说,其中一个风险是跳来跳去太多,在各种网站上开始零散的教程,但没有对任何一个深入学习。选择1个Kaggle竞赛、个人项目或学校项目的延伸,并坚持下去。我记得有几次,我在课程结束后继续扩展了一个课堂项目好几个月,因为我全身心投入其中。这是一个很好的学习方法。
- 从结构化数据集上的决策树集成方法(随机森林和梯度提升机)开始。我对这个话题有着非常矛盾的感觉。虽然可以使用Python的sklearn库实现这些方法,但我认为R在处理结构化数据集和分类变量方面仍然做得更好。然而,如果你只打算掌握一种语言,我认为Python是显而易见的选择,而且大多数人无法同时专注于学习两种新语言。
- 然后使用Python库 Keras 转到深度学习。引用吴恩达的话,深度学习是 “新的电力”,是一个非常令人兴奋、影响深远的工作领域。
在技巧方面,有些东西你可以跳过,因为它们在实践中并未广泛使用,例如支持向量机/核方法、贝叶斯方法和理论数学(除非你正在处理的实际项目明确需要它)。
注意,这个回答是针对数据科学家的,而不是数据工程师。数据工程师负责将算法投入生产,并且需要一套不同的技能,例如Spark和HDFS。