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