数据挖掘常见面试题

来源:互联网 发布:postman ubuntu 编辑:程序博客网 时间:2024/05/16 05:14

1、项目相关

  •  详细介绍项目
  • 从项目中在哪一方面体会最深
  •  自己项目中有哪些可以迁移到其他领域的东西
  • 除了老师的科研课题,是否有做过其他项目

2、数据结构

  • 介绍大顶堆和小顶堆
  • 二叉树的前中后遍历
  • 手写二叉树前序递归遍历算法(千万不要忘记异常处理!)
  • 介绍二叉树前序遍历非递归遍历算法

3、机器学习

  •  KNN(分类与回归)
  • CART(回归树用平方误差最小化准则,分类树用基尼指数最小化准则)
  •  Logistics(推导)
  • GBDT(利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树)
  •  随机森林(Bagging+CART)
  • SVM与随机森林比较
  • 改变随机森林的训练样本数据量,是否会影响到随机森林学习到的模型的复杂度
  •  Logistics与随机森林比较
  • GBDT与随机森林比较
  • 自己实现过什么机器学习算法
  • 推荐算法(基于用户的协同过滤,基于内容的协同过滤)
  •  如何做一个新闻推荐 

4、统计知识

  • 给定一个分类器p,它有0.5的概率输出1,0.5的概率输出0。

        Q1:如何生成一个分类器使该分类器输出1的概率为0.25,输出0的概率为0.75? Ans:连续进行两次分类,两次结果均为1则输出1,其余情况(10,01,00)均输出0。

        Q2:如何生成一个分类器使该分类器输出1的概率为0.3,输出0的概率为0.7? Tip:小明正在做一道选择题,问题只有A、B和C三个选项,通过抛一个硬币来使选择3个选项的概率相同。小明只需抛连续抛两次硬币,结果正正为A,正负为B,负正为C,负负则重新抛硬币。 Ans:连续进行4次分类(2^4=16 > 10),结果前3种情况则输出1,结果接下来7种情况则输出0,其余情况重新进行分类。

5、工程应用问题

  • Q1:给定一个1T的单词文件,文件中每一行为一个单词,单词无序且有重复,当前有5台计算机。请问如何高效地利用5台计算机完成文件词频统计工作? Ans(有问题的):将1T文件切分为5份,分配给5台计算机。每台计算机进行词频统计工作,输出一个结果为{单词:频数}的字典结果文件。将5台计算机生成的5个结果文件合并。
  •  Q2:每台计算机需要计算200G左右的文件,内存无法存放200G内容,那么如何统计这些文件的词频? Ans(不是最优):首先将文件排序,然后遍历利用list存储结果即可。(不能用字典,因为200G统计出来的结果会很大,没有那么大的内存存放字典。由于经过排序操作,遍历存储并不会使结果丢失,所以用list存储结果即可,每当一个list即将占满内存,则将其写入文件,然后清空list继续存储结果。)
  •  Q3:如何将1T的文件均匀地分配给5台机器,且每台机器统计完词频生成的文件只需要拼接起来即可(即每台机器统计的单词不出现在其他机器中)Ans1(不是很好):对1T文件中的单词进行抽样,获得其概率分布,遍历文件,然后根据首字母的概率均匀分配至5台计算机,如a到e的概率均为0.04, 0.04*5=0.2,则将所有以a-e的单词放入第1台计算机,若z的概率为0.2,则把所有以z开头的单词放入第5台计算机。缺点:不具有可扩展性,如果有100台计算机,那么可能就需要2个字母计算了,则程序就要改变。还有可能出现2台机器中有相同的单词。 Ans2(不是最优):遍历文件,对于每一个单词,获得单词中各字母的ASCII码值,然后将ASCII值之和取余。则每台机器中的单词必定是不一样。

6、其他

  •  Map-reduce,Hadoop
  • 一个袋子里有很多种颜色的球,其中抽红球的概率为1/4,现在有放回地抽10个球,其中7个球为红球的概率是多少?(伯努利试验)

0 0
原创粉丝点击