机器学习和生物信息学实验室联盟

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1291|回复: 11
打印 上一主题 下一主题

苦逼求职路

[复制链接]
跳转到指定楼层
楼主
发表于 2015-10-1 08:58:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
百度实习转正面经

我当时在百度的自然语言处理部实习,实习快结束时,经理找了一大牛来对我进行转正面试。以下M是面试官,W是我(我的一些回答不是正确的,主要看看面试官问题就好)
M:XX,你知道我找你干嘛吧。
W:恩恩。
M:百度这里对于实习生转正都会要求进行一个加面,你也知道实习面试一般都是比较松的。不过你也不用紧张,我们就简单谈谈。
W:好。
M:你先简单的自我介绍下吧。
W:balabala...
M:我们先考一下C++的知识吧,一个int*a = new int(10); 一个int a[] = int [10];这两个有什么区别。
W:恩...数组形式那个系统会自动回收,new的那个需要程序员自己delete掉。
M:为什么一个会自动回收,一个需要手动delete。
W:恩,好像一个是存放在栈上,一个,恩...这个有点忘。
M:还有吗?
W:恩,数组那个好像会初始化,而new的那个不会。
M:数组那个一定会初始化吗?
W:恩...是吧。
M:我们来做个题吧。有一堆数,我不知道一共有多少个,其中只有一个数是出现了一次,其他数都是出现了两次,怎么找出那个出现了一次的数。
W:恩...
M:你就告诉我,你第一个想到的思路是什么。
W:可以用hash来做。
M:怎么做。
W:可以用一个map...
M:不是说用hash来做吗?怎么用map了?
W:map不是hash吗?
M:map是map,hash是hash,你知道C++里面map是用什么实现的吗?
W:...这个不清楚哈。
M:c++里是用红黑树来实现的。
W:哦哦。
M:那你说下用hash怎么来做。
W:用一个map...
M:map不是hash。
W:哦哦,那就用map来做,遍历一遍,用一个map来保存,key的话是数字,值是数字出现的次数。
M:那如果这题有浮点数,可以用hash来做吗?
W:恩... ... 应该是不可以吧。
M:为什么?
W:恩... 浮点数的话,用hash,恩...
M:hash函数不能计算浮点数是吗。
W:恩,恩。
M:那你还有其他思路来做这题吗?
W:... ...可以用异或,因为两个相同的数异或完为0,把所有数异或一遍,剩下的就是出现一次的数了。
M:怎么用异或?
W:恩? 怎么用?先把数转成二进制的01,然后异或...
M:为什么还要转成二进制?
W:因为... ...恩,这个... ...
M:介绍一下你读研时的研究内容吧。
W:我研究的是不平衡数据的处理。传统的分类器在不平衡数据上性能会变得很差...
M:为什么?
W:恩... ...你比如说传统分类器用准确率这个指标来衡量分类效果,但是对于不平衡数据来说,如果我把所有的少数类都归为多数类,那么准确率可以很高,但是结果不是我们想要的。
M:这个只是衡量标准的问题,我也可以修改传统分类器的衡量标准,像用AUC这个来衡量,那不是可以解决了?
W:恩,这个... ...
M:有一个数据量大的不平衡数据和一个数据量小的不平衡数据,传统分类器在哪个数据集上效果更差。
W:... ...应该是数据量小的效果更差。
M:为什么?
W:恩,数据量大的话,包含更多信息吧。
M:那对不平衡数据有什么解决方法?
W:有三种解决方法。一个是对数据进行处理,比如对少数类进行过采样,对多数类进行降采样,使数据集分布大致均衡。一个是修改传统分类器,修改cost function,使其更关注少数类的分错情况。还有一个是集成方式。
M:集成方式?
W:恩,就是多个分类器集成。
M:为什么集成可以解决不平衡分类问题?
W:恩,因为每个分类器关注的重点不一样,然后集成起来以后就会取得较好的效果。你像GBDT就是一种集成分类器,它对不平衡数据的分类效果就不错。
M:介绍下GBDT吧。
W:bala bala
期间还追问了一些GBDT的问题,也比较血腥,先略过了。
M:现在有一个问题,需要用机器学习的方法来解决,你要从哪几方面入手?
W:恩... ...首先是看是什么具体问题,是分类,回归,还是聚类。然后比如是分类问题,看特征的数量,如果特征比较多的话用LR,比较少的话可以用GBDT。
M:LR是在特征比较多的时候用的?
W:恩... ...是吧。
M:还有什么要考虑的吗?
W:恩,然后看数据集的分布吧,看是不是不平衡数据问题。
M:还有吗?
W:恩,暂时想到这些。
M:我们来做到编程题吧。有两个有序链表,要合并成一个,其中重复出现的数字,只保留一个。
W:好... ...
M:我给你一些建议吧,这个跟你过没过没有关系哈,我一般面完都会给面试者提几点意见的。
W:恩恩,好,明白哈。
M:首先,你说话时总喜欢停顿,然后再从头说一遍,不知道你发现了没有。这个其实很不好,因为面试官是跟着你的思路走的,你突然断掉了,面试官会跟不上。第二点:你有很多小动作,像摸眉毛啊,转笔啊,饶头啊。这个是对面试官的不尊重。我知道这是习惯,不好改过来,不过还是希望你以后多多注意。第三点:基础不够好,希望回去好好补习。说实话,我出的那些题只是一面的程度,如果是校招面试,你连二面都到不了。第四点:就是要多问些为什么,不要知其然不知其所以然。像你现在跟着XX(我指导人)做项目,要多思考为什么要这样做,为什么不那样做。

