我需要具备哪些技能才能成为数据科学家?以及如何展示它们?

数据挖掘 数据科学模型 职业
2021-09-24 22:35:09

我已经熟悉了推荐的最重要的概念(线性代数、分析、Phython、Numpy、Pandas、一些统计信息、线性回归)。对于最后两个,我不知道它应该有多深。我知道事情的含义以及如何让它们在 python 中工作。

但问题是现在呢?我想我可以争辩说这是一个起点,如果我学习了画面并很好地展示自己,我可以申请一个糟糕的数据分析或可视化职位。但是我会做些什么来证明我在面试前能做些什么呢?将笔记本放在 github 上,我在其中导入了一个数据集,对其进行了一些清理,做了一个 .desribe()、.plot() 和线性回归,这对任何人来说都不是很令人印象深刻,也不是很有趣。那么我该怎么做呢?

此外,这显然还不是数据科学领域。如果我查看 kaggle 挑战,我要么不知道该做什么,要么对自己想“清洁数据,LinRegression”。那么接下来我应该看什么?

请注意,我现在正在上课,但不是在数据科学,而是在化学。

3个回答

所以你仍然在基础上,威廉的答案很好,我会在这里列出一些要学习的东西,以及在哪里学习。

1 - 您需要基础知识,这已经比您预期的要多得多:

  • 线性代数:了解矩阵求逆的最佳方法可能对计算机科学家有用,但您的目标并非如此。您需要了解概念及其含义和影响,例如:
    • 矩阵等级(例如,这可以通过自相关矩阵告诉您,您的数据对于最小二乘之类的事情仍然不够。)
    • 向量空间和基本线性变换的含义,例如基数变化
    • 特征值和特征向量的含义
  • 微积分:还有,注重意义和理解,计算机可以做大部分运算,甚至分析
    • 导数和积分
    • 优化
  • 信号和系统:这可能对我有点偏见(因为我是一名信号处理研究人员),但是,学习如何对某些现象进行建模以及它们的行为可能会帮助您解决问题,这基本上是应用线性代数和微积分(大多数事情是)。以真正基础为目标,信号处理是受数据科学/机器学习影响最大的研究领域之一,以至于人们正在进行调查以更改 IEEE 社区的名称。

以上内容可以在很多很多书籍和介绍中找到,搜索它们并不难。

  • 统计:机器学习源于统计,这是必不可少的。实际上,您可以从统计的角度而不是函数优化来学习微积分。主题名称中的链接是 Udacity 或 Udemy 的免费课程

重要的是要了解如何使用经典统计数据来避免将计算机浪费在可以轻松解决的问题上。以尽可能简单的方式对事物进行建模并在需要时升级为更复杂的模型是一种很好的做法。

  • 机器学习:机器学习模型是您作为数据科学家的日常工具:

  • 机器学习任务列表:你停在线性回归?所以这里有最流行的模型等着你:

    • 线性和逻辑回归:非常基础
    • 决策树:基本但高度可解释
    • 支持向量机:简单但功能强大(我喜欢内核方法,为此开枪)
    • 朴素贝叶斯
    • k 最近邻
    • K-Means 聚类
    • Random Forests and Gradient Boosting (Ensembles):这些真的很强大,如果你不让它们随意生长,它们可能是可以解释的

此外,您可能需要一些降维工具,例如:

  • 主成分分析
  • 线性判别分析

然后你可以去更复杂的神经网络:

  • 自组织地图、前馈、RNN、CNN 等等……

注意:CNN 在计算机视觉应用程序中很常见,但它对数据的唯一要求是它的组织方式允许彼此靠近的数据之间存在有意义的相关性。示例:在时间序列中具有多个传感器的过程可能会受益于 CNN。

  • 数据分析:数据科学家必须与数据有个人关系。对于任何良好的关系,您都需要了解您所爱的人(但与数据的关系通常是有毒的,哈哈哈)。Udacity 有一个不错的 Intro to Data Analysis,也是免费的。

  • 学会表达自己

    • 创建一个 youtube 频道,向社区展示小型教程和课程。
    • 尝试回答 Stack Exchange 问题并帮助他人,这将在您提出问题时建立您在社区中的尊重和善意。此外,这是练习在文本中表达想法的好方法。
    • 写博客,是拥有笔记本的好方法,也是获得社区关注的好方法。
  • 您可以查看实践书籍,例如 Data Smart 和 Data Science from Scratch。Data Smart 是关于从信息中获得洞察力,而这主要是你作为 D 科学家的工作。

