您的位置:首页 > 职场人生

面试小结(持续更)

2018-03-18 12:19 197 查看
前言:天将降大任于斯人也,必先苦其心志,劳其筋骨,饿其体肤,空乏其身,行拂乱其所为,所以动心忍性,曾益其所不能。
1.作业帮(算法/数据挖掘实习生)
(1)从海量数据中找出前1000个最大数
解决方案:先选出1000个数来建立一个小根堆(时间复杂度为o(m),m为堆的大小),然后遍历剩下的元素,如果当前元素比堆顶元素(最小的数)小,则丢弃;反之则替换堆顶元素,进行堆调整即可(时间复杂度为n*log(m),n为数据的规模),所以总时间复杂度为o(n+n*logm) , 由于m相对于n而言非常小,所以总时间复杂度为O(n)。如果进一步优化的话,可以把这些海量数据分组进行查找前1000个最大数,最后进行归并。
(2)如何给决策树进行剪枝?
C4.5剪枝策略:如果剪枝前的损失函数为C(A),剪枝后的损失函数为C(B),如果C(B)≤C(A)则进行剪枝,直到无法剪枝才结束;
CART剪枝策略:计算所有节点的g(t) = c(t)-C(Tt) / |Tt| - 1, 选择g(t)最小的节点进行剪枝(可以进行局部剪枝),周而复始,直到只剩下一个根结点和两个叶子结点为止,最后通过交叉验证法来选择最优的决策树。
感受:感觉作业帮这次面试还是比较简单的,但是我还是挂了,其他同学当场就拿到offer了。

2. 瓜子网(算法/数据挖掘实习生)
(1)用两个队列模拟实现一个栈(队列相关方法自己定义)
(2)谈谈对SVM核函数的认识?我们可以自定义核函数吗?如果可以需要满足什么条件?
(3)假如有一个样例既出现在正样本中,又出现在负样本中,对最终的训练有何影响?
(4)谈谈GBDT与xgboost的区别。
感受:比较注重基础,一共两面,最后拿到了offer。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: