100+数据科学面试问题和答案总结机器学习和深度学习贝叶斯池化算法

机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。

机器学习有下面几种定义:

(1)机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。

(2)机器学习是对能通过经验自动改进的计算机算法的研究。

(3)机器学习是用数据或以往的经验,以此优化计算机程序的性能标准。

55、什么是无监督学习

无监督学习是一种机器学习算法,用于从由输入数据组成的数据集中推断,并且学习时不需要对数据进行标记。

主要包括:聚类,降维,异常检测等

56、有哪些不同的分类算法

下图列出了最重要的分类算法。

57、朴素贝叶斯中的“朴素”是什么

这个算法很“幼稚”,因为它所做的假设可能是正确的,也可能不是。

58、如何建立随机森林模型

随机森林模型结合了许多决策树模型。所选择的决策树具有高偏差和低方差。每个决策树都取样本的子集,并进行预测。每棵决策树的结果都被记录下来,并以大多数作为答案,在分类问题中是众数,在回归问题中是均值和中位数。

59、详细解释SVM算法

SVM是支持向量机的缩写,它是一种监督机器学习算法,可以用于回归和分类。如果你的训练数据集中有n个特征,SVM尝试在n维空间中绘制它,每个特征的值是特定坐标的值。SVM基于所提供的核函数,利用超平面分离出不同的类。

60、支持向量机中的支持向量是什么

在图中,我们看到细线标记了从分类器到最近的数据点(称为支持向量)的距离(黑色的数据点)。两条细线之间的距离叫做边距。

61、支持向量机的核函数有哪些

支持向量机中一般使用四种核函数。

线性核、多项式的核、径向基核、Sigmoid核

62、详细解释决策树算法

63、决策树算法中的熵和信息增益是什么

构建决策树的核心算法有·ID3、C45等。ID3使用熵和信息增益来构造决策树。

熵:决策树是从根节点自上而下构建的,涉及到将数据划分为同构子集。ID3使用熵来检验样本的同质性。如果样本是完全均匀的,那么熵就是0如果样本是等分的,那么熵就是1。

信息增益是基于数据集在属性上分割后熵的减小。构建决策树是关于寻找返回最高信息收益的属性。

64、什么是决策树中的剪枝

剪枝是机器学习和搜索算法中的一种技术,它通过移除决策树中对实例分类作用不大的部分来减少决策树的大小。当我们删除一个决策节点的子节点时,这个过程被称为剪枝或反向分裂过程。

65、什么是逻辑回归举一个你最近使用逻辑回归的例子。

逻辑回归通常被称为logit模型,是一种通过预测变量的线性组合来预测二元分类的技术。

垃圾邮件检测、医疗的病症判断、金融的贷款评估等都是二元分类。

66、什么是线性回归

线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法,运用十分广泛。其表达形式为y=w'x+e,e为误差服从均值为0的正态分布。

x被称为自变量、y被称为因变量

67、线性模型的缺点是什么

·误差线性的假设

·它不能用于计数结果或二元结果

·它不能解决过拟合的问题

68、回归和分类的ML技术有什么不同

回归和分类机器学习技术都属于监督机器学习算法。在有监督的机器学习算法中,我们必须使用带标签的数据集来训练模型,而训练时我们必须明确地提供正确的标签,算法试图学习从输入到输出的模式。如果我们的标签是离散值,那么它将是一个分类问题,如a,B等,但如果我们的标签是连续值,那么它将是一个回归问题,如1.23,1.333等。

69、什么是推荐系统

例如IMDB、Netflix和BookMyShow的电影推荐,亚马逊、eBay和Flipkart等电子商务网站的产品推荐,YouTube视频推荐和Xbox游戏推荐。

70、什么是协同过滤

大多数推荐系统都是用协同过滤的算法进行推荐

协同过滤的一个例子是,可以根据特定用户对其他电影的评分和其他人对所有电影的评分来预测该用户的评分。这一概念广泛应用于IMDB、Netflix&BookMyShow的电影推荐,亚马逊、eBay&Flipkart等电子商务网站的产品推荐,Xbox的YouTube视频推荐和游戏推荐。

71、如何处理异常值

异常值可以通过使用单变量或任何其他图形分析方法来识别。如果离群值的数量很少,那么可以单独评估它们,但如果离群值数量很大,则可以用第99个百分位数或第1个百分位数替换这些值。

但需要注意的是,并非所有的极端值都是异常值。

72、机器学习项目一般步骤是什么

