【阿里实习,第三面居然问我有没有女朋友?!】
机器学习算法岗
下面的面试自己准备的问题都是通过我的好基友李思和臧宇私下讨论、网上搜集整理而来,对此我表示感谢,很幸运有他们两位志同道合的朋友,目前这两个傻狗已回到学校,想念他们:)。
小弟的博客:http://blog.csdn.net/ice_martin
- 目录
- 实习面试
- 自备面试问题
- 实习项目
- 转正
实习面试
之前很幸运,通过了阿里的春季招聘,当时是真的随便投的,没想到就过了。然后贴下自己的面试经历:
- 一面
- 之前的项目经历:文本分类、kaggle竞赛、验证码识别
- NLP相关知识
- SVM原理,手推一下决策函数,并说明一下决策函数的意义(新来的测试数据点只需与支持向量做一下内积即可判断分类)
- 二面
- 说一下哈希表的实现
- 说一下一哈西的实现
- 大数据集中找topK
- 如果用编程语言实现一个网络服务器该如何实现
- 逻辑回归为啥使用sigmoid函数,有何优缺点
- 逻辑回归中为啥用对数,并且为啥不用log而用ln
- 三面
- 在商品批发中(1688)会有客户进行商品报价的询问,但有时会有一些垃圾询问、友商间谍套价等非正常询问,如何设计算法排查此类情况?
- 有女朋友不(他问了这个问题我也是无语。。。)
总结一下问你的都不是特别难,感觉挺顺利的,之前准备的问题都没用上。下面贴一下自己准备的一些面试题。
期间准备的面试问题
- Bagging算法
Bagging是一种并行类的算法,代表算法为randomForest,但与 Bagging不同的是,randomForest不单对样本进行抽样,还对特征就行抽样,增加了特征的扰动。Bagging算法是一种降低方差的算法,因为是多种算法并行的集合,所以该算法对过拟合有很好的抵抗作用。 - GBDT与随机森林比较
GBDT属于Boosting(之前写成Booststrap了)类算法,是串行算法,randomForest是属于 Bagging类算法,是并行算法。GBDT降低了偏差,容易过拟合,randomForest降低了方差,不容易过拟合。randomForest在API中可以调节不平衡样本的权重,GBDT不可。GBDT调整的是上一次误差。 - KNN(分类与回归)
分类:选取K的取值,然后再训练集中找到与目标样本最近的K个样本, 然后将目标样本的类别标记为K个样本中取值最多的类别,此过程没有 训练的过程,只是一个搜索和统计的过程(一般采用kd-tree来加速搜 索)。
回归:原理与分类基本一样,不过不同的是在回归问题中把目标样本的值选取为K个样本的平均值来标记。 - LR为什么用sigmoid函数。这个函数有什么优点和缺点?为什么不用其他函数?
优点:求导好求。把正负无穷的数值压缩到(0,1),可以很好的模仿概率值。有阈值,并且在阈值附近不会陡升陡降克服了阶跃函数的缺点。
缺点:在0和1附近倒数会变成0,使得特别大的数据求导中梯度容易变为0。 - LR和SVM有什么区别,libsvm和liblinear有什么区别
LR考虑的是将全体样本远离中间那条分隔线,但对于在中线附近的点我 们不是很确信到底属于哪类。而SVM我们关心的是中线附近的点,我 们希望使这些点远离中线,所以LR考虑的是全局最大化,SVM是局部 最大化。libsvm根据liblinear实现,但libsvm不可以输出概率值,liblinear可以输出概率值。 -
Logistics推导
具体参见博客 -
k-means的k怎么取
如果是有真实数据可以进行聚类效果检验,采用ARI选取当前最大值的 K作为标准。
如果是没有真实数据进行聚类效果检验,则采用calinski_harabaz_score。
实习项目
客户聚类
- 迭代一:利用RFM模型,Kmeans++聚类
- 迭代二:改进的RFM模型,Kmeans++聚类
潜客挖掘
数据比较敏感,就不贴图了,大概就是做一些潜在客户挖掘的事情,把这些人挖出来然后重点销售推荐。
百技培训
在实习期间参加百技培训,与同组的小伙伴们一起赢得了团队第一名,之后跟同组的小伙伴建立了深(miao)深(pian)地(jiao)友(liu)谊,你懂得。
转正
转正答辩和面试其实就是问一些你在实习期间的工作,如果有产出就很好说话了,如果没有可能就比较危险,面试官问的问题基本上就是根据你的转正PPT来随机提问。贴一下我的offer:)
#阿里巴巴##算法工程师#