数据分析师面试常见问题有哪些?

2024-05-20 03:45

1. 数据分析师面试常见问题有哪些?

1、如何理解过拟合?
过拟合和欠拟合一样,都是数据挖掘的基本概念。过拟合指的就是数据训练得太好,在实际的测试环境中可能会产生错误,所以适当的剪枝对数据挖掘算法来说也是很重要的。
欠拟合则是指机器学习得不充分,数据样本太少,不足以让机器形成自我认知。
2、为什么说朴素贝叶斯是“朴素”的?
朴素贝叶斯是一种简单但极为强大的预测建模算法。之所以称为朴素贝叶斯,是因为它假设每个输入变量是独立的。这是一个强硬的假设,实际情况并不一定,但是这项技术对于绝大部分的复杂问题仍然非常有效。
3、SVM 最重要的思想是什么?
SVM 计算的过程就是帮我们找到超平面的过程,它有个核心的概念叫:分类间隔。SVM 的目标就是找出所有分类间隔中最大的那个值对应的超平面。在数学上,这是一个凸优化问题。同样我们根据数据是否线性可分,把 SVM 分成硬间隔 SVM、软间隔 SVM 和非线性 SVM。
4、K-Means 和 KNN 算法的区别是什么?
首先,这两个算法解决的是数据挖掘中的两类问题。K-Means 是聚类算法,KNN 是分类算法。其次,这两个算法分别是两种不同的学习方式。K-Means 是非监督学习,也就是不需要事先给出分类标签,而 KNN 是有监督学习,需要我们给出训练数据的分类标识。最后,K 值的含义不同。K-Means 中的 K 值代表 K 类。KNN 中的 K 值代表 K 个最接近的邻居。

数据分析师面试常见问题有哪些?

2. 数据分析师面试题目和答案:动手题

【导读】众所周知,随着社会的发展,数据分析师成为了炙手可热的热门执业,一方面是其高薪待遇另一方面就是其未来广阔的发展前景。一般情况下用人单位会给问答题和动手题来检测应聘者的真实实力,可以说面试笔试是非常重要的一个环节。它可以直接测验你对数据分析具体理论的掌握程度和动手操作的能力。为此小编就以此为例和大家说说2020年数据分析面试解答技巧:动手题,希望对大家有所帮助。

动手题
1. 我给你一组数据,如果要你做数据清洗,你会怎么做?
实际上,这一道题中,面试官考核的是基本的数据清洗的准则,数据清洗是数据分析必不可少的重要环节。你可能看到这个数据存在 2 个问题:典韦出现了 2 次,张飞的数学成绩缺失。
针对重复行,你需要删掉其中的一行。针对数据缺失,你可以将张飞的数学成绩补足。
2. 豆瓣电影数据集关联规则挖掘
在数据分析领域,有一个很经典的案例,那就是“啤酒 + 尿布”的故事。它实际上体现的就是数据分析中的关联规则挖掘。不少公司会对这一算法进行不同花样的考察,但万变不离其宗。
如果让你用 Apriori 算法,分析电影数据集中的导演和演员信息,从而发现两者之间的频繁项集及关联规则,你会怎么做?
以上就是小编今天给大家整理发送的关于“数据分析师面试题目和答案:动手题”的相关内容,希望对大家有所帮助。想了解更多关于数据分析及人工智能就业岗位分析,关注小编持续更新。

