7道常见的数据分析面试题[通俗易懂]

7道常见的数据分析面试题[通俗易懂]InfoQ内容来自极客时间《数据分析实战45讲》数据分析师近几年在国内互联网圈越来越火,很多开发都因为薪资和发展前景,希望转行到数据分析岗。今天,我们就来聊聊面试数据分析师的那些事。其实,数据分析能力是每个互联网人的必备技能,哪怕你没有转行数据分析师的计划,也推荐你看看这个专题,提升你的数据能力。数据分析的能力要求与数据分析相关的工作有一个特质,就是对数字非常敏感,同时也要求对数据具…

大家好,又见面了,我是你们的朋友全栈君。

InfoQ

内容来自极客时间《数据分析实战 45 讲

数据分析师近几年在国内互联网圈越来越火,很多开发都因为薪资和发展前景,希望转行到数据分析岗。今天,我们就来聊聊面试数据分析师的那些事。
其实,数据分析能力是每个互联网人的必备技能,哪怕你没有转行数据分析师的计划,也推荐你看看这个专题,提升你的数据能力。

数据分析的能力要求

与数据分析相关的工作有一个特质,就是对数字非常敏感,同时也要求对数据具有良好的思考能力,比如说如何用数据指导业务,如何将数据呈现在报告中。
在面试的时候,面试官通常会考察以下三个维度的能力:

1、理论知识(概率统计、概率分析等)
掌握与数据分析相关的算法是算法工程师必备的能力,如果你面试的是和算法相关的工作,那么面试官一定会问你和算法相关的问题。比如常用的数据挖掘算法都有哪些,EM 算法和 K-Means 算法的区别和相同之处有哪些等。
有些分析师的工作还需要有一定的数学基础,比如概率论与数理统计,最优化原理等。这些知识在算法优化中会用到。
除此以外,一些数据工程师的工作更偏向于前期的数据预处理,比如 ETL 工程师。这个职位考察你对数据清洗、数据集成的能力。虽然它们不是数据分析的“炼金”环节,却在数据分析过程中占了 80% 的时间。
在《数据分析实战 45 讲》里,我有详细讲到数据集成的两种架构方式:ELT 和 ETL,以及 Kettle 工具的基本操作,非常实用。
以下是我制作的数据集成的学习脑图。
在这里插入图片描述
2、具体工具(sklearn、Python、Numpy、Pandas 等)
工程师一定需要掌握工具,你通常可以从 JD 中了解一家公司采用的工具有哪些。如果你做的是和算法相关的工作,最好还是掌握一门语言,Python 语言最适合不过,还需要对 Python 的工具,比如 Numpy、Pandas、sklearn 有一定的了解。

数据 ETL 工程师还需要掌握 ETL 工具,比如 Kettle。

如果是数据可视化工作,需要掌握数据可视化工具,比如 Python 可视化,Tableau 等。

如果工作和数据采集相关,你也需要掌握数据采集工具,比如 Python 爬虫、八爪鱼。

我也有一篇专门的文章,来解析如何用八爪鱼模拟实战做数据采集,主要讲解了八爪鱼的任务建立、流程设计,还有一个实操的案例。虽然八爪鱼工具提供了各种简易采集的方式,我更建议你把它作为参考模板,可以看下别人是如何建立的,这样多做案例,你上手会更快。在这里插入图片描述
3、业务能力(数据思维)
数据分析的本质是要对业务有帮助。因此数据分析有一个很重要的知识点就是用户画像。
用户画像是企业业务中用到比较多的场景,对于数据分析来说,就是对数据进行标签化,实际上这是一种抽象能力。
用户画像建模的详细操作,主要在我的这篇文章里「用户画像:标签化就是数据的抽象能力」,从三个维度来建立用户画像:“都是谁”、“从哪来”、“要去哪”。若是用户画像建模的过程,按照数据流处理的阶段来划分,可以分为:数据层、算法层、业务层。你会发现在不同的层,都需要打上不同的标签。

7 道数据分析笔试题

作为实力检测的一部分,笔试是非常重要的一个环节。它可以直接测验你对数据分析具体理论的掌握程度和动手操作的能力。我出了几道简单的题,你不妨来看下。
问答题
1、用一种编程语言,实现 1+2+3+4+5+…+100。
这道题考察的就是语言基础,你可以用自己熟悉的语言完成这道题,比如 Python、Java、PHP、C++ 等。这里我用 Python 举例:sum = 0for number in range(1,101): sum = sum + numberprint(sum)
在这里插入图片描述
2、如何理解过拟合?

过拟合和欠拟合一样,都是数据挖掘的基本概念。过拟合指的就是数据训练得太好,在实际的测试环境中可能会产生错误,所以适当的剪枝对数据挖掘算法来说也是很重要的。

欠拟合则是指机器学习得不充分,数据样本太少,不足以让机器形成自我认知。

3、为什么说朴素贝叶斯是“朴素”的?

朴素贝叶斯是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,是因为它假设每个输入变量是独立的。这是一个强硬的假设,实际情况并不一定,但是这项技术对于绝大部分的复杂问题仍然非常有效。

4、SVM 最重要的思想是什么?

SVM 计算的过程就是帮我们找到超平面的过程,它有个核心的概念叫:分类间隔。SVM 的目标就是找出所有分类间隔中最大的那个值对应的超平面。在数学上,这是一个凸优化问题。同样我们根据数据是否线性可分,把 SVM 分成硬间隔 SVM、软间隔 SVM 和非线性 SVM。

5、K-Means 和 KNN 算法的区别是什么?

首先,这两个算法解决的是数据挖掘中的两类问题。K-Means 是聚类算法,KNN 是分类算法。其次,这两个算法分别是两种不同的学习方式。K-Means 是非监督学习,也就是不需要事先给出分类标签,而 KNN 是有监督学习,需要我们给出训练数据的分类标识。最后,K 值的含义不同。K-Means 中的 K 值代表 K 类。KNN 中的 K 值代表 K 个最接近的邻居。

动手题

1、我给你一组数据,如果要你做数据清洗,你会怎么做?在这里插入图片描述
实际上,这一道题中,面试官考核的是基本的数据清洗的准则,数据清洗是数据分析必不可少的重要环节。你可能看到这个数据存在 2 个问题:典韦出现了 2 次,张飞的数学成绩缺失。
针对重复行,你需要删掉其中的一行。针对数据缺失,你可以将张飞的数学成绩补足。
在「数据科学家 80% 时间都花费在了这些清洗任务上?」的文章里,结合案例,我着重讲解了数据清洗具体方法,我将数据清洗规则总结为以下 4 个关键点,统一起来叫“完全合一”,下面我来解释下。
1、整性:单条数据是否存在空值,统计的字段是否完善。
2、面性:观察某一列的全部数值,比如在 Excel 表中,我们选中一列,可以看到该列的平均值、最大值、最小值。我们可以通过常识来判断该列是否有问题,比如:数据定义、单位标识、数值本身。
3、法性:数据的类型、内容、大小的合法性。比如数据中存在非 ASCII 字符,性别存在了未知,年龄超过了 150 岁等。
4、唯性:数据是否存在重复记录,因为数据通常来自不同渠道的汇总,重复的情况是常见的。行数据、列数据都需要是唯一的,比如一个人不能重复记录多次,且一个人的体重也不能在列指标中重复记录多次。
2、豆瓣电影数据集关联规则挖掘
在数据分析领域,有一个很经典的案例,那就是“啤酒 + 尿布”的故事。它实际上体现的就是数据分析中的关联规则挖掘。不少公司会对这一算法进行不同花样的考察,但万变不离其宗。
如果让你用 Apriori 算法,分析电影数据集中的导演和演员信息,从而发现两者之间的频繁项集及关联规则,你会怎么做?
查看完整代码:https://github.com/cystanford/Apriori
以上就是有关数据分析面试笔试的一些内容,你或许可以感受到数据分析师这个岗位的特殊性。面试找工作虽说不是一朝一夕就可以完成的事情,但我希望通过专栏,能助你一臂之力。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140817.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • SAE J1939介绍

    SAE J1939介绍CAN协议最初由美国博世公司提出,后来SAE在CAN2.0B的基础之上提出J1939协议,该协议主要面向客车和载重货车。J1939协议对应ISO提出的七层OSI模型中的物理层、数据链路层、网络层和应用层,除了这四层,为了保证数据的准确传输和故障诊断,J1939还具有网络管理和应用层诊断。物理层对应J1939-11、J1939-15;数据链路层对应协议中的J1939-21;网络层对应协议中的

  • fork join框架_笔记框架图怎么做

    fork join框架_笔记框架图怎么做什么是Fork/Join框架Fork/Join框架是Java 7提供的一个用于并行执行任务的框架,是一个把大任务分割成若干 个小任务,最终汇总每个小任务结果后得到大任务结果的框架。 我们再通过Fork和Join这两个单词来理解一下Fork/Join框架。Fork就是把一个大任务切分 为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结 果。比如计算1+2+…+10000,可以分割成10个子任务,每个子任务分别对1000个数进行求和, 最终汇总这10个子任务的结果。Fork/

  • Nginx的默认端口是_https默认端口

    Nginx的默认端口是_https默认端口我们前面一篇说了nginx的默认端口是80,可是空说无凭,我们用事实来说话。我们首先用whereisnginx.conf来看一下哪些目录里面有nginx.conf文件,我们看到了一共有6个目录,这里是应该分别到这六个文件里面去看一下,但是由于我们提前找过了,是/etc/nginx这个目录,所以我们就直接到该目录下面,即采用cd来切换目录,下图已经把这个文件标出来了。接着,我们查看…

  • PLSQL Developer 安装使用教程详解

    PLSQL Developer 安装使用教程详解下载plsqldeveloper:官网下载:https://www.allroundautomations.com/registered-plsqldev/我下载的是10.0.3这个版本,目前版本已经达到了14,下载后顺带把ChineseLanguagepack下载一下,一会可以将软件的语言改为中文;安装plsqldeveloper下载完成后:选择plsqldev文件(注意这里标注的默认安装路径需要修改,改成路径中不含空格和中文的路径,否则,安装了,无法进行远程连接。)安

  • 无意发现web msn,很好用,呵呵[通俗易懂]

    无意发现web msn,很好用,呵呵[通俗易懂]msn不知道什么时候提供了类似QQ调用的代码像我基本就不用QQ了,msn倒是每天在线为了解决用户的问题,想了很多时时交流的办法,这回倒好直接用msn的web接口,直接时时交流了,没msn的用户也可以用

  • SpiderMonkey-让你的C++程序支持JavaScript脚本

    SpiderMonkey-让你的C++程序支持JavaScript脚本

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号