谷歌微软等科技巨头数据科学面试的真题:你能答出多少

来源:新浪科技 发布时间:2017.03.22
33.1K

来自 Glassdoor 的最新数据可以告诉我们各大科技公司最近在招聘面试时最喜欢向候选人提什么问题。首先有一个令人惋惜的结论:根据统计,几乎所有的公司都有着自己的不同风格。由于 Glassdoor 允许匿名提交内容,很多乐于分享的应聘者向大家提供了 Facebook、谷歌、微软等大公司的面试题。我们把其中的一部分列出以供大家参考。另外,如果你想转行成为一名数据科学家,这里也有一份实践指南(如何转行成为一名数据科学家?)

通用问题

  苹果

  1、如果你有几百万用户,每个用户都会发生数百笔交易,这些交易存在于数十种产品中。你该如何把这些用户细分成有意义的几类?

  微软

  1、 描述一个你曾经参与的项目,以及它的优点。

  2、如何处理具有高基数(high-cardinality)的类属特征?

  3、如果想要给 Twitter feed 写 summarize,你要怎么办?

  4、在应用机器学习算法之前纠正和清理数据的步骤是什么?

  5、 如何测量数据点之间的距离?

  6、请定义一下方差。

  7、请描述箱形图(box plot)和直方图(histogram)之间的差异,以及它们的用例。

  Twitter

  1、你会使用什么功能来为用户构建推荐算法?

  Uber

  1、选择任何一个你真正喜欢的产品或应用程序,并描述如何改善它。

  2、如何在分布中发现异常?

  3、如何检查分布中的某个趋势是否是由于异常产生的?

  4、 如何估算 Uber 对交通和驾驶环境造成的影响?

  5、 你会考虑用什么指标来跟踪 Uber 付费广告策略在吸引新用户上是否有效?然后,你想用什么办法估算出理想的客户购置成本?

  领英(LinkedIn)

  1、(对大数据工程师)请解释 REST 是什么。