·理解业务问题

·探索数据并熟悉它。

·通过检测异常值、处理缺失值、转换变量等为建模准备数据。

·准备好数据后,开始运行模型,分析结果并调整方法。这是一个迭代的步骤,直到获得最好的可能结果。

·使用新数据集验证模型。

73、如何处理缺失的值

在识别具有丢失值的变量后,需要识别丢失值的范围。如果有任何模式,这可能导致利益和有意义的业务见解。

如果没有确定的模式,则缺失值可以用平均值或中位数(插补)代替,否则可以简单地忽略它们。如果是一个分类变量,则可以分配默认值。如果有数据的分布,则可以为正态分布给出平均值进行填充。如果丢缺失值的很多,例如超过了80%,则可以直接删除变量而不是处理缺失值。

74、您将如何定义聚类算法中的群集数?

尽管不是所有的聚类算法都需要确定集群数,但此问题主要是指k均值聚类。聚类的目的是以一个类似的属性进行分组,即组中的彼此相似,但组间相互不同。

例如,下图显示了三个不同的组。

如果您为一系列群集绘制WSS,则将获得下面显示的绘图。

该图通常称为肘部曲线。红色在图上图中圈出一个点,即群集的数量=6。这一点被称为弯曲点,在k-含义中被称为k。

75、什么是集成学习

集成学习基本上是将一组不同的学习者(个体模型)组合在一起可以保证模型的稳定性和预测能力。

76、简要描述常见的集成学习

集成学习有多种类型,下面将介绍两种更受欢迎的集成学习技术。

Bagging尝试在小样本总体上实现相似的学习者,然后取所有预测的平均值。在可以在不同的子集中使用不同的学习方法,这有助于我们减少方差误差。

Boosting是一种迭代技术,它根据最后的分类调整一次观测的权重。如果一个观测数据被错误地分类,它会试图增加这个观测数据的权重,反之亦然。Boosting降低了偏差,并建立了强大的预测模型。但是它们可能会对训练数据过度拟合。

77、什么是随机森林它是如何工作的

随机森林是一种Bagging的集成学习方法,能够执行回归和分类任务。它也用于降维,处理缺失值,异常值等。它将一组弱模型组合起来形成一个强大的模型。

在随机森林中,我们会生成多棵树,而不是一棵树。要根据属性对新数据进行分类,每个树给出一个分类。森林选择得票最多的分类(总体森林中的树),在回归的情况下,它取不同树输出的平均值。

78、如何创造随机森林

几个弱学习者结合起来就能成为一个强学习者。所涉及的步骤如下

·使用自举法在训练样本数据上构建若干决策树

·在每棵树上,每次考虑拆分时,都会从所有预测器中选择一个预测器的随机样本作为拆分候选

·预测:按多数决定原则

折叠1:训练[1],测试[2]

折叠2训练[12],测试[3]

折叠3:训练[123],测试[4]

折叠4:训练[1234],测试[5]

80、什么是Box-Cox变换

81、如果你的机器有4GB内存,你想在10GB数据集上训练你的模型。你将如何着手解决这个问题到目前为止,在你的机器学习/数据科学经验中,你是否遇到过这种问题

首先,你要问你想训练哪个ML模型。

对于神经网络:批量大小是可调的,所以调整到适合4GB的批大小就可以。

对于SVM可以使用部分拟合,将一个大数据集划分为小数据集,使用SVM的部分拟合方法。

82、你理解的深度学习是什么意思

深度学习只不过是机器学习的一个范例,它在最近几年显示出了令人难以置信的前景。这是因为深度学习与人脑的功能有很大的相似之处。

83、机器学习和深度学习的区别是什么

机器学习是计算机科学的一个领域,它赋予计算机学习的能力,而无需明确编程。机器学习可以分为以下三类。

·有监督机器学习,

·无监督机器学习,

·强化学习

深度学习是机器学习的一个子领域,其算法的灵感来自于被称为人工神经网络的大脑结构和功能。

84、最近深度学习流行的原因是什么

尽管深度学习已经存在多年,但这些技术的重大突破是在最近几年才出现的。这主要有两个原因:

·运行这些模型所需的硬件资源的增长

85、解释神经网络基础知识

数据科学中的神经网络旨在模仿人类大脑神经元,不同的神经元结合在一起执行任务。它从数据中学习概括或模式,并使用这些知识来预测新数据的输出,而无需任何人工干预。

