面试小结(持续更)
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。
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。
相关文章推荐
- 面试知识点小结-持续更新
- 面试国信公司小结__20160506__李楚煌
- Android 常见面试 知识点小结
- 背包题目小结(持续更新中。。。长春赛H题)
- Hadoop -- 面试 小结
- 计算机专业人才面试小结
- IOS面试宝典(一)(持续更新)
- 面试算法小结
- java 终端输入小结,输入到数组、文件等(持续更新)
- JDSU面试归来小结----strcpy这个函数实现问题。
- 面试小结
- java面试小结——并发与多线程
- java面试小结——MQ
- C++面试小结
- 面试-事务属性小结和事务的隔离级别
- 十月百度,阿里巴巴,迅雷搜狗最新面试五十三题(持续更新中10.16)
- iOS岗位面试一及小结
- 程序员常见面试之 数据库 知识点小结(二)
- Sql面试常考题(持续添加)