机器学习问题

  谷歌

  1、 为什么要使用特征选择(feature selection)?

  2、 如果两个预测变量高度相关,它们对逻辑回归系数的影响是什么?系数的置信区间是什么?

  3、 高斯混合模型(Gaussian Mixture Model)和 K-Means 之间有什么区别?

  4、 在 K-Means 中如何拾取 k?

  5、 你如何知道高斯混合模型是不是适用的?

  6、 假设聚类模型的标签是已知的,你如何评估模型的性能?

  微软

  1、 你有哪些引以为豪的机器学习项目?

  2、 随便找一个机器学习算法,然后描述它。

  3、 请解释 Gradient Boosting 是如何工作的。

  4、(对数据挖掘工程师)请解释决策树模型。

  5、(对数据挖掘工程师)什么是神经网络?

  6、 请解释偏差方差权衡(Bias-Variance Tradeoff)。

  7。 如何处理不平衡二进制分类?

  8.L1 和 L2 正则化之间有什么区别?

  Uber

  1、 你会通过哪种特征来预测 Uber 司机是否会接受订单请求?你会使用哪种监督学习算法来解决这个问题,如何比较算法的结果?

  领英

  1、 点出及描述三种不同的内核函数,在哪些情况下使用哪种?

  2、 随意解释机器学习里的一种方法。

  3、 如何应付稀疏数据?

  IBM

  1、 如何防止过拟合(overfitting)?

  2、 如何处理数据中的离群值?

  3、 如何评估逻辑回归与简单线性回归模型预测的性能?

  4、 监督学习和无监督学习有什么区别?

  5、 什么是交叉验证(cross-validation),为什么要使用它?

  6、 用于评估预测模型的矩阵的名称是什么?

  7。 逻辑回归系数和胜算比(Odds Ratio)之间存在什么关系?

  8。 主成分分析(PCA)和线性和二次判别分析(LDA 和 QDA)之间的关系是什么?

  9。 如果你有一个因变量分类,又有一个连续自变量的混合分类,你将使用什么算法,方法或工具进行分析?

  10。(对行业分析师)逻辑与线性回归有什么区别?如何避免局部极小值?

  Salesforce

  1、 你会使用哪些数据和模型来测量损耗/流失?如何测试模型性能?

  2、 假设我是一名非技术人员,请向我解释一种机器学习算法。

  Capital One(一家美国银行)

  1、 如何构建一个模型来预测信用卡诈骗?

  2、 如何处理丢失或不良数据?

  3、 如何从已存在的特征中导出新的特征?

  4、 如果你试图预测客户的性别,但只有 100 个数据点,可能会出现什么问题?

  5、 在拥有两年交易历史的情况下,哪些特征可以用来预测信用风险?

  6、 请设计一个用来下井字棋的人工智能程序。

  Zillow

  1、 请解释过拟合,以及如何防止过拟合。

  2、 为什么 SVM 需要在支持向量之间最大化边缘?

  Hadoop

  Twitter

  1、 如何使用 Map/Reduce 将非常大的图形分割成更小的块,并根据数据的快速/动态变化并行计算它们的边缘?

  2、(对数据工程师)给定一个列表:123, 345234, 678345, 123…其中第一列是粉丝的 ID,第二列是被粉者的 ID。查找所有相互后续对(上面的示例中的对是 123,345)。当列表超出内存时,如何使用 Map / Reduce 来解决问题?

  Captial One

  1、(对数据工程师)什么是 Hadoop 序列化(serialization)?

  2、 解释一个简单的 Map / Reduce 问题。

  Hive

  领英

  1、(对数据工程师)请编写返回情感分数的 Hive UDF。例如,假如好=1,坏=-1,平均数=0,那么对餐厅做评价时因为‘食物好,服务差’,你的分数可能为 1 - 1 = 0

  Spark

  Captial One

  1、(对数据工程师)用 Scala 语言,RDD 在 Spark 中是如何工作的?

  统计和概率问题

  谷歌

  1、 假设我是一名非技术人员,请向我解释一下交叉验证(Cross-validation)。

  2、 请描述一下非正态概率分布,随后告诉我们它该如何应用?

  微软

  1、(对数据挖掘)请解释异方差(heteroskedasticity)是什么,以及如何解决它。

  Twitter

  1、 在给定 Twitter 用户数据的情况下,你该如何衡量参与度?

  Uber

  1、 时间序列预测技术有什么不同?

  2、 解释原理组件分析(Principle Component Analysis,PCA)和 PCA 使用的方程。

  3、 如何解决多重共线性(Multicollinearity)?

  4、(对分析师)请写一个方程,优化我们在 Twitter 和 Facebook 上的广告费用支出。

  Facebook

  1、 在一副牌中抽取两张,出现同一花色的概率是多少?

  IBM

  1、 什么是 p-value 和置信区间?

  Capital One

  1、(对数据分析师)如果你有 70 个红色弹珠,绿色和红色弹珠的比例是 2 比 7,有多少绿色弹珠?

  2、 纽约市的通勤数据看起来应该遵从什么分布?

  3、 一个骰子,在扔 6 次的情况下出现 1 个 6 的几率,与扔 12 次的情况下出现至少两个 6 的几率,和扔 600 次出现至少 100 次 6 的几率相比哪个大?

  Paypal

  1、 什么是中心极限定理(Central Limit Theorem),如何证明它?它的应用方向是什么?