最简单的神经网络是感知器。它包含一个神经元,执行两个操作,所有输入的线性计算和一个激活函数。

更复杂的神经网络由以下3层组成-

输入层——它接收输入

隐藏层——这是输入层和输出层之间的层。最初的隐藏层通常有助于检测低级模式,而进一步的层结合以前层的输出来发现更多的模式。

输出层——输出层是输出预测的最后一层。

下图显示了一个神经网络-

86、什么是强化学习

强化学习是学习该做什么以及如何将情况映射到行动上的一种模型。学习者没有被告知采取哪种行动,而是必须发现哪种行动会产生最大的回报。强化学习是受人类学习的启发,建立在奖惩机制的基础上。

87、什么是人工神经网络

人工神经网络是一套特定的算法,它彻底改变了机器学习。它们的灵感来自生物神经网络。神经网络能够适应输入的改变,从而在不需要重新设计输出标准的情况下产生最佳的可能结果。

88、描述人工神经网络的结构

人工神经网络的工作原理与生物神经网络相同。它由输入组成,在激活函数的帮助下,用加权和和偏差进行处理。

89、如何初始化网络中权重

这里有两种方法:我们可以将权重初始化为0,或者随机赋值。

将所有权值初始化为0:这将使您的模型类似于线性模型。所有的神经元和每一层都执行相同的操作,产生相同的输出,使深网变得无用。除了rnn/lstm的隐藏状态其他都不应该初始化为0,但是rnn/lstm在特殊情况下也可以不初始化为0

随机初始化所有权值:权值是通过非常接近0的初始化随机分配的。由于每个神经元的计算量不同,因此模型的精度更高。这是最常用的方法。

90、什么是成本函数

也被称为“损失”或“错误”,成本函数是评估您的模型性能有多好的度量。用于计算反向传播过程中输出层的误差。我们通过神经网络向后传播这个错误并在不同的训练函数中使用它。

91、什么是超参数

在机器学习的上下文中,超参数是在开始学习过程之前设置值的参数。而其他参数的值通过训练得出。也就是说,超参数会影响我们参数的训练,所以被称之为超参数。

超参数:

·定义关于模型的更高层次的概念,如复杂性或学习能力。

·不能直接从标准模型培训过程中的数据中学习,需要预先定义。

·可以通过设置不同的值,训练不同的模型和选择更好的测试值来决定

超参数的一些示例:

·树的数量或树的深度

·矩阵分解中潜在因素的数量

·学习率(多种模式)

·深层神经网络隐藏层数

·k均值聚类中的簇数

92、学习率设置不准确(过高或过低)会发生什么

当学习率太低时,模型的训练将进展得非常缓慢,因为我们只对权重进行最小的更新。在到达最小值点之前需要进行多次更新。

如果学习率设置得太高,由于权重的剧烈更新,会导致损失函数产生不希望看到的发散行为。它可能无法收敛(模型可以给出很好的输出),甚至发散(数据太混乱,网络无法训练)。

92、深度学习中Epoch、Batch和Iteration的区别是什么

Epoch——表示整个数据集的一次迭代(所有放入训练模型的内容)。

Batch-指我们不能一次将整个数据集传递到神经网络,所以我们将数据集分成几个Batch。

Iteration——如果我们有10,000张图像作为数据,而批处理大小为200。然后一个Epoch应该运行50次Iteration(10,000除以50)。

93、CNN有哪些常见的层

·卷积层——执行卷积操作的层,创建几个较小的图片窗口来查看数据。

·激活层-它为网络带来非线性,一般使用relu

·池化层—池化是一种降采样操作,可以降低特征映射的维度。

·全连接层-该层识别并分类图像中的对象。

94、池化层在CNN中是如何运作的

使用池化的方法来降低CNN的空间维度。它执行下采样操作来降低维数,并通过在输入矩阵上滑动一个滤波矩阵来创建一个汇集的特征映射。

95、什么是循环神经网络(RNNs)

这两种网络都是以它们通过在网络节点上执行的一系列数学运算来传递信息的方式命名的。一种直接提供信息(从不接触相同的节点两次),而另一种通过循环提供信息,后者称为循环。

循环网络的输入不仅是他们看到的当前输入例子,还包括他们之前感知到的。

循环神经网络在t-1时刻做出的决定会影响到它在t时刻之后做出的决定。因此网络有两个输入源,现在和最近的过去,模型将他们结合起来对新数据做出反应,就像我们在生活中做的那样。

