机器学习/数据挖掘/算法岗位面试题汇总

1、过拟合和欠拟合怎么判断,如何解决?

答:主要可以通过训练误差和测试误差入手判断是否过拟合或欠拟合。一般而言训练误差很低,但是测试误差较高,过拟合的概率较大,如果训练误差和测试误差都很高,一般是欠拟合。过拟合可以从增加样本量,减少特征数,降低模型复杂度等方面入手,实际的例子比如线性回归中,对于几十个样本的数据点就没必要用几十个变量去拟合。欠拟合则反之,需要考虑模型是否收敛,特征是否过少,模型是否过于简单入手。另外还有L1,L2正则化用于限制权重以及dropout用在神经网络中使得每次训练的网络结构多样。L1正则化其实就是讲权值的绝对值和加入损失函数,使得权值中0值比重增大,因此得到的权值较为稀疏。L2正则化则是将权重的平方和加入损失函数,使得权值分布更加平均,所以权值较为平滑。

2、特征如何构造?

答:其实特征主要针对业务来构造,业务则对应数据,举个例子,时间特征可能在交通预测方面有效,但是对于文本挖掘可能无效。因此可以考虑从数据统计分析入手,结合业务场景构造特征,后期可考虑细化特征或组合特征等。

3、逻辑回归的含义和推导?逻辑回归和线性回归的区别?

答:含义不多说,这个算法原理是最基本的。推导可以从损失函数最小化或最大似然方向入手。二者的区别曾经在面试阿里的时候被问到,当时脱口而出一个是分类一个是回归,但深层的含义或许是一个是迭代求解,一个是直接求解。望指教

4、模型怎么优化?怎么评估模型好坏?

答:模型优化主要从数据和模型两方面入手,根据具体问题来,比如过拟合且数据量太少的话可以考虑增加数据量。模型评估指标包括分类和回归,分类比如准确率,AUC值,或和业务相关的加权计算公式。这里强调下ROC曲线的AUC值是比较重要的内容,要能知道具体ROC曲线是怎么画出来的。回归的话比如MSE,RMSE或和业务相关的加权计算公式等。

5、数据如何清洗,怎么处理缺失值?

答:数据清洗主要还是通过分析数据的统计信息、分布情况、缺失情况等来定,在数据质量较好的前提下尽可能保留更多数据。缺失值的处理方法较多,也是根据具体特征和业务来定,可以随机填充、均值填充、或采用简单算法如KNN,聚类进行填充。当然,如果某些特征或某些样本的缺失率太大,可以考虑直接舍弃,是具体情况而定。

6、bagging,boosting的含义?

答:bagging主要和随机森林关联,采用有放回的抽样,所以某个样本可能出现在多棵树的训练集中也可能一次也没出现,可以并行。另外每棵树用的特征集也是从原始特征集中随机选择部分特征集作为分裂集合。boosting主要和adaboosting关联,每棵树都是根据前一棵树训练的残差作为输入的,所以一般是串行跑的,每棵树的训练集都是整个样本集,另外对特征也没做选择。

7. 欠拟合和过拟合的原因分别有哪些?如何避免?

过拟合:又叫高偏差,就是模型太过复杂,力求覆盖每个数据,对训练集预测效果非常好!但是,泛化能力不好,一旦用测试集测试,预测结果却并不好!!!线性回归和logistic回归都存在欠拟合和过拟合的问题

原因:(1)变量多(2)数据少缺乏代表性样本(3)函数(模型)过于复杂

避免:(1)减少特征数量,人工选择特征或自动选择(2)正则化

欠拟合:又叫高方差,指不能很好地拟合数据

原因:(1)模型过于简单(2)特征较少(3)数据量不够

避免:(1)增加模型的复杂度(2)增加特征数量(3)增加样本数量

 

8. 决策树的父节点和子节点的熵的大小?请解释原因。

父节点的熵更大,因为熵是用来衡量事物的无序性和混乱状态的度量,熵越大表示事物越无序和混乱,而决策树的父节点的类别较子节点类别要多,因此父节点的熵值较大。

 

9. 衡量分类算法的准确率,召回率,F1值。

准确率:预测正类中的实际正类的比例

召回率:实际正类中的预测正类比例

F1=2*召回率*准确率/(准确率+召回率),原则上F1表示召回率和精度的调和平均值

 

10. 举例序列模式挖掘算法有哪些?以及他们的应用场景。

AprioriAll算法、GSP算法、FreeSpan算法、PrefixSpan算法

应用场景:Apriori类算法在稀疏数据集的应用中比较合适,不适合稠密数据集的应用。对于有约束条件(例如相邻事务的时间间隔约束)序列模式挖掘,GSP更适用。FreeSpan和PrefixSpan在两种数据集中都适用,而且在稠密数据集中它们的优势更加明显。两者相比,PrefixSpan的性能更好一些。在实际应用中,在挖掘过程的不同阶段,数据集的特点,数据规模等因素可能不同,如果根据各阶段的特点,选择与之相应的算法,则序列模式挖掘能达到更好的效果。

此外由于Apriori类算法使用较简单,FreeSpan和PrefixSpan虽然效率高,但实现起来难度大。所以,现在大多数应用都是采用Apriori类算法的改进算法,以克服Apriori类算法执行效率不高的缺点。

 

11.相似性与相异性度量(欧氏距离、曼哈顿距离、Jaccard相似系数、余弦相似度、皮尔森相关系数)的计算

(1)欧氏距离:

 

(2)曼哈顿距离:

   

(3)Jaccard相似系数:

   

(4)余弦相似度:

    

(5)皮尔森相关系数:

   

 

12.朴素贝叶斯分类、ID3算法、关联规则

 

 

另外说一些几个相关岗位侧重点:

1、算法工程师

这个岗位的工作内容根据不同公司而定,不过一般都离不开模型算法,但是这个算法可能是图像、语音、文本或者其他业务产品的建模。所以具体准备方向也看具体的岗位要求,以图像算法为例,如今深度学习的火热不用我说,所以基本的卷积神经网络算法,图像分类,图像检测等最近几年比较有名的paper都应该读一读。有条件的话像Caffe,TensorFlow框架都要用用。

2、机器学习工程师

这个岗位基本上是和算法差不多的,而且主要服务于公司内部的一些交易数据或流量数据的建模。所以基本的机器学习算法,优化方法等理论你要清楚,再搭配一些项目或比赛的实战经验就更好了。另外有Spark的使用经验会有加分。

3、大数据平台工程师

这个岗位侧重平台开发,比如你的公司要开发这样的一个平台,以后公司的机器学习工程师跑模型都在这个平台上跑,涉及分布式系统会更多一点,算法方面不多。

4、数据挖掘工程师

这个岗位主要还是看公司,有些公司里面可能做建模工作,有些公司做数据分析或者ETL工作,所以面试的时候一定要问清楚。

5、数据分析工程师

从title也看出来主要是做数据统计分析的一些工作,老实说建模前很重要的一个工作就是需要你对自己的数据有充分的理解,不过一般机器学习岗位可以做数据分析的工作,要不处理一个问题分太多步着实麻烦。准备的话可以从比如R语言还有一些数据分析统计和可视化角度入手。算法方面的东西应该涉及不多。

6、ETL工程师

这个岗位很多公司都需要,主要是做数据的前期处理,包括数据清洗,整理,校验等等,很繁琐,但是很重要。可以从SQL等语言入手。

转载于:https://www.cnblogs.com/shujuxiong/p/9332666.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值