以上就是我充满血泪史的百度转正面试,最后结果可想而知,顺利地没拿到转正offer。虽说实习了快半年,最后却没拿到offer,有点遗憾。但是还是很庆幸能在自然语言处理部呆过,能和一群NB的人共事过。最后面试我的面试官是个年轻有为的大牛,面试完还提了很多宝贵意见,还是很感谢他。

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享
回复

使用道具 举报

推荐
发表于 2015-10-1 14:01:35 | 只看该作者
话说baidu两道数据结构题目都是出烂的了……第一个异或,第二个两个指针遍历……话说500台机器那题目,没必要每台都top10吧,先求500台每个的max(线性时间复杂度), 然后从这500个里面挑出top10(常数时间复杂度) , 然后对这10台机器再做top10 (10个堆的时间复杂度), 获得的100个数据再找top10(常数) ,时间复杂度对更小(少了490nlogn-500n)………反正你都去了更牛逼的腾讯了

点评

不明觉厉  发表于 2015-10-10 13:38
哈哈,看来实习转正留百度的还是略牛逼一些 :D  发表于 2015-10-1 15:00
回复 支持 1 反对 0

使用道具 举报

板凳
发表于 2015-10-1 09:17:43 | 只看该作者
太tmd血腥了。。。谁都得挂啊。。。感觉就是被qj啊。。
回复 支持 反对

使用道具 举报

地板
发表于 2015-10-1 09:45:32 | 只看该作者
今年有同学进了阿里研发部实习,然而他竟然体检不通过被刷了。
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2015-10-1 09:59:20 | 只看该作者
网易互联网内推面经

百度转正面试过了大概两周后,经理hi上和我说:感谢你对XX(指导人)和团队的认可。比较遗憾,我综合我自己和各方意见,决定不发正式offer。吓得我赶紧上网买了本程序员面试宝典,开始苦逼求职之路。
我先是投了网易互联网的内推,后面也顺利进行到hr面了,但是后面就没消息,可能被备胎了。两轮技术面问的较一般吧,就记得两个问题。
M1:有500台机器,每台机器都保存海量的数据,怎么找出最大的top 10?
W:每台机子找出top 10,然后再在这5000里找出top 10。
M1:额,那每台机子怎么找出top 10?
W:哦,可以用一个10个节点的最小堆来做,先用前10个建一个最小堆,然后遍历剩下的数,如果数比堆顶的大,则更新最小堆,最后剩下的就是最大的top 10了。另外一种做法是,先随机的抽一部分数据,比如一共有一亿个数,先随机的抽10%的数据,也就是1千万个数,在这一千万里找top 10。然后用这top 10去过滤一遍数据,把所有小于这top 10里最小那个数的数都丢掉。如果数分布的足够随机的话,这样过滤下来,就只剩下100个数了,再在这100个数里快排,堆排一下,就能找出top 10了。
其实这题刚好在面试宝典里看过,所以忽悠的比较好。第二个面试官也问了一个比较有意思的题。
M2:我最开始有一份训练数据,有三个特征:f1,f2,f3。后面又来了一份新的训练数据,但是特征是f2,f3,f4。这两份数据的目标是一样的,也就是要预测的东西是一样的,就是特征不同。怎么用第二份数据来改善第一份数据的效果?
W:...恩,可以这样做,给第一份数据新增特征4,然后赋予特征4的平均值。给第二份数据新增特征1,然后赋特征1的平均值。这样两份数据的特征就一样了,就可以加在一起训练了。
M2:那平均值要怎么取?是取训练集的平均值,测试集的,还是所有的?
W:取训练集的。
后面我和大师妹,高冷师弟探讨这题,高冷弟说这不就是特征缺失问题吗?后面我想想确实是这样。
回复 支持 反对

使用道具 举报

7#
发表于 2015-10-3 15:00:38 | 只看该作者
面过百度的社招,当时问的问题是:
1. 一个文件包含n个自然数,最大的为10^7, 内存最大1M可用,将这n个自然数按递增排序输出;
2. 给定4个数,判断是否存在某种方式,通过加减乘除或者括号,使它的值等于24.
3. 给你n个点,如何几阶的回归拟合方程更适合。

问题1 好像是编程珠玑 书上的问题,看过没被虐,在内存里面存一个数组,一个元素占1 bit, 然后逐个读入,如果读入的是5,则将数组下标为5的元素置1, 最终将元素为1的按照下标序输出即可。
问题2 传说中得24点问题,没有关注过,残忍被虐,网上很多解决办法,什么SWC算法,回溯的方案,总之我没能让面试官开心。。。
问题3 。。。 我默默的回答了一句 一般我们选取1-3阶的就可以了,试一下,阶数太高容易过拟合。  然后面试官就和我讨论过拟合的问题了,不知道他想要的是什么。。。


供后续学弟学妹参考。。
回复 支持 反对

使用道具 举报

8#
发表于 2015-10-3 15:17:49 | 只看该作者
hxianxian 发表于 2015-10-3 15:00
面过百度的社招,当时问的问题是:
1. 一个文件包含n个自然数,最大的为10^7, 内存最大1M可用,将这n个自 ...

问题3我觉得阶数越小越好,误差越小越好,设定一个误差的阈值,然后从n往下试,直到超过了阈值就停止。这是我的想法。
回复 支持 反对

使用道具 举报

9#
发表于 2015-10-4 17:58:11 | 只看该作者
感觉每个问题都可以被虐惨了,复习着复习着,感觉没有实战的看书都是扯淡。。
心好累,找工作真不容易。。。
回复 支持 反对

使用道具 举报

10#
发表于 2015-10-4 23:44:17 | 只看该作者
这个好,学习了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

机器学习和生物信息学实验室联盟  

GMT+8, 2024-5-19 08:22 , Processed in 0.105206 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表