3. 数据分析师常见的面试问题

 关于数据分析师常见的面试问题集锦
                      1、你处理过的最大的数据量?你是如何处理他们的?处理的结果。
    
    2、告诉我二个分析或者计算机科学相关项目?你是如何对其结果进行衡量的?
    3、什么是:提升值、关键绩效指标、强壮性、模型按合度、实验设计、2/8原则?
    4、什么是:协同过滤、n-grams, map reduce、余弦距离?
    5、如何让一个网络爬虫速度更快、抽取更好的信息以及更好总结数据从而得到一干净的数据库?
    6、如何设计一个解决抄袭的方案?
    7、如何检验一个个人支付账户都多个人使用?
    8、点击流数据应该是实时处理?为什么?哪部分应该实时处理?
    9、你认为哪个更好:是好的数据还是好模型?同时你是如何定义“好”?存在所有情况下通用的模型吗?有你没有知道一些模型的定义并不是那么好?
    10、什么是概率合并(aka模糊融合)?使用sql处理还是其它语言方便?对于处理半结构化的数据你会选择使用哪种语言?
    11、你是如何处理缺少数据的?你推荐使用什么样的处理技术?
    12、你最喜欢的编程语言是什么?为什么?
    13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。
    14、sas, r, python, perl语言的区别是?
    15、什么是大数据的诅咒?
    16、你参与过数据库与数据模型的设计吗?
    17、你是否参与过仪表盘的设计及指标选择?你对于商业智能和报表工具有什么想法?
    18、你喜欢td数据库的什么特征?
    19、如何你打算发100万的营销活动邮件。你怎么去优化发送?你怎么优化反应率?能把这二个优化份开吗?
    20、如果有几个客户查询oracle数据库的效率很低。为什么?你做什么可以提高速度10倍以上,同时可以更好处理大数量输出?
    21、如何把非结构化的数据转换成结构化的数据?这是否真的有必要做这样的转换?把数据存成平面文本文件是否比存成关系数据库更好?
    22、什么是哈希表碰撞攻击?怎么避免?发生的频率是多少?
    23、如何判别mapreduce过程有好的负载均衡?什么是负载均衡?
    24、请举例说明mapreduce是如何工作的?在什么应用场景下工作的很好?云的安全问题有哪些?
    25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价?
    26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯来改进爬虫检验算法?
    27、你处理过白名单吗?主要的规则?(在欺诈或者爬行检验的情况下)
    28、什么是星型模型?什么是查询表?
    29、你可以使用excel建立逻辑回归模型吗?如何可以,说明一下建立过程?
    30、在sql, perl, c++, python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?
    31、使用5天完成90%的精度的解决方案还是花10天完成100%的精度的解决方案?取决于什么内容?
    32、定义:qa(质量保障)、六西格玛、实验设计。好的与坏的实验设计能否举个案例?
    33、普通线性回归模型的缺陷是什么?你知道的其它回归模型吗?
    34、你认为叶数小于50的决策树是否比大的好?为什么?
    35、保险精算是否是统计学的一个分支?如果不是,为何如何?
    36、给出一个不符合高斯分布与不符合对数正态分布的数据案例。给出一个分布非常混乱的数案例。
    37、为什么说均方误差不是一个衡量模型的好指标?你建议用哪个指标替代?
    38、你如何证明你带来的算法改进是真的有效的与不做任何改变相比?你对a/b测试熟吗?
    39、什么是敏感性分析?拥有更低的敏感性(也就是说更好的强壮性)和低的预测能力还是正好相反好?你如何使用交叉验证?你对于在数据集中插入噪声数据从而来检验模型的.敏感性的想法如何看?
    40、对于一下逻辑回归、决策树、神经网络。在过去XX年中这些技术做了哪些大的改进?
    41、除了主成分分析外你还使用其它数据降维技术吗?你怎么想逐步回归?你熟悉的逐步回归技术有哪些?什么时候完整的数据要比降维的数据或者样本好?
    42、你如何建议一个非参数置信区间?
    43、你熟悉极值理论、蒙特卡罗逻辑或者其它数理统计方法以正确的评估一个稀疏事件的发生概率?
    44、什么是归因分析?如何识别归因与相关系数?举例。
    45、如何定义与衡量一个指标的预测能力?
    46、如何为欺诈检验得分技术发现最好的规则集?你如何处理规则冗余、规则发现和二者的本质问题?一个规则集的近似解决方案是否可行?如何寻找一个可行的近似方案?你如何决定这个解决方案足够好从而可以停止寻找另一个更好的?
    47、如何创建一个关键字分类?
    48、什么是僵尸网络?如何进行检测?
    49、你有使用过api接口的经验吗?什么样的api?是谷歌还是亚马逊还是软件即时服务?
    50、什么时候自己编号代码比使用数据科学者开发好的软件包更好?
    51、可视化使用什么工具?在作图方面,你如何评价tableau?r?sas?在一个图中有效展现五个维度?
    52、什么是概念验证?
    53、你主要与什么样的客户共事:内部、外部、销售部门/财务部门/市场部门/it部门的人?有咨询经验吗?与供应商打过交道,包括供应商选择与测试。
    54、你熟悉软件生命周期吗?及it项目的生命周期,从收入需求到项目维护?
    55、什么是cron任务?
    56、你是一个独身的编码人员?还是一个开发人员?或者是一个设计人员?
    57、是假阳性好还是假阴性好?
    58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。
    59、zillow’s算法是如何工作的?
    60、如何检验为了不好的目的还进行的虚假评论或者虚假的fb帐户?
    61、你如何创建一个新的匿名数字帐户?
    62、你有没有想过自己创业?是什么样的想法?
    63、你认为帐号与密码输入的登录框会消失吗?它将会被什么替代?
    64、你用过时间序列模型吗?时滞的相关性?相关图?光谱分析?信号处理与过滤技术?在什么样的场景下?
    65、哪位数据科学有你最佩服?从哪开始?
    66、你是怎么开始对数据科学感兴趣的?
    67、什么是效率曲线?他们的缺陷是什么,你如何克服这些缺陷?
    68、什么是推荐引擎?它是如何工作的?
    69、什么是精密测试?如何及什么时候模拟可以帮忙我们不使用精密测试?
    70、你认为怎么才能成为一个好的数据科学家?
    71、你认为数据科学家是一个艺术家还是科学家?
    72、什么是一个好的、快速的聚类算法的的计算复杂度?什么好的聚类算法?你怎么决定一个聚类的聚数?
    73、给出一些在数据科学中“最佳实践的案例”。
    74、什么让一个图形使人产生误解、很难去读懂或者解释?一个有用的图形的特征?
    75、你知道使用在统计或者计算科学中的“经验法则”吗?或者在商业分析中。
    76、你觉得下一个20年最好的5个预测方法是?
    77、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?例如,对于每月官方定期在媒体公开发布的失业统计数据,你有什么感想?怎样可以让这些数据更加准确?
   ;

数据分析师常见的面试问题

4. 面试数据分析师的常见问题

面试数据分析师的常见问题。数据分析师指的是不同行业中,专门从事行业数据搜集、整理、分析,并依据数据做出行业研究、评估和预测的专业人员。那么在应聘数据分析师这一职位的求职者会面临哪些面试问题呢?
  
  1、告诉我二个分析或者计算机科学相关项目?你是如何对其结果进行衡量的?
  2、如何让一个网络爬虫速度更快、抽取更好的信息以及更好总结数据从而得到一干净的数据库?
  3、什么是:提升值、关键绩效指标、强壮性、模型按合度、实验设计、2/8原则?
  4、什么是:协同过滤、n-grams, map reduce、余弦距离?
  5、点击流数据应该是实时处理?为什么?哪部分应该实时处理?
  6、如何设计一个解决抄袭的方案?
  7、如何检验一个个人支付账户都多个人使用?
  8、什么是概率合并(AKA模糊融合)?使用SQL处理还是其它语言方便?对于处理半结构化的数据你会选择使用哪种语言?
  9、你认为哪个更好:是好的数据还是好模型?同时你是如何定义“好”?存在所有情况下通用的模型吗?有你没有知道一些模型的定义并不是那么好?
  10、你最喜欢的编程语言是什么?为什么?
  11、你是如何处理缺少数据的?你推荐使用什么样的处理技术?
  12、什么是大数据的诅咒?
  13、对于你喜欢的统计软件告诉你喜欢的与不喜欢的3个理由。
  14、SAS, R, Python, Perl语言的区别是?
  15、你喜欢TD数据库的什么特征?
  16、你参与过数据库与数据模型的设计吗?
  17、你是否参与过仪表盘的设计及指标选择?你对于商业智能和报表工具有什么想法?
  18、请举例说明mapreduce是如何工作的?在什么应用场景下工作的很好?云的安全问题有哪些?
  19、如何你打算发100万的营销活动邮件。你怎么去优化发送?你怎么优化反应率?能把这二个优化份开吗?
  20、如果有几个客户查询ORACLE数据库的效率很低。为什么?你做什么可以提高速度10倍以上,同时可以更好处理大数量输出?
  21、如何把非结构化的数据转换成结构化的数据?这是否真的有必要做这样的转换?把数据存成平面文本文件是否比存成关系数据库更好?
  22、什么是哈希表碰撞攻击?怎么避免?发生的频率是多少?
  23、如何判别mapreduce过程有好的负载均衡?什么是负载均衡?
  24、你处理过白名单吗?主要的规则?(在欺诈或者爬行检验的情况下)
  25、(在内存满足的情况下)你认为是100个小的哈希表好还是一个大的哈希表,对于内在或者运行速度来说?对于数据库分析的评价?
  26、为什么朴素贝叶斯差?你如何使用朴素贝叶斯来改进爬虫检验算法?
  27、普通线性回归模型的缺陷是什么?你知道的其它回归模型吗?
  28、什么是星型模型?什么是查询表?
  29、你可以使用excel建立逻辑回归模型吗?如何可以,说明一下建立过程?
  30、在SQL, Perl, C++, Python等编程过程上,待为了提升速度优化过相关代码或者算法吗?如何及提升多少?
  31、使用5天完成90%的精度的解决方案还是花10天完成100%的精度的解决方案?取决于什么内容?
  32、定义:QA(质量保障)、六西格玛、实验设计。好的与坏的实验设计能否举个案例?
  33、什么是敏感性分析?拥有更低的敏感性(也就是说更好的强壮性)和低的预测能力还是正好相反好?你如何使用交叉验证?你对于在数据集中插入噪声数据从而来检验模型的敏感性的想法如何看?
  34、你认为叶数小于50的决策树是否比大的好?为什么?
  35、保险精算是否是统计学的一个分支?如果不是,为何如何?
  36、给出一个不符合高斯分布与不符合对数正态分布的数据案例。给出一个分布非常混乱的数案例。
  37、你如何建议一个非参数置信区间?
  38、你如何证明你带来的算法改进是真的有效的与不做任何改变相比?你对A/B测试熟吗?
  39、为什么说均方误差不是一个衡量模型的好指标?你建议用哪个指标替代?
  40、对于一下逻辑回归、决策树、神经网络。在过去15年中这些技术做了哪些大的改进?
  41、除了主成分分析外你还使用其它数据降维技术吗?你怎么想逐步回归?你熟悉的逐步回归技术有哪些?什么时候完整的数据要比降维的数据或者样本好?
  42、如何创建一个关键字分类?
  43、你熟悉极值理论、蒙特卡罗逻辑或者其它数理统计方法以正确的评估一个稀疏事件的发生概率?
  44、什么是归因分析?如何识别归因与相关系数?举例。
  45、如何定义与衡量一个指标的预测能力?
  46、如何为欺诈检验得分技术发现最好的规则集?你如何处理规则冗余、规则发现和二者的本质问题?一个规则集的近似解决方案是否可行?如何寻找一个可行的近似方案?你如何决定这个解决方案足够好从而可以停止寻找另一个更好的?
  47、什么是概念验证?
  48、什么是僵尸网络?如何进行检测?
  49、你有使用过API接口的经验吗?什么样的API?是谷歌还是亚马逊还是软件即时服务?
  50、什么时候自己编号代码比使用数据科学者开发好的软件包更好?
  51、可视化使用什么工具?在作图方面,你如何评价Tableau?R?SAS?在一个图中有效展现五个维度?
  52、是假阳性好还是假阴性好?
  53、你主要与什么样的客户共事:内部、外部、销售部门/财务部门/市场部门/IT部门的人?有咨询经验吗?与供应商打过交道,包括供应商选择与测试。
  54、你熟悉软件生命周期吗?及IT项目的生命周期,从收入需求到项目维护?
  55、什么是cron任务?
  56、你是一个独身的编码人员?还是一个开发人员?或者是一个设计人员?
  57、什么让一个图形使人产生误解、很难去读懂或者解释?一个有用的图形的特征?
  58、你熟悉价格优化、价格弹性、存货管理、竞争智能吗?分别给案例。
  59、Zillow’s算法是如何工作的?
  60、如何检验为了不好的目的还进行的虚假评论或者虚假的FB帐户?
  61、你如何创建一个新的匿名数字帐户?
  62、你有没有想过自己创业?是什么样的想法?
  63、你认为帐号与密码输入的登录框会消失吗?它将会被什么替代?
  64、你用过时间序列模型吗?时滞的相关性?相关图?光谱分析?信号处理与过滤技术?在什么样的场景下?
  65、哪位数据科学有你最佩服?从哪开始?
  66、你是怎么开始对数据科学感兴趣的?
  67、你觉得下一个20年最好的5个预测方法是?
  68、什么是推荐引擎?它是如何工作的?
  69、什么是精密测试?如何及什么时候模拟可以帮忙我们不使用精密测试?
  70、你认为怎么才能成为一个好的数据科学家?
  71、你认为数据科学家是一个艺术家还是科学家?
  72、你怎么马上就知道在一篇文章中(比如报纸)发表的统计数字是错误,或者是用作支撑作者的论点,而不是仅仅在罗列某个事物的信息?例如,对于每月官方定期在媒体公开发布的失业统计数据,你有什么感想?怎样可以让这些数据更加准确?
  73、给出一些在数据科学中“最佳实践的案例”。
  74、什么是效率曲线?他们的缺陷是什么,你如何克服这些缺陷?
  75、你处理过的最大的数据量?你是如何处理他们的?处理的结果。
  76、什么是一个好的、快速的聚类算法的的计算复杂度?什么好的聚类算法?你怎么决定一个聚类的聚数?
  77、你知道使用在统计或者计算科学中的“经验法则”吗?或者在商业分析中。
   上述的这些问题在面试数据分析师的求职者中非常容易遇到的,有些的涉及到专业性的问题,因此在面试之前一定要做好充足的准备!

