【阿里实习,第三面居然问我有没有女朋友?!】

机器学习算法岗

下面的面试自己准备的问题都是通过我的好基友李思臧宇私下讨论、网上搜集整理而来,对此我表示感谢,很幸运有他们两位志同道合的朋友,目前这两个傻狗已回到学校,想念他们:)。

小弟的博客: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推导
    具体参见博客

    http://blog.csdn.net/ice_martin/article/details/61966790
    图片说明

  • k-means的k怎么取
    如果是有真实数据可以进行聚类效果检验,采用ARI选取当前最大值的 K作为标准。
    如果是没有真实数据进行聚类效果检验,则采用calinski_harabaz_score。
    图片说明

实习项目

客户聚类

  • 迭代一:利用RFM模型,Kmeans++聚类
    图片说明
    图片说明
  • 迭代二:改进的RFM模型,Kmeans++聚类
    图片说明
    图片说明

潜客挖掘

数据比较敏感,就不贴图了,大概就是做一些潜在客户挖掘的事情,把这些人挖出来然后重点销售推荐。

百技培训

图片说明

在实习期间参加百技培训,与同组的小伙伴们一起赢得了团队第一名,之后跟同组的小伙伴建立了深(miao)深(pian)地(jiao)友(liu)谊,你懂得。

转正

转正答辩和面试其实就是问一些你在实习期间的工作,如果有产出就很好说话了,如果没有可能就比较危险,面试官问的问题基本上就是根据你的转正PPT来随机提问。贴一下我的offer:)

图片说明

#阿里巴巴##算法工程师#
全部评论
LR为什么用sigmoid函数  个人觉得答案参见这个https://www.zhihu.com/question/35322351   答案比较好,应该是通过最大熵推导出来的。  另外liblinear和libsvm的区别主要在于liblinear在原问题下求解,时间复杂度跟维度w有关,而libsvm在对偶问题下求解,没有维护w的值,最终的预测结果是\sum_{j=1}^n \alpha_j y_j x_j x_i  时间复杂度跟样本数量有关系,所以线性可分的large scale问题下liblinear都比libsvm快很多。
点赞 回复
分享
发布于 2017-09-07 20:14
厉害
点赞 回复
分享
发布于 2017-09-07 18:39
联想
校招火热招聘中
官网直投
厉害,学习学习
点赞 回复
分享
发布于 2017-09-07 18:41
大佬学什么的
点赞 回复
分享
发布于 2017-09-07 18:43
天哪,听都没听说的东西
点赞 回复
分享
发布于 2017-09-07 18:45
牛逼,是p6吗?
点赞 回复
分享
发布于 2017-09-07 18:48
你好,定薪资了么?
点赞 回复
分享
发布于 2017-09-07 18:57
厉害了,向大佬学习
点赞 回复
分享
发布于 2017-09-07 19:10
请问准备的面试题还有吗
点赞 回复
分享
发布于 2017-09-07 19:14
在这里畅所欲言你的看法吧! 那么逻辑回归中为啥用对数,并且为啥不用log而用ln啊
点赞 回复
分享
发布于 2017-09-07 19:27
随机森林那个打错了吧 应该是bagging吧。
点赞 回复
分享
发布于 2017-09-07 19:27
楼主厉害,不过我记得boost族算法是串行类算法吧,bagging算法属于并行类算法吧,随机森林应该是bagging算法的变体形式吧
点赞 回复
分享
发布于 2017-09-07 19:27
it's me!!!!!
点赞 回复
分享
发布于 2017-09-07 19:38
看来是直系的学长哈,赞!
点赞 回复
分享
发布于 2017-09-07 19:51
楼主想问下:在0和1附近倒数会变成0,使得特别大的数据求导中梯度容易变为0。这个是什么
点赞 回复
分享
发布于 2017-09-07 20:25
来膜拜 孟桑 大佬
点赞 回复
分享
发布于 2017-09-07 21:33
真·优秀
点赞 回复
分享
发布于 2017-09-07 21:37
恭喜大佬! 顺便蹭喜气~
点赞 回复
分享
发布于 2017-09-07 21:39
什么部门?
点赞 回复
分享
发布于 2017-09-07 22:18
!学习了
点赞 回复
分享
发布于 2017-09-07 23:58

相关推荐

头像
不愿透露姓名的神秘牛友
04-19 07:37
已编辑
美团 后端 300 硕士985
点赞 评论 收藏
转发
点赞 206 评论
分享
牛客网
牛客企业服务