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
以上就是有关数据分析面试笔试的一些内容,你或许可以感受到数据分析师这个岗位的特殊性。面试找工作虽说不是一朝一夕就可以完成的事情,但我希望通过专栏,能助你一臂之力。

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件测试缺陷报告单怎么填,缺陷报告(缺陷报告怎么写)[通俗易懂]

    软件测试缺陷报告单怎么填,缺陷报告(缺陷报告怎么写)[通俗易懂]报告软件测试错误的目的是为了保证修复错误的人员可以重复报告的错误,从而有利于分析错误产生的原因,定位错误,然后修正之。因此,报告软件测试错误的基本要求。。1.首先要做一个“标题党”(此标题党非彼标题党)。标题一定要清晰简洁易理解,。[Product][Version]_[Feature]_[Title],这样描述会很清晰,也方便查找3.缺陷的标题一。。测试报告是对BUG的统计,计划的实施,后…

    2025年11月26日
    4
  • Python天天美味(13) – struct.unpack

    Python天天美味(13) – struct.unpack

    2022年2月23日
    64
  • 常用的web漏洞扫描工具_系统漏洞扫描工具有哪些

    常用的web漏洞扫描工具_系统漏洞扫描工具有哪些转载自:http://fairysoftware.com/web_lou_dong_sao_miao.html1、AWVS,国外商业收费软件,据了解一个License一年费用是2万多RMB。可见总体漏洞扫描概况,也可导出报告,报告提供漏洞明细说明、漏洞利用方式、修复建议。缺点是限制了并行扫描的网站数。2、OWASPZed(ZAP),来自OWASP项目组织的开源免费工具,提供漏洞扫描、爬虫、Fuzz功能,该工具已集成于KaliLinux系统。3、Nikto,一款开源软件,不仅可用于扫描发现网.

    2025年9月8日
    6
  • SpringBoot 配置Mybatis两种方式

    SpringBoot 配置Mybatis两种方式目前SpringBoot被各企业广泛使用,在SpringBoot结合Mybatis使用时,有的人将mapper.xml存放到resouce的目录下,有的想把Mapper.xml和接口放到一起,但是这样/就会存在Mapper.xml加载不了,导致方法无法找到,现在咱们看看两种方式的配置。首先说第一种:也就是网上说的最多的一种,添加依赖,我就不细说了。1.在application.pr…

    2022年6月24日
    33
  • java 查看线程死锁_java 查看线程死锁

    java 查看线程死锁_java 查看线程死锁那我们怎么确定一定是死锁呢?有两种方法。1>使用JDK给我们的的工具JConsole,可以通过打开cmd然后输入jconsole打开。1)连接到需要查看的进程。2)打开线程选项卡,然后点击左下角的“检测死锁”3)jconsole就会给我们检测出该线程中造成死锁的线程,点击选中即可查看详情:从上图中我们可以看出:①在线程Thread-1中,从状态可以看出,它想申请Paper这个资源,但是这个资…

    2022年7月13日
    26
  • git切换到指定远程分支

    git切换到指定远程分支我们在使用git进行开发的时候经常会遇到需要切换远程分支并且提交到远程指定分支的情况,现在记录下操作步骤。查看远程所有分支$gitbranch-agitbranch不带参数,列出本地已经存在的分支,并且在当前分支的前面用*标记,加上-a参数可以查看所有分支列表,包括本地和远程,远程分支一般会用红色字体标记出来*devmasterremote…

    2022年4月13日
    83

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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