5. 招聘数据分析师时一般会出哪些面试题

下面给你整理了一部分应聘数据分析师会遇到的问题:
1、你处理过的最大的数据量?你是如何处理他们的?处理的结果。
2、告诉我二个分析或者计算机科学相关项目?你是如何对其结果进行衡量的?
3、什么是:提升值、关键绩效指标、强壮性、模型按合度、实验设计、2/8原则?
4、什么是:协同过滤、n-grams, map reduce、余弦距离?
5、如何让一个网络爬虫速度更快、抽取更好的信息以及更好总结数据从而得到一干净的数据库?
6、如何设计一个解决抄袭的方案?
7、如何检验一个个人支付账户都多个人使用?
8、点击流数据应该是实时处理?为什么?哪部分应该实时处理?
9、你认为哪个更好:是好的数据还是好模型?同时你是如何定义“好”?存在所有情况下通用的模型吗?有你没有知道一些模型的定义并不是那么好?
10、什么是概率合并(AKA模糊融合)?使用SQL处理还是其它语言方便?对于处理半结构化的数据你会选择使用哪种语言?
11、你是如何处理缺少数据的?你推荐使用什么样的处理技术?
12、你最喜欢的编程语言是什么?为什么?

招聘数据分析师时一般会出哪些面试题

6. 面试数据分析师看重哪些方面?

1、考察对数据的敏感度
面试的时候,数据部门经理问一些生活中的数据的问题,一个优秀的数据分析师对数据有很强的敏感度,生活中常见的数据,你直观的感受往往能反应出你的资质。
2、数学基本概念和统计学方法
遇到的有排列组合的问题的,还有指数衰减的定义等等。或者直接给一个问题或者数据,问问你打算用什么样的方法怎样去分析。在给你数据的时候,一定要记得说数据预处理!这一点非常重要,这样会让人觉得你的回答逻辑清楚,有条有理。如果想从事与数据科学相关的岗位,需要学习的数据知识可以参考成都加米谷大数据培训机构的:想从事数据科学相关岗位,这些数学基础“必备”。
3、编程能力
你一定要有自己熟练的软件,常问的问题是,你一般用excel干什么,常用的函数有哪些,你是否用过数据透视表,是够用过宏,你平时多久用一次R,你是否用过或了解过并行等等关于软件的问题。在面试小公司时,HR会可能直接给你一个数据进行数据分析,题目一般给的都不太难。

7. 常见的数据分析师笔试题目及答案

 常见的数据分析师笔试题目及答案
                         导读:探索性数据分析侧重于在数据之中发现新的特征,而验证性数据分析则侧重于已有假设的证实或证伪。以下是由我J.L为您整理推荐的实用的应聘笔试题目和经验,欢迎参考阅读。
    
          1、海量日志数据,提取出某日访问百度次数最多的那个IP。 
         首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方 法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率 最大的几个)及相应的频率。然后再在这1000个最大的IP中,找出那个频率最大的IP,即为所求。
         或者如下阐述:
         算法思想:分而治之+Hash
         1.IP地址最多有2^32=4G种取值情况,所以不能完全加载到内存中处理;
         2.可以考虑采用“分而治之”的思想,按照IP地址的Hash(IP)24值,把海量IP日志分别存储到1024个小文件中。这样,每个小文件最多包含4MB个IP地址;
         3.对于每一个小文件,可以构建一个IP为key,出现次数为value的Hash map,同时记录当前出现次数最多的那个IP地址;
         4.可以得到1024个小文件中的出现次数最多的IP,再依据常规的排序算法得到总体上出现次数最多的'IP;
          2、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。 
         假设目前有一千万个记录(这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。),请你统计最热门的10个查询串,要求使用的内存不能超过1G。
         典型的Top K算法,还是在这篇文章里头有所阐述,
         文中,给出的最终算法是:
         第一步、先对这批海量数据预处理,在O(N)的时间内用Hash表完成统计(之前写成了排序,特此订正。July、2011.04.27);
         第二步、借助堆这个数据结构,找出Top K,时间复杂度为N‘logK。
         即,借助堆结构,我们可以在log量级的时间内查找和调整/移动。因此,维护一个K(该题目中是10)大小的小根堆,然后遍历300万的 Query, 分别和根元素进行对比所以,我们最终的时间复杂度是:O(N) + N’*O(logK),(N为1000万,N’为300万)。ok,更多,详情,请参考原文。
         或者:采用trie树,关键字域存该查询串出现的次数,没有出现为0。最后用10个元素的最小推来对出现频率进行排序。
          3、有一个1G大小的一个文件,里面每一行是一个词,词的大小不超过16字节,内存限制大小是1M。返回频数最高的100个词。 
         方案:顺序读文件中,对于每个词x,取hash(x)P00,然后按照该值存到5000个小文件(记为x0,x1,…x4999)中。这样每个文件大概是200k左右。
         如果其中的有的文件超过了1M大小,还可以按照类似的方法继续往下分,直到分解得到的小文件的大小都不超过1M。
         对每个小文件,统计每个文件中出现的词以及相应的频率(可以采用trie树/hash_map等),并取出出现频率最大的100个词(可以用含 100 个结点的最小堆),并把100个词及相应的频率存入文件,这样又得到了5000个文件。下一步就是把这5000个文件进行归并(类似与归并排序) 的过程了。
          4、有10个文件,每个文件1G,每个文件的每一行存放的都是用户的query,每个文件的query都可能重复。要求你按照query的频度排序。 
         还是典型的TOP K算法,解决方案如下:
         方案1:
         顺序读取10个文件,按照hash(query)的结果将query写入到另外10个文件(记为)中。这样新生成的文件每个的大小大约也1G(假设hash函数是随机的)。
         找一台内存在2G左右的机器,依次对用hash_map(query, query_count)来统计每个query出现的次数。利用快速/堆/归并排序按照出现次数进行排序。将排序好的query和对应的 query_cout输出到文件中。这样得到了10个排好序的文件(记为)。
         对这10个文件进行归并排序(内排序与外排序相结合)。
         方案2:
         一般query的总量是有限的,只是重复的次数比较多而已,可能对于所有的query,一次性就可以加入到内存了。这样,我们就可以采用trie树/hash_map等直接来统计每个query出现的次数,然后按出现次数做快速/堆/归并排序就可以了。
         方案3:
         与方案1类似,但在做完hash,分成多个文件后,可以交给多个文件来处理,采用分布式的架构来处理(比如MapReduce),最后再进行合并。
          5、 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 
         方案1:可以估计每个文件安的大小为5G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。
         遍历文件a,对每个url求取hash(url)00,然后根据所取得的值将url分别存储到1000个小文件(记为a0,a1,…,a999)中。这样每个小文件的大约为300M。
         遍历文件b,采取和a相同的方式将url分别存储到1000小文件(记为b0,b1,…,b999)。这样处理后,所有可能相同的url都在对应的小 文件(a0vsb0,a1vsb1,…,a999vsb999)中,不对应的小文件不可能有相同的url。然后我们只要求出1000对小文件中相同的 url即可。
         求每对小文件中相同的url时,可以把其中一个小文件的url存储到hash_set中。然后遍历另一个小文件的每个url,看其是否在刚才构建的hash_set中,如果是,那么就是共同的url,存到文件里面就可以了。
         方案2:如果允许有一定的错误率,可以使用Bloom filter,4G内存大概可以表示340亿bit。将其中一个文件中的url使用 Bloom filter映射为这340亿bit,然后挨个读取另外一个文件的url,检查是否与Bloom filter,如果是,那么该url应该是共同的url(注意会有一定的错误率)。
         Bloom filter日后会在本BLOG内详细阐述。
          6、在2.5亿个整数中找出不重复的整数,注,内存不足以容纳这2.5亿个整数。 
         方案1:采用2-Bitmap(每个数分配2bit,00表示不存在,01表示出现一次,10表示多次,11无意义)进行,共需内存 2^32 * 2 bit=1 GB内存,还可以接受。然后扫描这2.5亿个整数,查看Bitmap中相对应位,如果是00变01,01变10,10保持不变。所描完事后,查看 bitmap,把对应位是01的整数输出即可。
         方案2:也可采用与第1题类似的方法,进行划分小文件的方法。然后在小文件中找出不重复的整数,并排序。然后再进行归并,注意去除重复的元素。
          7、腾讯面试题:给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中? 
         与上第6题类似,我的第一反应时快速排序+二分查找。以下是其它更好的方法:
         方案1:oo,申请512M的内存,一个bit位代表一个unsigned int值。读入40亿个数,设置相应的bit位,读入要查询的数,查看相应bit位是否为1,为1表示存在,为0表示不存在。
         方案2:这个问题在《编程珠玑》里有很好的描述,大家可以参考下面的思路,探讨一下:
         又因为2^32为40亿多,所以给定一个数可能在,也可能不在其中;
         这里我们把40亿个数中的每一个用32位的二进制来表示
         假设这40亿个数开始放在一个文件中。
    ;

