坎德人的小包包

欧剃,游荡的坎德人,在他的旅途中收集了许许多多有趣的东西。

发表日期:2019-12-11

收藏!入门级数据科学面试必备指南

—— 在参加数据科学入门级面试之前,你必须首先了解一些常见的基础概念和主题

作者:Rashi Desai


如今,我们拥有了比以往更大的机会,去有效利用对数据的深刻理解。然而目前,业内并没有足够的专业技术人员,能帮我们理解掌握这一切。所以,如果你想要成为一名数据科学家,在接下来的10~15年里和数据为伍,这正是最好的时机。把握住这些工作机遇!

在参加数据科学入门级面试之前,你必须首先了解一些基础概念。今天,我们将对这些概念进行简要介绍。在这篇文章里将涉及到面试所需的一系列主题,需要具备的专业知识和一些额外干货:该主题下的常见面试真题。

传统上,数据科学的专业知识涉及编程、数学、计算机科学及机器学习等方面。下面我们就按照这一顺序,逐一进行。

千里之行始于足下,数据科学面临着无数机遇,而这就是我的数据科学新手指南:

1. 编程语言

Python 和 R 是目前数据科学领域中最热门的编程语言。然而,精通 C/C++ 和 Java 的实用知识也不会有什么坏处!

Python

大部分数据科学家都偷偷地爱着Python语言,这是因为Python拥有一些超棒的库,比如NumPy、SciPy、Pandas、StatsModel、Matplotlib、Seaborn、Plotly等,这让它更加易于使用。此外,用于机器学习的模组,比如Scikit-learn、TensorFlow、PyTorch等,也是你应当知晓的好东西。

R

对于R语言来说,ggplot就是你的神器!涉及到数据可视化的时候,R语言是非常容易理解的。对所有的数据分析师而言,当你需要了解数据可视化的时候,你都会希望是在用R语言。如果你选择了R语言作为数据可视化语言,类似ggplot、Latttice、 Highcharter、Plotly、Leaflet和dygraphs这些库在面试的时候都是很好用的——或者在你要解释如何在R语言中绘制热图的时候?

若干真题:

  1. 请说出可以使用哪些库在Python里实现逻辑回归?
  2. 如果有两个变量,x和y,你如何分析它们的依赖关系?
  3. 如何知道一个变量是不是独立变量?
  4. 请用Python写出一段代码,以查看某一数据集的头10条记录

2. 数学

现在数学可能并不是每个人的强项。但作为一名数据科学家,你需要在统计学、线性代数、概率和微积分方面有较好的表现。就是这样!

统计学

统计学是一个数学领域,通常用来分析和可视化数据,以便从数据中发现、推断并提出有用的见解。常见的可视化手段有箱形图、散点图、密度图、条形图、直方图等。然而,使用R语言能更容易地完成这类任务,因为你能方便地进行可视化、导出关系,而不是抓着计算器摁上120条记录,来求个平均值😏。

线性代数

线性代数主要用于机器学习和深度学习,以了解算法在后端的工作方式。基本上,这一切都和向量与矩阵运算有关,数据都通过矩阵和向量空间来表示。我不是那种喜欢在面试中问数学问题的人,但有些时候,你也得面对自己必须回答的问题。

微积分

微积分在机器学习(以及深度学习)中的主要作用是制定用于训练数据模型和算法的函数,以完成目标,计算目标函数/损失函数/代价函数,并推导出标量/向量关系。

概率

贝叶斯定理。作为一名数据科学家,你就算在梦里、闭着眼睛也得知道这个答案。然后就是一些随机变量和概率分布了。

我曾经遇到的一个面试题是,在纸上写出贝叶斯定理!

3. 数据库管理

对于需要年复一年日复一日地和数据打交道的数据科学家们来说,数据库知识是不可或缺的。数据科学家往往会选择两条不同道路之一:数学分析或是数据库管理。在未来某场噩梦般的面试中,你可能会被要求写出一个双重嵌套的SQL查询语句。😄

话虽然这么说,但为了准备面试,你还是得知道一些查询优化、关系数据库模式、数据库管理、评估成本和索引等知识。同时,SQL和非SQL系统的工作知识也是很有帮助的。

因为某些奇怪的原因,我在3次不同的面试中都被问到关于数据库索引的类似问题。

若干真题:

  1. 假设你有一个包含56000条市民记录的数据集,现在需要找出所有年龄(age)大于80岁的人,你要怎么写查询语句?
  2. DBMS的ACID特性是什么?(译注:DBMS是数据库管理系统Database Management System的缩写)
  3. 什么是关联查询(correlated query)?

