机器学习面试题

作者 : 开心源码 本文共3528个字,预计阅读时间需要9分钟 发布时间: 2022-05-13 共224人阅读

1. 什么是数据标准化,为什么要进行数据标准化?

我认为这个问题需要重视。数据标准化是预解决步骤,将数据标准化到一个特定的范围能够在反向传播中保证更好的收敛。一般来说,是将该值将去平均值后再除以标准差。假如不进行数据标准化,有些特征(值很大)将会对损失函数影响更大(就算这个特别大的特征只是改变了1%,但是他对损失函数的影响还是很大,并会使得其余值比较小的特征变得不重要了)。因而数据标准化可以使得每个特征的重要性更加均衡。

2. 解释什么是降维,在哪里会用到降维,它的好处是什么?

降维是指通过保留少量比较重要的特征,去除少量冗余的特征,减少数据特征的维度。而特征的重要性取决于该特征能够表达多少数据集的信息,也取决于使用什么方法进行降维。而使用哪种降维方法则是通过反复的实验和每种方法在该数据集上的效果。一般情况会先使用线性的降维方法再使用非线性的降维方法,通过结果去判断哪种方法比较合适。而降维的好处是:

(1)节省存储空间;

(2)加速计算速度(比方在机器学习算法中),维度越少,计算量越少,并且能够使用那些不适合于高维度的算法;

(3)去除少量冗余的特征,比方降维后使得数据不会既保存平方米和平方英里的表示地形大小的特征;

(4)将数据维度降到2维或者者3维使之能可视化,便于观察和挖掘信息。

(5)特征太多或者者太复杂会使得模型过拟合。

3. 如何解决缺失值数据?

数据中可能会有缺失值,解决的方法有两种,一种是删除整行或者者整列的数据,另一种则是使用其余值去填充这些缺失值。在Pandas库,有两种很有用的函数用于解决缺失值:isnull()和dropna()函数能帮助我们找到数据中的缺失值并且删除它们。假如你想用其余值去填充这些缺失值,则可以是用fillna()函数。

4. 解释聚类算法

https://blog.csdn.net/qq_30262201/article/details/78799926

5. 你会如何进行探究性数据分析(EDA)?

EDA的目的是去挖掘数据的少量重要信息。一般情况下会从粗到细的方式进行EDA探究。一开始我们可以去探究少量全局性的信息。观察少量不平衡的数据,计算一下各个类的方差和均值。看一下前几行数据的信息,包含什么特征等信息。使用Pandas中的df.info()去理解哪些特征是连续的,离散的,它们的类型(int、float、string)。接下来,删除少量不需要的列,这些列就是那些在分析和预测的过程中没有什么用的。

比方:某些列的值很多都是相同的,或者者这些列有很多缺失值。当然你也可以去用少量中位数等去填充这些缺失值。而后我们可以去做少量可视化。对于少量类别特征或者者值比较少的可以使用条形图。类标和样本数的条形图。找到少量最一般的特征。对少量特征和类别的关系进行可视化去取得少量基本的信息。而后还可以可视化两个特征或者三个特征之间的关系,探究特征之间的联络。

你也可以使用PCA去理解哪些特征更加重要。组合特征去探究他们的关系,比方当A=0,B=0的类别是什么,A=1,B=0呢?比较特征的不同值,比方性别特征有男女两个取值,我们可以看下男和女两种取值的样本类标会不会不一样。

另外,除了条形图、散点图等基本的画图方式外,也可以使用PDF\CDF或者者覆盖图等。观察少量统计数据比方数据分布、p值等。这些分析后,最后即可以开始建模了。

一开始可以使用少量比较简单的模型比方贝叶斯模型和逻辑斯谛回归模型。假如你发现你的数据是高度非线性的,你可以使用多项式回归、决策树或者者SVM等。特征选择则可以基于这些特征在EDA过程中分析的重要性。假如你的数据量很大的话也可以使用神经网络。而后观察ROC曲线、查全率和查准率。

6. 你是怎样考虑使用哪些模型的?

