哪些课程/科目对数据科学领域最重要?

数据挖掘 自习
2021-09-16 17:32:56

我已经承担起开始职业转变的责任。我有良好的数学背景,但缺乏编程或数据科学特定技能(例如数据处理)。我一直在浏览数据科学课程,并且已经对适当的数据科学课程所包含的科目数量感到不知所措。仅举几例:自然语言处理、机器学习、R、Python、SQL、NoSQL、概率、统计、数值方法、算法等等。

我不能回到学校,但如果我的目标是进入数据科学,我应该把注意力集中在哪些科目上

我完全理解“数据科学”是一个非常大的领域,但肯定有几个主题对所有这些子领域(如果不是绝大多数)都很重要。我想这基本上就是我的问题所要问的。我还没有获得足够的曝光量来确定我想专攻什么,所以在这一点上,我关心的是获得一个不会限制我进入任何特定子领域的基础,或者换句话说,学习使所有子领域受益的科目。

注意:与其他科目相比,数学对我来说并不是那么重要。

4个回答

最有用(也是最有趣)的答案可能是由出色的Swami Chandrasekaran提供的……以地铁地图的形式:

在此处输入图像描述

我只想对此添加一条评论:学校(或为学习而学习)提供的体验与解决实际问题所提供的体验不同。因此,要学习,找到可以解决的实际问题。为了保持动力,让他们成为你真正关心的问题。Kaggle 比赛是一个很好的起点。即使重现一个成功的解决方案(可能有一些变化,或者在一个新的数据集上)也将是一个巨大的学习体验。

“数据科学”这个词的定义不是很好,人们用它来表达不同的意思。对某些人来说,这可能意味着在分布式系统上处理庞大的数据集,对某些人来说,这基本上是数据分析,对某些人来说,它正在使用稀疏矩阵编写预测模型(这就是我)。因此,你应该接近你感兴趣的东西。你不必知道一切。

通常,数据科学是两个领域的组合:计算机科学和统计学。对两者的基本了解至关重要。

我和你一样,自己承担起改变职业道路进入不断发展的数据科学领域的责任。作为背景知识,我在一个神经科学研究实验室工作,研究等位基因变异对阿尔茨海默病和创伤后应激障碍啮齿动物模型中蛋白质转运的影响。我是一个称职的 R、bash 和 Matlab 黑客,并且懂一点 C 和 Java。当我开始申请神经科学博士课程时,我改变了主意。

在接下来的一年里,我参加了一些研究生级别的统计课程,并恢复了我的一些编程技能。去年,我为 CS 开设了一个 MS 课程,目的是 1) 获得一份行业数据科学家的工作 2) 学习如何从算法/数学上思考数据 3) 真正提高我的基本 CS 技能 4) 在过程。

我不会列出有帮助的具体课程,但对我来说主要的获奖主题是:

  • 算法

    • 两种基本算法
      • 复杂性分析、排序和搜索、图算法、动态规划、随机算法等。Tim Roughgarden有一个很好的课程。
    • 数据挖掘/海量数据集/流算法
      • 局部敏感散列、草图算法、kd/ball 树、水库采样、滑动窗口方法等。
  • 数据库/数据流:

    • noSQL、SQL、hadoop 等。使用它们会迫使您开始意识到您将使用的大多数数据绝对不适合内存,并且需要独特的方法来不仅从中提取信息,而且只是为了使用它并检查它。通过构建网络爬虫或数据收集器来填充数据库(或者您想要的其他任何内容......),了解如何使用它
  • 机器学习

    • 学习该领域的基本方法,例如基于树的方法、优化、神经网络、支持向量机、回归、马尔可夫链、图形方法、集成方法、过拟合、正则化、聚类、k-means、knn 等。如上所述,Andrew Ng 的 coursera 课程可能是最好的开源解决方案。
    • 编辑:如果你用真实版本的东西(讲座笔记)补充它,Coursera 课程就很好我认为 coursera 课程有点轻,是对 ML 主题的一个很好的概述,但对这些主题的机制还不够深入。Tom Mitchell 的也是一个很好的资源。
  • 数据可视化

    • 没有什么特别花哨的东西是完全必要的,但是知道如何可视化多维数据是非常有用的。学习一个好的绘图包,也许可以尝试其他技术,如 D3.js 或映射可视化。如果你在这方面做得很好,你可能会永远拥有一份出色的工作。
  • “真实世界”体验

    • 我在一家从事数据科学的大型网络公司的三个月内学到的知识,与我在过去 1.5 年的研究生学习和自学中学到的一样多。这可以通过参加 Kaggle 比赛等来近似,但老实说,野外数据Kaggle 上的大多数数据更难处理(请注意,微软恶意软件检测项目或一些计算机视觉项目是对于学习处理也相当“大”的凌乱数据更有用)。

请注意,我没有提到诸如“学习 R 它是最好的”或“学习 python 它比 R 更好”之类的东西。在我的大部分工作和当前研究中,我使用 Python、C、MySQL、MongoDB 和 R(尽管这些天我真的更喜欢 Python 生态系统)。我确信这在未来会有所改变。

这有点超出了你的问题,但作为一名行业数据科学家,最关键的事情可能是能够以一种几乎不受监督的方式工作,并将结果/方法清楚地传达给非专家团队。拥有科学研究背景有助于解决此问题,因为您试图回答的问题很困难,通常是非结构化的,并且通常处于您所在领域知识边缘的边缘。我的朋友、熟人和过去在工业界担任数据科学家的同事几乎都是拥有硕士或博士学位并至少发表过一些出版物的前学术人员。我绝对不相信这是一个严格的要求,如果我在招聘职位上,我绝不会因为某人没有高级学位而选择过滤掉他们,

请记住,所有这一切都来自于一个不知从何而来的家伙,他们没有直接在该领域工作那么久,但他们的过渡似乎进展顺利。

在学习新技能时,我总是倾向于“边学习边做”的原则。我完全根据我的经验来写这篇文章,这帮助我解决了 Kaggle 问题并完成了我现在正在做的事情。

所以,这大致就是你的做法,以及你需要参加的课程:

  1. Introduction to Machine Learning - 最好的学习课程是 Andrew Ng 的 coursera 课程。您不需要完成硬件等。它是自定进度和存档的。因此,只需观看课程,并完成作业以获得实践知识。我什至尝试在 Octave 和 Python 中做同样的作业。完成本课程还可以帮助您解决 Kaggle 问题。
  2. 探索性分析——在每个数据科学问题中,进行初步清理和探索性分析都非常重要。因此,学习这些方法将有助于学习可视化、探索性技术等。这个Coursera 课程是一个不错的课程。
  3. 数据库- 数据并不总是像在线课程中那样以整洁的 tsv 或 csv 格式提供。需要学习处理存储在数据库中的数据。它们可能是基于 SQL 的,也可能是 NoSQL,它们可能是基于行的或列的。因此,这是一门很好的课程,可以帮助您了解如何处理数据库。
  4. 算法- 基本数据结构和算法的知识足以解决大多数 Kaggle 和现实世界的数据问题(不过,连同上面提到的所有问题)。所以,给自己一个不错的介绍。到算法书。

因此,上述所有内容对于理解和解决数据科学问题都是必不可少的。其他的都只是对这些概念的改进,包括 NLP、深度学习等。

所以,让这些基础很好,这样你就可以在这些基础上进行构建,熟悉和测试更深层次的概念,如神经网络、NLP 等。

最后,掌握大数据和分布式算法和概念的诀窍总是有用的。Coursera 课程是学习并行计算概念和处理海量数据的完美起点。