谷歌等巨头机器学习面试题

原始来源:learndatasci.com译文来源:新智元

译者:熊笑

很多人都想知道,谷歌、微软、Facebook 这样的顶级科技公司,在面试大数据机器学习工程师时会问些什么问题。可惜的是,这些公司的面试者事先都要签保密协议,不允许把面试题目泄露出去。不过美国一家做企业点评与职位搜索的职场社区 glassdoor 还是想方设法搞到了面试题目。让我们现在就揭开这层神秘的面纱吧!

一般性问题

苹果

1.假设你面临着数百万用户,每个用户有数百笔交易,涉及成千上万种产品。你如何对这些用户进行有意义的分类?

微软

2.请描述一个你参与的项目,讲讲它有什么独特之处。

3.如何用高基数(high-cardinality)处理类别特征(categorical feature)?

4.如何 summarize 一个 Twitter feed?

5.在应用于机器学习算法之前,清理数据的步骤是什么?

6.如何测量数据点之间的距离?

7.请定义方差(variance)。

8.请描述箱形图(box plot)和直方图(histogram)之间的区别,并举出用例。

 

Twitter

9.你会用哪些 feature 来为用户构建一个推荐算法?

Uber

10.选一个你真正喜欢的产品或 app,说说你打算怎么改进它。

11.如何在分布(distribution)中找到异常点(anomaly)?

12.如果分布中的某种特定趋势是由于一个异常点,你将如何着手调查?

13.你如何评估 Uber 对交通和驾驶状况的影响?

14.你会用哪些参数来追踪 Uber 的付费广告是否真正获得了新客户?你会用什么办法来算出一个理想的新客户获取成本?

LinkedIn

15.大数据工程师,你能解释一下什么是 REST 吗?

 

机器学习类问题

谷歌

16.你为什么要用特征选择?

17.如果两个预测因子高度相关,对逻辑回归系数的影响是什么?系数的置信区间是多少?

18.高斯混合模型(Gaussian Mixture Model)和 K-Means 的区别是什么?

19.如何为 K-Means 拾取 k ?

20.何时应用高斯混合模型?

21.假设一个聚类模型的标签是已知的,如何评估该模型的性能?

微软

22.举一个你自豪的机器学习项目的例子。

23.描述任意一个机器学习算法。

24.描述Gradient Boosting 是如何工作的。

25.数据挖掘:描述一下决策树模型。

26.数据挖掘:神经网络是什么?

27.阐释一下偏差-方差权衡(Bias-Variance Tradeoff)。

28.如何处理不平衡的二元分类?

29.L1 和 L2 正则化有何不同?

 

Uber

30.你会用什么 feature 来预测 Uber 司机是否会接受一次乘车请求?你会用什么有监督学习算法来解决这一问题?如何比较算法的结果?

LinkedIn

31.给出并描述三种不同的核函数,及各自的应用条件。

32.描述一种机器学习中使用的方法。

33.如何处理稀疏数据?

IBM

34.如何防止过拟合?

35.如何处理数据中的离群值(outlier)?

36.与分类模型相比,如何分析回归模型的预测性能?

37.与简单的线性回归模型相比,如何评估逻辑回归模型?

38.有监督学习和无监督学习的区别是什么?

39.交叉验证(cross-validation)是什么?为什么要使用交叉验证?

40.用于评估预测模型的矩阵(matrix)名称是什么?

41.逻辑回归系数和比值比(Odds Ratio)之间的关系是什么?

42.主成分分析(Principal Component Analysis,PCA)和线性和二次判别分析(Linear & Quadratic Discriminant Analysis ,LDA & QDA)之间的关系是什么?

43.如果你有一个分类变量(categorical dependent variable),以及一个混合分类和连续变量(a mixture of categorical and continuous independent variables),你会用什么算法、方法或工具来进行分析?

44.商业分析:逻辑和线性回归的区别是什么?如何避免局部极小值(localminima)?

Salesforce

45.你会使用什么数据和模型来测量损耗/流失?如何测量模型的性能?

46.请尝试对非技术人员解释一种机器学习算法。

 

Capital One

47.如何开发一个预测信用卡诈骗的模型?

48.如何处理缺失或不良数据?

49.如何从已有特征中得出新特征?

50.在客户性别预测中,如果你只有 100 个数据点,你的预测可能会出现什么问题?

51.假设已有两年的交易记录,你会用哪些特征来预测信用风险?

52.请设计一个会下三连棋(Tic-tac-toe)的AI 程序。

Zilow

53.请解释一下什么是过拟合,以及如何避免。

54.为什么 SVM 需要在支持向量间最大化margin?

Hadoop

Twitter

55.如何用 Map/Reduce 将大图形分割成小块,并根据数据的快速/动态变化并行边缘计算?

56.数据工程师:给定一个粉丝list,格式为:123, 345234, 678345, 123…其中第一列是粉丝 ID,第二列是被粉者 ID。目标是找到所有互粉组(如上例中的 123,345)。当 list 超出内存时,如何使用 Map / Reduce 解决问题?

 

Capital One

57.数据工程师:Hadoop 序列化(serialization)是什么?

Explain a simple Map/Reduce problem.

58.阐释一个简单的 Map / Reduce 问题。

Hive

LinkedIn

