今天去参加了阿里的数据挖掘工程师面试,很遗憾,一面被刷了,在此总结一下得失。
首先,一面的面试官很nice,聊得挺好的。
面的数据挖掘岗位,没有问编程语言的问题,主要是问了我做的两个项目,一个hadoop和一个多标记的。
针对项目里的一些问题问了一下,并且深入的 基础知识,这部分达的不好;
最后让我写一个Sql查询,是查询一个商家店里购买记录表,查找复购人数量,具体应该是用到group by,因为我sql不是很熟,没写出来。
接着又将这个表扩大,用Map/reduce实现上面的查找,问如何对数据进行分片。首先如果按商家分,但是淘宝的商家很多,而且有的商家交易记录很少,有的交易记录很大;
后来又说均分,问题是会数据破坏,例如一个商家的数据可能会被分到不同的map里;最后在提示下可以选择通过用户ID来分片,因为用户在一个月的交易数量不会太多,也比较平均。
总结一下:
1.数据挖掘的基础不是很好,因为我算转行到数挖的,而且直接做了多标记,基础的算法理解的不够透彻。阿里对基础的要求很高,最好将公式推导并理解;
2.sql方面不是很熟,阿里的数据挖掘对前期的数据处理很关注,基本使用sql去分析一下数据的结构,很重要;
3.阿里的算法并不太高大上,像多标记这种算法在实际中应用很少,更多的是二类、多类分类,线性回归、逻辑回归、SVM、决策树、随机森林这些算法需要深入理解,并且会实现。
4.需要一定的数学功底和英文的阅读能力;
5.map/reduce思想最好了解一下,阿里的算法基本都是在ODPS上并行的;
6.对编程语言要求不高,会java/python或其他都行