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

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

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

2、特征如何构造?

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

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

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

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

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

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

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

6、bagging,boosting的含义?

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

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

1、算法工程师

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

2、机器学习工程师

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

3、大数据平台工程师

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

4、数据挖掘工程师

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

5、数据分析工程师

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

6、ETL工程师

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

猜你喜欢

转载自www.cnblogs.com/shujuxiong/p/9332666.html