96、LSTM网络是如何工作的

·网络决定什么该忘记,什么该记住。

·它有选择地更新单元格状态值。

·网络决定输出当前状态的哪一部分。

97、什么是多层感知机(MLP)

mlp有一个输入层、一个隐藏层和一个输出层。它与具有一个或多个隐藏层的单层感知器具有相同的结构。单层感知器只能对输出为二元(0,1)的线性可分离类进行分类,而多层感知器可以对非线性类进行分类。

98、简单解释梯度下降

要了解梯度下降,让我们先了解什么是梯度。

梯度测量的是如果输入改变一点点函数输出的变化。它只是测量所有权重的变化和误差的变化。你也可以把梯度看成是一个函数的斜率。

可以认为梯度下降是爬到山谷的底部,而不是爬上山丘。这是因为它是一种最小化给定函数(激活函数)的最小化算法。

99、什么是梯度爆炸

在训练时,如果你看到指数级增长(非常大)的误差梯度,积累并导致在训练过程中对神经网络模型权重进行非常大的更新,它们被称为梯度爆炸。在极端情况下,权值可能变得非常大,以至于溢出并导致NaN值。

这会导致模型不稳定,无法从训练数据中学习。

100、什么是梯度消失

101、什么是反向传播并解释它的工作原理。

反向传播算法是一种用于多层神经网络的训练算法。在这种方法中,将误差从网络的一端移动到网络内的所有权值,从而可以高效地计算梯度。

它有以下步骤:

·训练数据前向传播

·利用输出和目标计算导数

·反向传播用于计算wrt输出激活的误差导数

·使用先前计算的导数来计算输出

·更新权重

102、反向传播有哪些变体

随机梯度下降:我们只使用一个单一的训练例子来计算梯度和更新参数。

批量梯度下降:我们计算整个数据集的梯度,并在每次迭代时执行更新。

小批量梯度下降:这是最流行的优化算法之一。它是随机梯度下降法的一种变体,这里使用的不是单一的训练例子,而是小批量的样本。

103、有哪些不同的深度学习框架

·Pytorch

·TensorFlow

·Keras

·Caffe

104、激活函数的作用是什么

利用激活函数将非线性引入神经网络,帮助其学习更复杂的函数。没有它神经网络将只能学习线性关系,即输入数据的线性组合。

105、什么是自动编码器

自动编码器是一种简单的学习网络,旨在以最小的误差将输入转换为输出。这意味着我们希望输出尽可能接近输入。我们在输入和输出之间添加了几层,这些层的大小比输入层小。自编码器接收未标记的输入,然后对其进行编码以重构输入。

106、什么是玻尔兹曼机

玻尔兹曼机器是一个简单的学习算法,可以让它们发现在训练数据中代表复杂规律的有趣特征。玻尔兹曼机主要用于优化给定问题的权重和数量。在具有多层特征检测器的网络中,学习算法的速度很慢。“受限玻尔兹曼机器”算法只有一层特征检测器,这使得它比其他算法更快。

107、什么是Dropout和BN

Dropout是一种随机删除网络中隐藏和可见单元的技术,以防止数据过拟合(通常会删除20%的节点)。它使网络收敛所需的迭代次数翻倍。

BN是通过对每一层的输入进行归一化,使其平均输出为0,标准差为1,从而提高神经网络的性能和稳定性的技术。

108、什么是计算图

张量流中的一切都是基于创建一个计算图。它有一个节点网络,每个节点都在其中工作,节点代表数学运算,边代表张量。在计算图中,节点是输入值或用于组合值的函数。当数据流过图形时,边会收到它们的权重。输入节点的出站边用该输入值加权;来自函数节点的出站节点通过使用指定函数组合入站边的权重来加权。

所有深度学习框架都依赖于创建计算图来计算梯度下降优化所需的梯度值。通常,你必须构建前向传播图,而框架将为你处理反向微分。

静态图的优点之一是它允许对图进行强大的离线优化/调度。这意味着这些通常会比动态图更快(在每个用例中差异可能并不显著,这取决于我们的图)。缺点是处理结构化或者可变大小的数据比较复杂。

动态图是调试友好的。查找代码中的问题要容易得多,因为它允许逐行执行代码,并且你可以访问所有变量。如果你想将深度学习应用于行业的任何实际目的,这绝对是一个非常重要的特性。