常见的数据分析师笔试题目及答案

8. 数据分析师面试经验

 数据分析师面试经验
                      经常被问到一个问题,数据分析师或者数据挖掘工程师面试都问什么问题啊?特别是以下几类人群:
    
    1、想转行做数据分析工作的朋友。
    2、之前在比较小的公司做数据分析师,去大公司面试。
    3、在校大学生。
    在回答这些问题之前,先谈我的一个面试经历,记得之前我在一家小公司做数据分析师的时候,有朋友推荐我去一家大公司去面试数据分析师。当时我也在想,在面试大公司的数据分析师一定会问:
    1、你做过哪些模型?
    2、用什么工具做的啊?
    3、你会或者知道哪些算法啊?
    4、数据量有多大?
    .......
    但是当我去沟通下来的时候,问关于数据挖掘模型算法原理、使用什么工具的东西不多。更多是问一些关于项目背景、怎么思考这些项目、如何使用这些模型结果、怎么推动业务方去使用数据结果。【坦白说当时觉得不可思议,怎么问这些问题呢?】
    所以大家在面试数据分析岗位的时候,基础知识是必须的。但是更多要关注数据实现数据价值,特别是从事一段时间数据分析同学,但如果仅仅是刚准备从事数据分析同学,基础的专业知识与技能肯定是面试必问的话题。如果这家公司希望未来培养或者招的真的做数据分析的,那就会像我面试碰到的,一定也会很关注面试之外的问题。
    回到具体面试的问题,PS:这里我仅仅谈谈我的几点看法和我面试中会问到的几个问题,以及我为什么会为这些问题。
    一、了解你面试岗位的工作性质
    1、你对于你面试岗位价值的理解。
    2、你觉得这个岗位大概的工作内容。
    3、对于公司的理解。
    二、沟通表达/逻辑思维
    1、说一下你过往做的一些项目/说说你以前的工作经历。
    2、你之前做过的一些专业分析。
    3、你之前做过的模型。
    4、之前是如何与业务方打交道的。
    三、对于数据与商业的理解
    1、如何理解数据敏感性?
    2、你觉得数据怎么体现其商业价值?能否举个例子。
    四、专业技能
    1、基础的统计学知识。
    2、数据挖掘基本的算法。
    3、怎么评估模型好坏。
    4、使用的工具。
    5、数据挖掘流程。
    6、怎么清洗变量【例如:指标定义、缺失值处理】。
    7、怎么解决建模中会碰到一些技术问题【例如:共线性、不同模型针对的.数据类型】。
    五、学习能力
    1、是怎么学习专业知识。
    2、怎么学习业务知识。
    六、职业发展
    1、未来3年的职业规划。
    2、要实现这些规划计划是怎么样。
    我把面试过程可以会问几类问题,不同的面试官可以侧重点不一样。我想和所有面试数据分析师的朋友说的:
    1、面试过程中大家是平等的。不要太弱势也不要太强势。
    2、把你之前的工作有条理的表达出来。
    3、面试一些问题的时候,可以想一想。我个人觉得,并不是所有的问题必须别人一问完,立即回答。
    4、把面试当作一种学习与经历。关键是从一些面试中你能发现自己不足。
    另外一些小tips:
    1、面试之前了解这个岗位。了解一下这个公司。花点时间在面试公司和岗位,了解了解人家公司是干什么,如果你对这家公司特别感兴趣,去网站上看看,去体验体验人家公司的产品和服务。会让面试的人感觉到尊重。当然太贵就算了。
    2、如果有认识的人或者通过一些渠道先了解一下你面试的公司,部门情况到底是怎么样的。到底要招什么样的人。
    3、很多企业的招聘与实际需要的人之间有很大的出入。
    4、投递简历前:花点时间在简历上:要看到一份没有错别字且能把之前工作写清楚在一张纸上真的很少。
    5、机会是留给有准备的人。你准备好了吗?每次面试结束看,看看自己的不足,然后一定立即去学起来。
    
  ;