编程和算法

  谷歌

  1、(对数据分析师)请写一个程序可以判定二叉树的高度。

  微软

  1、 请创建一个函数检查一个词是否具有回文结构。

  Twitter

  1、 请构建一个幂集(power set)。

  2、 请问如何在一个巨大的数据集中找到中值?

  Uber

  1、(对数据工程师)编写一个函数用来计算给定数字的平方根(2 个小数点精度)。随后:避免冗余计算,现在使用缓存机制优化你的功能。

  Facebook

  1、 假设给定两个二进制字符串,写一个函数将它们添加在一起,而不使用任何内置的字符串到 int 转换或解析工具。例如:如果给函数二进制字符串 100 和 111,它应该返回 1011、你的解决方案的空间和时间复杂性如何?

  2、 编写一个函数,它接受两个已排序的列表,并在排序列表中返回它们的并集。

  领英

  1、(对数据工程师)请编写一些代码来确定字符串中的左右括号是否是平衡的?

  2、 如何找到二叉搜索树中第二大的元素?

  3、 请编写一个函数,它接受两个排序的向量,并返回一个排序的向量。

  4、 如果你有一个输入的数字流,如何在运行过程中找到最频繁出现的数字?

  5、 编写一个函数,将一个数字增加到另一个数字,就像 pow()函数一样。

  6、 将大字符串拆分成有效字段并将它们存储在 dictionary 中。如果字符串不能拆分,返回 false。你的解决方案的复杂性如何?

  Captial One

  1、(对数据工程师)如何‘拆散’两个数列(就像 SQL 中的 JOIN 反过来)?

  2、 请创建一个用于添加的函数,数字表示为两个链表。

  3、 请创建一个计算矩阵的函数。

  4、 如何使用 Python 读取一个非常大的制表符分隔的数字文件,来计算每个数字出现的频率?

  Paypal

  1、 请编写一个函数,让它能在 O(n)的时间内取一个句子并逆向打印出来。

  2、 请编写一个函数,从一个数组中拾取,将它们分成两个可能的数组,然后打印两个数组之间的最大差值(在 O(n) 时间内)。

  3、 请编写一个执行合并排序的程序。

SQL 问题

  微软

  1、(对数据分析师)定义和解释聚簇索引和非聚簇索引之间的差异。

  2、(对数据分析师)返回表的行计数有哪些不同的方法?

  Facebook

  1、(对数据工程师)如果给定一个原始数据表,如何使用 SQL 执行 ETL(提取,转换,加载)以获取所需格式的数据?

  2、 如何编写 SQL 查询来计算涉及两个连接的某个属性的频率表?如果你想要 ORDER BY 或 GROUP BY 一些属性,你需要做什么变化?你该怎么解释 NULL?

  领英

  1、(对数据工程师)如何改进 ETL(提取,转换,加载)的吞吐量?

  智力游戏

  谷歌

  1、 假设你有 10 包弹球,每包里面都是 10 个弹球。如果其中一包的重量和其他的不同,但你只能进行一次称重,你该用什么办法?

  Facebook

  1、 你打算坐飞机去西雅图,想知道是不是需要带伞,于是你分别打电话给三位在西雅图的朋友。每个朋友都有 2/3 的几率说真话,1/3 的几率在骗你。如果他们都说‘会下雨’,西雅图下雨的概率是多少?

  2、 假如在一个等边三角形的三个角上都有一只蚂蚁,每只随机选择方向然后直走一直到另一个边缘,三只蚂蚁互相不交汇的几率是多少?如果有 n 只蚂蚁在 n 角形中,概率又是多少?

  3、 在 100! 的结果里有多少个零?

  Uber

  1、 想象一下你在一家医院工作。患者来就诊的频率符合泊松分布,而医生照顾患者的频率符合均匀分布。请写一个函数或一段代码来输出患者的平均等待时间和医生在某日的参与度。

  领英

  1、 你正在攀爬一个 n 阶的楼梯,你可以采取任何数量的 k 个步骤。你到达楼梯顶部有多少不同的方式?(这是楼梯问题的修改版)

(作者:机器之心 编辑:ahtianen)


上一篇:在华连设研发中心 苹果内忧外患

下一篇:苹果:软件毛病多因为招了太多印度人!

合作伙伴

合作伙伴

扫码立即关注