data-com / discussions

http://data-com.github.io
5 stars 0 forks source link

data scientist 面试题 #25

Open necogy opened 5 years ago

necogy commented 5 years ago

最近因为换工作参加了不少面试,其中有startup也有百年历史的大公司。坐标东京,仅作参考。

一般技术面试有三种:

  1. coding test: 可以在家做,有限时。Codility/ hankrank的题可能性很大。有些公司不仅会只出大题,也会有选择题,有时候可能后者难度大于前者。

  2. 深入到简历里的project细节,彻底搞明白是否candidate能说明白自己的project。

  3. 当面问interviewer感兴趣的问题。

  4. take-home assignment

很多时候是其中几类的结合,或者全部都有。

流程通常情况是三轮/四轮,有一些会到5/6轮。

一般来讲最后一轮谈offer的面试会很轻松,但最近的DS面试最后一轮都变得很Intensive...

necogy commented 5 years ago

具体如下:

I 逻辑题:题目难,时间短。 大公司特有的cognitive test并没有外包给别的coding test公司,而是采用自己专门的系统入口。有很多其公司特有场景的测试。图形逻辑测试题类似于幼儿园练习册里的找规律,但题比较难,除非专门准备过,很难拿到高/满分。这种测试都会说明不要瞎猜,这样反而会倒扣分,能做多少做多少。

G家的screening test里也有类似的逻辑题,代码故意用特殊符号写成了伪码(估计是为了公平),需要在很短时间内完成。

II. brain teaser 把一块蛋糕分成两半,蛋糕可以是任意形状,每一半都比另一半大。请问怎么分。

III. coding test:有难也有简单的,后者的话一定会考察edge case/ testing。 几个case: i. Java/html/sql/python: 都不算难,细节处理好就可以。

ii. 很多时间很短的计算题/逻辑题,coding大题相对简单。

iii. two sum的变种 three sum, 输出所有可能的pair.

其他的暂时记不得了><

III. 当面问interviewer感兴趣的问题。 i. 请向一个七岁小孩解释random forest

ii. 解释特征向量/特征值,以及他们的关系。

iii. 如何解决高维数据--> 思路大概是怎样降维/有效提取特征

iv. 如何处理不平衡数据的问题

v. 解释over-fitting并提出解决方案。

vi. 关于推荐系统的思路,能说出来哪些

vii. 解释sampling bias并举例

viii. 如何优化CNN

ix. 解释kelman filter

x. 解释如何计算camera matrix

xi. 已知旧模型工作得不错,新模型的目标值暂时没有,如何检验新模型是否work。

xii. tree-based algorithm的优缺点

xiii. regression和classification各自的evaluation方法都是什么

IV. take-home assignment 基本上课题类都和公司业务紧密相连,比如说图像处理类的就会给很多video让算一个目标值。金融类的公司可能给一个classification题算是否可以借贷。

总结: DS职位的面试准备最起码需要对自己的项目内容很熟悉,能把细节讲清楚。 其次要对Deep learning/machine learning的基础算法有清晰的概念。 coding test一般来讲对于DS职位来说不会太为难,时间不够的话准备到leetcode medium就够了。