THE END
1.基于协同过滤算法的电影推荐系统的设计与实现.docx基于协同过滤算法的电影推荐系统的设计与实现摘 要在本文中,我们设计了一个基于用户行为模型的系统,旨在增加电影的数量,计算用户之间的相似度,并实现可以对电影进行信息爬取,向用户推荐相似电影的功能。该系统在基于用户的协作过滤算法中使用欧几里得公式来计算用户之间的相似度,通过该方式可以得到用户之间的相似度,以...https://max.book118.com/html/2022/0610/6104050043004155.shtm
2.还是推荐电影,这次是基于物品的协同过滤用A看过的电影的评分,和其他电影的相似度相乘(红框),然后再把相乘后的结果加和(绿框),得出最后的推荐度。这里可以看到,应该向A推荐《寻龙诀》,和上一篇文章用基于用户的协同过滤算法结果是一致的。 #总结# 推荐算法的几个基本思想: 根据和你共同喜好的人来给你推荐(基于用户的) ...https://www.jianshu.com/p/92ef794d6e2b
3.SparkMLlib系列(二):基于协同过滤的电影推荐系统利用Spark在内存迭代运算、机器学习领域强悍性能的优势,使用spark处理数据挖掘问题就显得很有实际价值。这篇文章给大家分享一个spark MLlib 的推荐实战例子。我将会分享怎样用spark MLlib做一个电影评分的推荐系统。使用到的算法是user-based协同过滤。如果对Spark MLlib不太了解的,请阅读我的上一篇博客。http://www.360doc.com/content/16/1116/17/37466175_607043529.shtml
1.ssm协同过滤算法的电影推荐系统(10145)ssm协同过滤算法的电影推荐系统(10145) 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码+SQL脚本) 配套文档(LW+PPT+开题报告) 远程调试控屏包运行 三、技术介绍 Java语言 SSM框架 SpringBoot框架 Vue框架 JSP页面 Mysql数据库 IDEA/Eclipse开发 四、项目截图...https://blog.csdn.net/m0_72438098/article/details/143893991
2.python协同过滤算法实现电影推荐协同过滤是一种常用的推荐算法,它基于用户的历史行为和其他用户的行为进行推荐。在电影推荐中,协同过滤算法可以根据用户对电影的评分来推荐相似的电影给用户。 下面是一个简单的Python代码实现电影推荐的协同过滤算法: importnumpyasnp# 电影评分数据ratings={'Alice':{'Transformers':3,'Star Wars':4,'The Dark Kni...https://www.ctyun.cn/zhishi/p-332954
3.基于协同过滤算法的电影推荐系统(亮点:智能推荐协同过滤算法...5.1.2 付费电影 付费电影会根据购买的电影类型来进行协同过滤! 5.1.3 协同过滤算法的应用 原始推荐如下: 集成协同过滤算法之后,电影的推荐会随着用户的喜欢程度进行自动排序,排名靠前的为用户点击次数、点赞次数等行为来控制! 5.1.4 电影论坛 5.1.5 电影资讯 ...https://blog.51cto.com/u_14519396/8678575
4.基于协同过滤的电影推荐系统的设计与实现(协同过滤推荐算法伪代码)Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更加方便快捷地创建智能应用程序。经典算法包括聚类、分类、协同过滤、进化编程等等,并且,在 Mahout 中还加入了对ApacheHadoop的支持,使这些算法可以更高效的运行在云计算环境中。 https://cloud.tencent.com/developer/article/2059754
5.基于混合推荐算法的电影推荐系统设计与实现推荐算法自诞生以来,并不是完美无缺的,传统的推荐算法存在着或多或少的不足,比如传统的推荐算法通常会存在数据稀疏性、冷启动,推荐精度不高等问题,为了降低这些问题对推荐系统带来的不足,研究学者和专家通过不同的研究来改善以及优化不同的算法,弥补原始算法的缺陷。本文针对传统协同过滤算法中数据稀疏性以及推荐准确度...https://wap.cnki.net/touch/web/Dissertation/Article/1023602428.nh.html
6.基于知识图谱的推荐算法研究综述可解释推荐是指解释推荐理由问题的推荐算法,在向用户提供推荐结果的同时,还提供解释以阐明推荐的原因[23]。这样有助于提高推荐算法的多样性、有效性和准确性,有利于用户理解并采纳推荐结果[24-25]。 早期的推荐多数是基于内容的推荐或基于协同过滤的推荐,基于内容的推荐方法通过对用户或者项目的属性信息进行建模,是基...https://www.fx361.com/page/2023/0113/16791653.shtml