其实这个是有很多套路的。我写了一篇关于如何选择合适的回归模型,链接在这(https://towardsdatascience.com/selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef)。

7. 在图像解决中为什么要使用卷积神经网络而不是全连接网络?

这个问题是我在面试少量视觉公司的时候遇到的。答案可以分为两个方面:首先,卷积过程是考虑到图像的局部特征,能够更加精确的抽取空间特征。假如使用全连接的话,我们可能会考虑到很多不相关的信息。其次,CNN有平移不变性,由于权值共享,图像平移了,卷积核还是可以识别出来,但是全连接则做不到。

8. 是什么使得CNN具备平移不变性?

正如上面解释,每个卷积核都是一个特征探测器。所以就像我们在侦查一样东西的时候,不论物体在图像的哪个位置都能识别该物体。由于在卷积过程,我们使用卷积核在整张图片上进行滑动卷积,所以CNN具备平移不变性。

9. 为什么实现分类的CNN中需要进行Max-pooling?

Max-pooling可以将特征维度变小,使得减小计算时间,同时,不会损失太多重要的信息,由于我们是保存最大值,这个最大值可以了解为该窗口下的最重要信息。同时,Max-pooling也对CNN具备平移不变性提供了很多理论支撑,详细可以看吴恩达的benefits of MaxPooling(https://www.coursera.org/learn/convolutional-neural-networks/lecture/hELHk/pooling-layers)。

10. 为什么应用于图像切割的CNN一般都具备Encoder-Decoder架构?

Encoder CNN一般被认为是进行特征提取,而decoder部分则使用提取的特征信息并且通过decoder这些特征和将图像缩放到原始图像大小的方式去进行图像切割。

11. 什么是batch normalization,原理是什么?

Batch Normalization就是在训练过程,每一层输入加一个标准化解决。

深度神经网络之所以复杂有一个起因就是因为在训练的过程中上一层参数的升级使得每一层的输入一直在改变。所以有个办法就是去标准化每一层的输入。具体归一化的方式如下图,假如只将归一化的结果进行下一层的输入,这样可能会影响到本层学习的特征,由于可能该层学习到的特征分布可能并不是正态分布的,这样强制变成正态分布会有肯定影响,所以还需要乘上γ和β,这两个参数是在训练过程学习的,这样可以保留学习到的特征。

image

神经网络其实就是一系列层组合成的,并且上一层的输出作为下层的输入,这意味着我们可以将神经网络的每一层都看成是以该层作为第一层的小型序列网络。这样我们在使用激活函数之前归一化该层的输出,而后将其作为下一层的输入,这样即可以处理输入一直改变的问题。

12. 为什么卷积核一般都是3*3而不是更大?

这个问题在VGGNet模型中很好的解释了。主要有这2点起因:第一,相对于用较大的卷积核,使用多个较小的卷积核可以取得相同的感受野和能取得更多的特征信息,同时使用小的卷积核参数更少,计算量更小。第二:你可以使用更多的激活函数,有更多的非线性,使得在你的CNN模型中的判决函数有更有判决性

13. SVM与树模型之间的区别

(1)SVM

SVM是通过核函数将样本映射到高纬空间,再通过线性的SVM方式求解分界面进行分类。对缺失值比较敏感可以处理高纬度的问题可以避免局部极小值的问题可以处理小样本机器学习的问题

(2)树模型

可以处理大样本的问题易于了解和解释会陷入局部最优解易过拟合

14 . L1范式和L2方式的区别

(1)L1范式是对应参数向量绝对值之和

(2)L1范式具备稀疏性

(3)L1范式可以用来作为特征选择,并且可解释性较强(这里的原理是在实际Loss function中都需要求最小值,根据L1的定义可知L1最小值只有0,故可以通过这种方式来进行特征选择)

(4)L2范式是对应参数向量的平方和,再求平方根

(5)L2范式是为了防止机器学习的过拟合,提升模型的泛化能力

面试需要熟习技术

1.熟习python、C/C++、Git

2.用过opencv(计算机视觉库)、dlib(机器学习、人脸识别相关库)、Sklearn,keras、tensorflow等,熟习少量常用的机器学习算法比方SVM,adaboost等

3、较流畅的英文技术材料阅读能力;对系统优化和算法模型应用有浓厚兴趣;阅读过相关源码,了解该类架构设计者优先;具有分布式计算框架的使用和并行算法的开发经验者优先。

4、精通Linux系统应用开发;理解机器学习算法原理,对算法高效实现有浓厚兴趣,有肯定机器学习算法实现经验;有并行计算、GPU计算相关经验者优先。

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 机器学习面试题

发表回复