机器学习 百度面试题整理

RNN相对CRF的优势

 

假设高考满分为750分,现在有100万考生的成绩,求第100高的成绩值

堆来解决,这样的算法复杂度为O(nlogn)

 

桶排序  这样时间复杂度就变成了O(n)

决策树

 

机器学习的一般步骤是什么
答:1)数据分析:可视化,采样等
2)数据预处理,举了个例子
3)特征过程,随后解释了一下特征工程的重要性
4)模型选择,要根据数据的实际情况选择模型,比如样本数、特征维度balabala
5)调参,获得当前数据集上最优的参数(可以通过k折交叉进行模型评估
6)后处理(举例,为什么要后处理
7)模型评估

 

 

介绍项目
这个面试官对项目的细节问的非常详细。因为项目介绍起来跟一面差不多,但是二面面试官问的细节问题要更详细,比如某个值是怎么计算的,我记得我把论文的公式写了一下并进行了解释。

 

聚类算法

 

 

平衡二叉树

 

纸上写代码: 有一个数组,先递增后递减,返回峰值位置。(通过作差)

 

 

mysql select语句,查询出一段日期内,满足某个条件的行数

 

假如满足这个条件的行数非常多,那怎么优化?我的回答是在内存维护一个这个行数的记录,每次增删都要更新这个记录

 

 

会不会堆排序?我只知道原理,伪代码不会写,然后就换了个折半查找在纸上写了递归形式的伪代码。

 

 

逻辑回归估计参数时的目标函数    (就是极大似然估计那部分)

 

翻转二叉树 写代码

 

逻辑回归估计参数时的目标函数

 

逻辑回归估计参数时的目标函数 如果加上一个先验的服从高斯分布的假设,会是什么样  (天啦。我不知道,其实就是在后面乘一个东西,取log后就变成加一个东西,实际就变成一个正则项)

 

 

SVM在哪个地方引入的核函数
如果用高斯核可以升到多少维  (无限维)
什么是贝叶斯估计
作者:stupidjoey
链接:https://www.nowcoder.com/discuss/3243?pos=2&type=2&order=0
来源:牛客网

k折交叉验证 中k取值多少有什么关系 (我不知道,随便答,然后面试官后面问我知道bias和variance吗?估计是和这两个东西有关,  知乎上有个问题讨论了k值大小与bias和variance的关系)
过拟合了怎么办
设计一个结构存取稀疏矩阵  (面试官最后告诉我了一个极度压缩的存法,相同行或列存偏差,我当时没听懂,还不懂装懂,最后还是没记住)
平衡二叉树是什么
系统设计题,给一个query,如何快速从10亿个query中找出和它最相似的 (面试官说可以对每个query找1000个最相似的,存起来,每天离线更新)
编程题 给了一个链表,第1个结点标号为1,把链表中标号在M到N区间的部分反转
编程题 在一个字符串中,找出最长的无重复字符的字串 (这个问题还是有难度的,我碰巧想到了用hash,但没想到完整解法,用hash的解法复杂度在O(N^2),在网上查了下,好像还有更快解法)
逻辑回归的值表示概率吗?(值越大可能性越高,但不能说是概率)
分类模型和回归模型的区别
分类模型可以做回归分析吗?反过来可以吗?(我回答是分类不可以做回归,回归倒是可以做分类,不知道对不对)
作者:stupidjoey
链接:https://www.nowcoder.com/discuss/3243?pos=2&type=2&order=0
来源:牛客网

设计一个合理的电梯调度策略,调度两个电梯 ,考虑满足基本的接送需求,满足能耗最小,满足用户等待时间最短
(难到我了,我想的方法不好,面试告诉我了他的想法,类似于一个进程调度问题,每一时刻只可能有一个用户按按钮,把这条指令接收,判断当前电梯能否满足,能满足就执行,不能满足则放入一个队列里,实际情况还要细化)
常用排序算法的时间和空间复杂度
给定一个正整数向量,判断这个向量是否存在一个片段,使得反转这个片段后能够使该向量升序排列。如:1 2 4 3,就可以通过反转4 3使得向量变为1 2 3 4,即升序排列。可以输出yes,否则则输出no。

我的想法是:顺序判断向量元素,一旦出现两次降序的情况,就说明不可能通过反转一个片段得到升序排列。比如:1 2 3 6 5 4 7 9 810。当然由于编程水平有限,最终也没有达到accept。

 

l2惩罚项是怎么减小overfitting的?l1,l2等范数的通式是什么?他们之间的区别是什么?在什么场景下用什么范数?l1在0处不可导,怎么处理?

 

 

什么是高斯过程模型,怎么理解?和线性回归方法有什么关系?

2. l2惩罚项是怎么减小overfitting的?l1,l2等范数的通式是什么?他们之间的区别是什么?在什么场景下用什么范数?l1在0处不可导,怎么处理?

3. hash表是怎么实现的?有冲突的时候怎么处理?

4. stl map和hash map之间的区别是什么?

5. 线程安全是什么意思?新线程什么情况下会影响原有线程?

6. 建立一个数据结构,基于此写一段程序用于存储sparse vector,同时编写一个函数实现两个sparse vector的相加运算。

 

 

 

k-means,再比如面试官可能会问SVM为什么用在大数据上不好。

k-means 流程

 

 

 

再有一个面试官比较看重的就是数据结构中的查询和排序算法,经常会让你手写所有的代码

 

 

有SVM、LR这些基础的的公式推导,有朴素贝叶斯,也有聚类有关的,最后是两道编程题。笔试过后,收到了一面的通知。一面的面试官开场是一个智力逻辑题,然后是手写快速排序。再然后就是聊聊项目,聊些LR、贝叶斯中的基本问题。

 

 

先介绍了简历上的一些经历

第一个问题是GBDT和随机森林的区别

第二个问题是如何判断函数凸或非凸

第三个问题是项目中特征选择都是怎么做的

第四个问题是为什么会产生过拟合有哪些方法可以预防或克服过拟合

 

项目经历,算法题和机器学习的简单问题。总体来说比较简单。考核的算法题有
1. 把字符串中的一个空格替换成成两个空格,这是一个简单的数列操作问题
2. 中序前序遍历二叉树
3. 随机打乱数列,直接用算法导论上的方法
4. 列出字符串的所有子串,要用三种方法写

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *