热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据挖掘面试题(2)

数据挖掘和机器学习的面试问题数据挖掘和机器学习的面试问题人工智能遇见磐创百家号18-07-2522:43人工智能遇见磐创百家号18-07-2522:43人工智能遇见磐

数据挖掘和机器学习的面试问题

人工智能遇见磐创

百家号18-07-2522:43

 

在过去的几个月里,我面试了许多公司涉及数据科学和机器学习的实习岗位。介绍一下我的背景,我研究生期间的方向是机器学习,计算机视觉,并且以前大部分时间都是在研究学术,但在早期有8个月的创业经历(与ML无关)。我面试的岗位包括数据科学、传统机器学习、自然语言处理或者是计算机视觉,并且面试的都是像亚马逊、特斯拉、三星、Uber、华为这些大公司,也有许多创业公司。

 

今天,我将会分享所有我面试时遇到的问题,并分享如何去回答这些问题。这些问题中有些是比较正常的并且有一定的理论背景,但有一些问题则很有创新性。对于一些普通的面试题,我就简单的列一下,因为这些题在网上都很容易找到。主要深入讲解一下比较少见的面试。我希望阅读这篇文章后,能够帮助你在机器学习面试中表现的更好,并且找到你梦寐以求的工作。

 

让我们开始吧:

1. 如何权衡偏差和方差?

2. 什么是梯度下降?

3. 解释一下过拟合和欠拟合,如何解决这两种问题?

4. 如何处理维度灾难?

5. 什么是正则化项。为什么要使用正则化,说出一些常用的正则化方法?

6. 讲解一下PCA原理

7. 为什么在神经网络中Relu激活函数会比Sigmoid激活函数用的更多?

 

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

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

 

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

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

(1)节省存储空间;

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

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

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

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

 

10. 如何处理缺失值数据?

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

 

11. 解释聚类算法

请参考(https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68--详细讲解各种聚类算法)

 

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

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

 

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

 

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

 

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

 

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

 

13. 你是怎么考虑使用哪些模型的?

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

 

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

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

 

15. 是什么使得CNN具有平移不变性?

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

 

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

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

 

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

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

 

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

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

 

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

来自网络

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

 

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

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

 

20. 你有一些跟机器学习相关的项目吗?

对于这个问题,你可以从你做过的研究与他们公司的业务之间的联系上作答。 你所学到的技能是否有一些可能与他们公司的业务或你申请的职位有关? 不需要是100%相吻合的,只要以某种方式相关就可以。这样有助于让他们认为你可以在这个职位上所产生的更大价值。

 

21. 解释一下你现在研究生期间的研究?平时都在做什么工作?未来的方向是什么?

这些问题的答案都跟20题的回答思路是一致的。

 

总结:

所有在我面试数据科学和机器学习岗位的时候遇到的面试题都在这里了。希望你能喜欢这篇文章并能从中学到一些新的有用的知识!

【文中所含链接】:

[1] The 5 Clustering Algorithms Data Scientists Need to Know:https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68

 

[2] select the proper regression model:

https://towardsdatascience.com/selecting-the-best-machine-learning-algorithm-for-your-regression-problem-20c330bad4ef

 

[3] benefits of max-pooling.:

https://www.coursera.org/lecture/convolutional-neural-networks/pooling-layers-hELHk


推荐阅读
  • 从0到1搭建大数据平台
    从0到1搭建大数据平台 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • Python与R语言在功能和应用场景上各有优势。尽管R语言在统计分析和数据可视化方面具有更强的专业性,但Python作为一种通用编程语言,适用于更广泛的领域,包括Web开发、自动化脚本和机器学习等。对于初学者而言,Python的学习曲线更为平缓,上手更加容易。此外,Python拥有庞大的社区支持和丰富的第三方库,使其在实际应用中更具灵活性和扩展性。 ... [详细]
  • 在现代办公环境中,高效的办公软件是提升工作效能的关键。本文将推荐几款实用且专业的办公软件,帮助用户提高工作效率。首先,微软Office套件中的Word、Excel和PowerPoint依然是最常用的工具,它们凭借强大的功能和易用性,成为众多用户的首选。此外,本文还将介绍其他一些创新的办公软件,如Google Workspace和Notion,这些工具在协作和项目管理方面表现出色,值得尝试。 ... [详细]
  • Matplotlib在数据科学中的可视化应用与技术解析
    Matplotlib和数据可视化 数据的处理、分析和可视化已经成为Python近年来最为重要的应用领域之一,其中数据的可视化指的是将数据呈现为漂亮的统计图表ÿ ... [详细]
  • 第三届人工智能、网络与信息技术国际学术会议(AINIT 2022)
    20223rdInternationalSeminaronArtificialIntelligence,NetworkingandInformationTechnology第三届 ... [详细]
  • 如何选择机器学习方法http:scikit-learn.orgstabletutorialmachine_learning_mapindex.html通用学习模式只需要先定义 ... [详细]
  • python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析
    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析。本文首先对人工智能机器学习深度学习、相关分析因果分析回归分析 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 解决Parallels Desktop错误15265的方法
    本文详细介绍了在使用Parallels Desktop时遇到错误15265的多种解决方案,包括检查网络连接、关闭代理服务器和修改主机文件等步骤。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • VC维在机器学习中的应用与解析
    VC维在机器学习中的应用与解析VC维是指在机器学习中,一个假设空间能够正确分类的最大样本数量。具体而言,如果一个假设空间能够将N个样本以所有可能的 \(2^N\) 种方式完全分开,则称该假设空间具有N的VC维。VC维是衡量模型复杂度的重要指标,对于理解模型的泛化能力和过拟合风险具有重要意义。本文详细探讨了VC维的定义、计算方法及其在机器学习中的应用,并通过实例分析展示了其在模型选择和评估中的关键作用。 ... [详细]
  • 原文:http:blog.csdn.netdamotianshengarticledetails406284171.Knn算法介绍:百度百科:http:baike.b ... [详细]
author-avatar
雨爱艳6688
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有