4. 机器学习

对于新手数据科学家来说,了解机器学习是数据科学的一部分这件事,是一个起点。机器学习从统计和算法中汲取特性,以处理从多个来源生成或提取出来的数据。当你访问任何一个网站的时候,你都会生成数据;接着,数据被大量生成出来,以供之后进行处理。而这就是机器学习技术发挥作用的时候啦。

机器学习是系统排除人为偏差,自动学习并处理数据集的能力。它是通过构建复杂的算法和技术来实现的——例如回归、监督学习、聚类、朴素贝叶斯等等。

初学者应考虑的一些主题:

  1. 分类
  2. 回归
  3. 强化学习
  4. 深度学习
  5. 聚类
  6. 分割
  7. 推荐系统
  8. 维度建模

对上述主题的初步了解将有助于你开始熟悉这一领域。你可以总是想到一些使用机器学习算法的例子和应用。比如Netflix的推荐系统、垃圾邮件过滤、欺诈和风险识别、高级图像识别等等。

5. 基础定义

有的时候,即使最常见的基本概念也可能会发展成需要详细讨论的情况。在我到百事公司面试的时候,我被问及是否可以“通过数据来讲故事”。我认为这就意味着要将数据可视化以获得直观的结果,于是接下来的15分钟我都在聊关于数据可视化,比如基础概念、数据清洗、数据感知之类。

我建议你熟悉下列数据术语的确切含义,以便相关问题出现的时候,你就可以侃侃而谈啦!

1)数据分析

数据分析是一系列学习、探索、检查、转换和数据建模的过程,目标是从数据中发现有用的信息,提取有见地的结果。数据分析主要用在商业用途,因为它能让决策过程变得明智而快速,还能从视觉上直观地表现公司的形象。

2) 数据整理

数据整理的过程,是将数据从原始状态转换和映射为更方便处理的格式,目的是为了让数据更容易理解、更适宜,也更易于后续过程(比如数据分析)的进一步处理。

3)数据清洗

正像字面意思一样,数据清洗时,你将会进行以下操作:

  1. 去除出现的异常数据值(比如在工作经验年限一栏出现了大的异常的数字)
  2. 发现错误的数据类型(比如在性别一栏填了127)
  3. 修正记录集或数据库中填写错误或不准确的数字(#$@#% 修改成 34235)
  4. 补充数据中不完整、有误、不准确或者不相关的部分(比如缺失的性别信息)
  5. 替换、修改或删除干扰项或质量太低的数据

4)探索性数据分析

探索性数据分析(Exploratory Data Analysis,简称EDA)是一种将数据简化为较小的摘要变量集的尝试,其结果可以被用于:

  1. 最大化对数据集的理解
  2. 发现变量之间的潜在关系
  3. 导出可供数据可视化的重要变量
  4. 发现离群值和异常值(非常重要!)
  5. 测试潜在的假设
  6. 确定最优的模型构造

除了以上这些知识外,你还需要掌握工作所需的IDE(集成开发环境)和工具:

IDE

  1. PyCharm
  2. Jupyter
  3. Google CoLab
  4. Spyder
  5. R-Studio

工具

  1. Tableau
  2. PowerBI
  3. SAS
  4. Apache Spark
  5. MATLAB
  6. TensorFlow
  7. AWS
  8. Azure

或许你并不是非得掌握一切技术,但请确保你没有漏掉你掌握范围内的任何一点细节。入门水平的数据科学面试需要你拥有所有相关的知识。我建议要打好知识基础,专注于最基本的要点上。

从我的实践经验来说,在网上不要做一个小透明。去写博客、创建代码仓库、参与数据挑战活动和编程马拉松,为开源软件共享代码。有了一个与职位对口的个人作品集,加上你对工作的热情,以及你刚读完的这篇指南,我确定你一定会找到最好的工作!

感谢阅读!如果你喜欢这篇文章,请留言告诉我上面那些面试问题的答案!祝大家数据处理愉快!


关于作者

Rashi是一名研究生、数据分析师、用户体验分析师和顾问,还是一名技术发言人和博客作者!她希望组建一个组织,用丰富的资源将从事商业活动的女性联系起来,让她们无所畏惧,并对工作和世界充满热情。

(本文已投稿给「优达学城」。 原作: Rashi Desai 编译:欧剃 转载请保留此信息)

编译来源: https://towardsdatascience.com/a-beginners-guide-to-entry-level-data-science-interview-17eb3b431c81

标签:UdacityTranslateData-Science

Powered by Jekyll on Github.io
2022 © 欧剃