2 - 建立尊重

  • 尝试创建包和库并在 GitHub 上提供它们并分享您的相关解决方案。
  • 赢得 Kaggle 比赛,许多公司都认真对待 Kaggle ......并且获得好成绩会让你获得好职位。顺便说一句,你不需要赢得第一名。此外,竞赛通常是现实世界问题的好例子,可以让你获得在没有数据科学家角色时无法获得的所需经验。
  • 此外,一些比赛的报酬非常高。
  • 探索 Kaggle,分享算法,阅读并尝试改进他人,并搜索您可能感兴趣的数据集。
  • 制作数据集有点详尽,但可能是在您还没有准备好时赚钱的一种方式。

3 - 获得编程技能

不仅要学习框架,还要了解事物的工作原理和解决问题的基础知识,每天都必须接受测试。此外,从头开始制作一切都很有趣,并且有利于学习,但是当你做你的工作时,你将需要高度成熟的代码,在世界各地检查了数百次。

你需要一些工具,Python是一门很棒的数据科学语言(因为社区很活跃,而且它是免费的,Matlab 有很多不错的工具和精彩的文档,但它真的很贵而且有点慢)

  • 一些顶级库:

    • NumPy是最基础的包,好好理解
    • 与数据争吵的熊猫
    • Seaborn、Bokeh、Plotly 和 Matplotlib 用于绘制内容并帮助您制作好报告
    • SciKit-Learn 这通常是测试机器学习算法的最快方法
    • Theano 类似于 NumPy,但在构建时考虑了机器学习
    • Keras,这是一个用于快速构建神经网络的库,它使用 Theano 或 TensorFlow 作为后端
    • TensorFlow、PyTorch 和其他与深度学习相关的东西。
  • 此外,您可能想了解一些 JavaScript 和用于在 Web 上获取数据的库的知识。

4 - 更深入

  • 你可能永远不需要深度学习,这取决于你要应用的领域,但这是你希望永远不必使用的好核武器,但有一天你可能会:

另外,请记住 DL 是计算密集型的,您希望避免需要它(因为这些很昂贵)

5 - 最后:职业生涯

  • 学习永远不会停止,你也永远不会停止学习新概念,每一天。
  • 课程很长,请按照自己的节奏进行。尝试获得学习如何使用的基础知识,然后返回并真正学习它
  • 尝试获取一些证书并将其发布在您的 LinkedIn 上。在您的博客、LinkedIn 和 Kaggle 上创建一些项目并创建在线文章。
  • 在找工作的时候,试着选择一些你可以与之相关的东西。DS 涵盖了广泛的主题,尝试从您理解的事物中获得洞察力比尝试从听起来像随机噪音的事物中获得洞察力更容易
  • 建立合作者网络,帮助您的同事并尝试建立从医学到语言学的庞大网络,他们可能会在查看与您的专业领域无关的数据时告诉您您做错了什么。

  • 最后,这比我预期的要长一点,但是:不要放弃。这是一段漫长的旅程,但无论是在经济上还是个人上,都是荒谬的回报。并尝试不要单独工作,创建一小群人一起工作并制作一些项目。

  • 这是我对 Stack Exchange 问题最长的回答。

我可以看到您对数据科学感兴趣,但不知道未来会发生什么。这里没有错!你的兴趣才是最重要的。

有趣的是,您自学了那些库和线性回归。

但这些还不够。这些库只是处理数据的一种方式,线性回归是非常基础的。在现实世界的场景中并没有那么流行的模型。

基本型号

  • 线性回归
  • 逻辑回归
  • 支持向量机
  • 神经网络
  • 决策树,随机森林。

至于线性回归和逻辑回归,我建议你从头开始实现它们,我相信这是深入学习这些概念的最佳方式。

我建议您从有关机器学习的 Andrew NG 视频开始(链接如下)

https://www.youtube.com/playlist?list=PLLssT5z_DsK-h9vYZkQkYNWcItqhlRJLN

尝试在练习出现时实施这些。更好的是,您可以在 coursera 中学习他的机器学习课程。这将清除您的基础知识。(下方链接)

https://www.coursera.org/learn/machine-learning

此外,我在学习过程中为像您这样的初学者创建了一个存储库。随时查看(下面的链接)

https://github.com/williamscott701/Machine-Learning

希望这可以帮助 ;)

继续开火。

到目前为止,你有一个坚实的基础。但问题是现在呢?好吧,如果您按照您的建议非常熟悉 Numpy,您可以将这些知识转移到 TensorflowJS。

你可以做我在机器学习阵营中所做的事情,学习以下概念:

  • 特征与标签
  • 测试数据与训练数据
  • 特征归一化
  • 通用数据结构(数组的数组)
  • 特征选择

并确保您真正擅长它们,因为您将反复看到这些概念。