发表日期: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语言中绘制热图的时候?
若干真题:
- 请说出可以使用哪些库在Python里实现逻辑回归?
- 如果有两个变量,x和y,你如何分析它们的依赖关系?
- 如何知道一个变量是不是独立变量?
- 请用Python写出一段代码,以查看某一数据集的头10条记录
2. 数学
现在数学可能并不是每个人的强项。但作为一名数据科学家,你需要在统计学、线性代数、概率和微积分方面有较好的表现。就是这样!
统计学
统计学是一个数学领域,通常用来分析和可视化数据,以便从数据中发现、推断并提出有用的见解。常见的可视化手段有箱形图、散点图、密度图、条形图、直方图等。然而,使用R语言能更容易地完成这类任务,因为你能方便地进行可视化、导出关系,而不是抓着计算器摁上120条记录,来求个平均值😏。
线性代数
线性代数主要用于机器学习和深度学习,以了解算法在后端的工作方式。基本上,这一切都和向量与矩阵运算有关,数据都通过矩阵和向量空间来表示。我不是那种喜欢在面试中问数学问题的人,但有些时候,你也得面对自己必须回答的问题。
微积分
微积分在机器学习(以及深度学习)中的主要作用是制定用于训练数据模型和算法的函数,以完成目标,计算目标函数/损失函数/代价函数,并推导出标量/向量关系。
概率
贝叶斯定理。作为一名数据科学家,你就算在梦里、闭着眼睛也得知道这个答案。然后就是一些随机变量和概率分布了。
我曾经遇到的一个面试题是,在纸上写出贝叶斯定理!
3. 数据库管理
对于需要年复一年日复一日地和数据打交道的数据科学家们来说,数据库知识是不可或缺的。数据科学家往往会选择两条不同道路之一:数学分析或是数据库管理。在未来某场噩梦般的面试中,你可能会被要求写出一个双重嵌套的SQL查询语句。😄
话虽然这么说,但为了准备面试,你还是得知道一些查询优化、关系数据库模式、数据库管理、评估成本和索引等知识。同时,SQL和非SQL系统的工作知识也是很有帮助的。
因为某些奇怪的原因,我在3次不同的面试中都被问到关于数据库索引的类似问题。
若干真题:
- 假设你有一个包含56000条市民记录的数据集,现在需要找出所有年龄(age)大于80岁的人,你要怎么写查询语句?
- DBMS的ACID特性是什么?(译注:DBMS是数据库管理系统Database Management System的缩写)
- 什么是关联查询(correlated query)?
4. 机器学习
对于新手数据科学家来说,了解机器学习是数据科学的一部分这件事,是一个起点。机器学习从统计和算法中汲取特性,以处理从多个来源生成或提取出来的数据。当你访问任何一个网站的时候,你都会生成数据;接着,数据被大量生成出来,以供之后进行处理。而这就是机器学习技术发挥作用的时候啦。
机器学习是系统排除人为偏差,自动学习并处理数据集的能力。它是通过构建复杂的算法和技术来实现的——例如回归、监督学习、聚类、朴素贝叶斯等等。
初学者应考虑的一些主题:
- 分类
- 回归
- 强化学习
- 深度学习
- 聚类
- 分割
- 推荐系统
- 维度建模
对上述主题的初步了解将有助于你开始熟悉这一领域。你可以总是想到一些使用机器学习算法的例子和应用。比如Netflix的推荐系统、垃圾邮件过滤、欺诈和风险识别、高级图像识别等等。
5. 基础定义
有的时候,即使最常见的基本概念也可能会发展成需要详细讨论的情况。在我到百事公司面试的时候,我被问及是否可以“通过数据来讲故事”。我认为这就意味着要将数据可视化以获得直观的结果,于是接下来的15分钟我都在聊关于数据可视化,比如基础概念、数据清洗、数据感知之类。
我建议你熟悉下列数据术语的确切含义,以便相关问题出现的时候,你就可以侃侃而谈啦!
1)数据分析
数据分析是一系列学习、探索、检查、转换和数据建模的过程,目标是从数据中发现有用的信息,提取有见地的结果。数据分析主要用在商业用途,因为它能让决策过程变得明智而快速,还能从视觉上直观地表现公司的形象。
2) 数据整理
数据整理的过程,是将数据从原始状态转换和映射为更方便处理的格式,目的是为了让数据更容易理解、更适宜,也更易于后续过程(比如数据分析)的进一步处理。
3)数据清洗
正像字面意思一样,数据清洗时,你将会进行以下操作:
- 去除出现的异常数据值(比如在工作经验年限一栏出现了大的异常的数字)
- 发现错误的数据类型(比如在性别一栏填了127)
- 修正记录集或数据库中填写错误或不准确的数字(#$@#% 修改成 34235)
- 补充数据中不完整、有误、不准确或者不相关的部分(比如缺失的性别信息)
- 替换、修改或删除干扰项或质量太低的数据
4)探索性数据分析
探索性数据分析(Exploratory Data Analysis,简称EDA)是一种将数据简化为较小的摘要变量集的尝试,其结果可以被用于:
- 最大化对数据集的理解
- 发现变量之间的潜在关系
- 导出可供数据可视化的重要变量
- 发现离群值和异常值(非常重要!)
- 测试潜在的假设
- 确定最优的模型构造
除了以上这些知识外,你还需要掌握工作所需的IDE(集成开发环境)和工具:
IDE
- PyCharm
- Jupyter
- Google CoLab
- Spyder
- R-Studio
工具
- Tableau
- PowerBI
- SAS
- Apache Spark
- MATLAB
- TensorFlow
- AWS
- Azure
或许你并不是非得掌握一切技术,但请确保你没有漏掉你掌握范围内的任何一点细节。入门水平的数据科学面试需要你拥有所有相关的知识。我建议要打好知识基础,专注于最基本的要点上。
从我的实践经验来说,在网上不要做一个小透明。去写博客、创建代码仓库、参与数据挑战活动和编程马拉松,为开源软件共享代码。有了一个与职位对口的个人作品集,加上你对工作的热情,以及你刚读完的这篇指南,我确定你一定会找到最好的工作!
感谢阅读!如果你喜欢这篇文章,请留言告诉我上面那些面试问题的答案!祝大家数据处理愉快!
关于作者
Rashi是一名研究生、数据分析师、用户体验分析师和顾问,还是一名技术发言人和博客作者!她希望组建一个组织,用丰富的资源将从事商业活动的女性联系起来,让她们无所畏惧,并对工作和世界充满热情。
(本文已投稿给「优达学城」。 原作: Rashi Desai 编译:欧剃 转载请保留此信息)
编译来源: https://towardsdatascience.com/a-beginners-guide-to-entry-level-data-science-interview-17eb3b431c81
标签:Udacity、Translate、Data-Science