59.数据工程师:请写一个输出情感分数的 Hive UDF。例如,假如好=1,坏=-1,平均数=0,那么餐厅得到的「食物好,服务差」的评价,得分可能为 1 - 1 = 0

 

Spark

Capital One

60.数据工程师:请阐述在 Spark 中,RDD 如何使用 Scala 语言工作?

统计和概率问题

谷歌

61.请向非技术人员解释交叉验证(Cross-validation)。

Describe a non-normal probability distribution and how to applyit.

62.请描述非正态概率分布(non-normal probability distribution)以及如何应用。

 

微软

63.数据挖掘:什么是异方差(heteroskedasticity),如何解决?

Twitter

64.已有 Twitter 用户数据,如何测量参与度(engagement)?

 

Uber

65.时间序列(Time Series)预测技术是什么?

66.阐释主成分分析(PCA)及其使用的方程。

67.如何解决多重共线性(Multicollinearity)?

68.请写出推特和Facebook 上优化广告费用支出的方程。

 

Facebook

69.从一副牌中抽取两张,同一花色的出现概率是多少?

IBM

70.p-value 和置信区间是什么?

 

Capital One

71.数据分析师:假设你有 70 颗红色弹珠,绿色和红色弹珠的比例是 2 :7,请问绿色弹珠有多少颗?

72.纽约市的日常上下班交通数据分布应该是什么样子的?

73.一个骰子,扔 6 次出现 1 个 6 的几率,与扔 12 次至少出现两个 6 的几率,以及扔 600 次至少出现 100 次 6 的几率,哪个最大?

PayPal

74.中心极限定理(Central Limit Theorem)是什么,如何证明?有何应用?

编程和算法

谷歌

75.数据分析师:请写一个判定任意二进制树height 的程序。

微软

76.请创建一个检查某个词是否是回文的函数。

Twitter

77.请构建一个幂集(power set)。

How do you find the median of a very large dataset?

78.如何在一个巨大的数据集中找到中位数?

Uber

79.数据工程师:编写一个计算给定数字平方根(精确到百分位)的函数。然后用缓存机制优化函数,避免冗余计算。

 

Facebook

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

81.写一个函数,输入两个已排序的 list,在一个排序 list 中输出其并集。

 

LinkedIn

82.数据工程师:编写代码,确定一个字符串中的括号是否平衡?

83.如何在一个二进制搜索树中找到第二大element?

84.写一个函数,输入两个排序的向量,输出一个排序的向量。

85.面对一个数字流输入,如何在运行中找到最频繁出现的数字?

86.写一个函数,可以将一个数字加到另一个数字上,就像 pow()函数一样。

87.将一个大字符串拆分成有效字段,存储在字典中。如果字符串无法拆分,return “false”。你的解决方案的复杂性是怎样的?

 

Salesforce

 

88.查找文档最常用的词的计算复杂性是什么?

89.面对10 TBs 的非结构化客户数据,如何发现并提取有价值的信息?

 

Capital One

90.数据工程师:如何「拆散」两个数列(就像 SQL 中的 JOIN 一样,只不过是反过来)?

91.创建一个可以做添加的函数,数字表示为两个linked list。

92.创建一个计算矩阵和的函数。

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

Paypal

94.写一个函数,让它能在 O(n)时间内读取一个句子并逆向打印出来。

95.写一个函数,输入一个数列,可以在O(n)  时间内将其按所有可能性分成两列数组,然后打印出这两个数组之间可能的最大差值。

96.写一个执行合并排序的程序。

SQL 问题

微软

97.数据分析师:定义和解释聚集索引和非聚集索引之间的不同。

98.数据分析师:return 表的行计数有哪些不同的方法?

 

Facebook

99.数据工程师:给定一个原始数据表,如何用 SQL 执行 ETL(Extract,Transform,Load)以获取所需格式的数据?

100.如何编写一个 SQL 查询,计算涉及两个连接的某个确定属性的频率表?如果希望 ORDER BY 或 GROUP BY 某些属性,需要做哪些变化?如何描述 NULL?

 

LinkedIn

101.数据工程师:如何提高 ETL(Extract, Transform, Load)的吞吐量(throughput)?

智力和文字游戏

谷歌

102.有 10 包弹珠,每包里有 10 个弹珠。其中一包和其他包重量不同,如果只能进行一次称重,如何找出这一包?

Facebook

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

104.假设有一个等边三角形,三个角上都有一只蚂蚁,每只随机选择方向,沿着三角形的边走,那么这些蚂蚁不发生碰撞的几率是多少?如果有 n 只蚂蚁在一个有 n 个角的多边形中,概率又是多少?

105.在 100 阶乘(即 100!)里有多少个零?

 

Uber

106.假设你在一家医院工作。患者就诊的频率符合泊松分布(Poisson Distribution),而医生照顾患者的频率符合均匀分布(Uniform Distribution)。请写一个函数或一段代码,能够给出患者的平均等待时间和医生在任意一天所照顾到的患者总数。

LinkedIn

107.你在爬一个有 n 阶台阶的楼梯,你可以用任何 k 数量的步骤。那么,到达楼梯顶部有多少不同的方式?(这是楼梯问题的修改版)

转载请注明:《 谷歌等巨头机器学习面试题 | 我爱计算机