机器学习和人工智能是当今世界上最流行的技术之一。这个综合性博客包含一些最常见的机器学习面试问题,旨在帮助您复习所有必要的概念和技能,以获得您梦想的工作。这个博客是专门为您在面试前做彻底的机器学习面试准备而设计的。下面列出了 ML 工作面试中最常见的一些问题。通过它们并在您的职业生涯中取得成功!

Q1.解释机器学习、人工智能和深度学习
Q2。什么是机器学习中的偏差和方差?
Q3。什么是机器学习中的聚类?
Q4。什么是机器学习中的线性回归?
Q5.什么是机器学习中的决策树?
Q6.什么是机器学习中的过度拟合以及如何避免?
Q7.什么是机器学习中的假设?
Q8.深度学习和机器学习有什么区别?
Q9.监督机器学习和无监督机器学习有什么区别?
Q10.机器学习中的贝叶斯定理是什么?
Q11.机器学习中的PCA是什么?
Q12.机器学习中的支持向量机(SVM)是什么?
Q13.什么是机器学习中的交叉验证?
Q14.机器学习中的熵是什么?
Q15.机器学习中的 Epoch 是什么?

以下是这些机器学习面试问题分为三类:
1. 基础问题

在 Youtube 上观看我们的机器学习面试问题和答案视频:

基础问题

1. 解释机器学习、人工智能和深度学习

人们很容易对机器学习、人工智能和深度学习这三种热门技术感到困惑。这三种技术虽然彼此略有不同,但却是相互关联的。虽然深度学习是机器学习的子集,但机器学习是人工智能的子集。由于这些技术中的某些术语和技术可能会重叠,因此很容易在它们之间产生混淆。

那么,让我们详细了解一下这些技术:

  • 机器学习:机器学习涉及各种统计和深度学习技术,这些技术允许机器利用过去的经验并更好地执行特定任务,而无需受到监控。
  • 人工智能:人工智能使用大量机器学习和深度学习技术,使计算机系统能够使用具有逻辑和规则的类人智能来执行任务。人工智能应用于各个领域,因此有必要学习人工智能课程以在人工智能领域取得职业生涯。
  • 深度学习:深度学习包含多种算法,使软件能够自我学习并执行各种业务任务,包括图像和语音识别。当系统将其多层神经网络暴露于大量数据进行学习时,深度学习就成为可能。

愿意掌握人工智能和机器学习技能吗?立即查看我们与顶尖大学合作的人工智能和机器学习课程!

2.什么是机器学习中的偏差和方差?

  • 偏差是模型的平均预测值与模型正确值之间的差异。如果偏差值较高,则模型的预测不准确。因此,偏差值应尽可能低,以做出所需的预测。
  • 方差是给出训练集的预测与其他训练集的预期值之间差异的数字。高方差可能会导致输出出现较大波动。因此,模型的输出应该具有低方差。

下图显示了偏差与方差的权衡:

What are Bias and Variance

在这里,期望的结果是中心的蓝色圆圈。如果我们离开蓝色部分,那么预测就会出错。

有兴趣学习机器学习吗?报名参加我们的 机器学习培训 现在!

3.什么是机器学习中的聚类?

聚类是一种用于无监督学习的技术,涉及对数据点进行分组。聚类算法可用于一组数据点。该技术将允许您将所有数据点分类到其特定的组中。属于同一类别的数据点具有相似的特征和属性,而属于不同组的数据点具有不同的特征和属性。通过该方法可以进行数据统计分析。让我们看一下三种最流行和最有用的聚类算法。

  • K-means 聚类:当数据没有特定的组或类别时,通常使用该算法。 K-means 聚类允许您找到数据中的隐藏模式,可用于将数据分类为不同的组。变量 k 用于表示数据被分成的组数,利用特征的相似度对数据点进行聚类。在这里,簇的质心用于标记新数据。
  • 均值漂移聚类:该算法的主要目的是将候选中心点更新为均值并找到所有组的中心点。在均值漂移聚类中,与 k 均值聚类不同,不需要选择可能的聚类数量,因为它可以通过均值漂移自动发现。
  • 基于密度的噪声应用空间聚类 (DBSCAN):该聚类算法基于密度,与均值漂移聚类有相似之处。无需预设聚类数量,但与均值漂移聚类不同,DBSCAN 可识别异常值并将其视为噪声。此外,它可以毫不费力地识别任意大小和形状的簇。

4.什么是机器学习中的线性回归?

线性回归是一种监督机器学习算法。它用于查找因变量和自变量之间的线性关系以进行预测分析。

线性回归方程:

What is Linear Regression

在哪里:

  • X 是输入或自变量
  • Y 是输出或因变量
  • a 是截距,b 是 X 的系数

下面是最佳拟合线,显示了体重、Y 或因变量的数据,以及

What is Linear Regression 2

散布在情节中的 21 岁候选人的身高、X 或自变量的 ata。直线显示了最佳的线性关系,有助于根据身高预测候选人的体重。

为了获得这条最佳拟合线,应该找到 a 和 b 的最佳值。通过调整a和b的值,可以减少Y预测的误差。

这就是线性回归如何帮助找到线性关系并预测输出。

5.什么是机器学习中的决策树?

决策树用于解释为获得所需输出而必须执行的操作序列。它是一个显示操作的层次图。

What is a Decision Tree

可以根据所设置的动作层次结构为决策树创建算法。

在上面的决策树图中,针对有驾照或无驾照驾驶车辆执行了一系列操作。

6.什么是机器学习中的过度拟合以及如何避免?

当机器的数据集不足并试图从中学习时,就会发生过度拟合。因此,过度拟合与数据量成反比。

对于小型数据库,可以通过交叉验证方法绕过过拟合。在这种方法中,数据集被分为两个部分。这两个部分将包含测试和训练数据集。为了训练模型,使用训练数据集,为了测试新输入的模型,使用测试数据集。
这就是避免过度拟合的方法。

7.什么是机器学习中的假设?

机器学习允许使用可用的数据集来理解以最佳方式将输入映射到输出的特定函数。这个问题称为函数逼近。这里,需要对未知目标函数使用近似,该函数以最佳方式根据给定问题映射所有合理的观察结果。机器学习中的假设是一种模型,有助于逼近目标函数并执行必要的输入到输出映射。算法的选择和配置允许定义可以由模型表示的合理假设的空间。

在假设中,小写的h(h)用于特定的假设,而大写的h(H)用于正在搜索的假设空间。让我们简单地理解这些符号:

  • 假设 (h):假设是有助于将输入映射到输出的特定模型;该映射还可用于评估和预测。
  • 假设集 (H):假设集由一系列假设组成,可用于将输入映射到可搜索的输出。一般约束包括问题框架、模型和模型配置的选择。

8.深度学习和机器学习有什么区别?

  • 深度学习:深度学习允许机器利用人工神经网络做出各种与业务相关的决策,这也是它需要大量数据进行训练的原因之一。由于需要大量的计算能力,深度学习也需要高端系统。系统借助给定数据获取各种属性和特征,并使用端到端方法解决问题。
  • 机器学习:机器学习使机器能够利用从过去数据中获得的知识,在没有任何外部帮助的情况下做出业务决策。机器学习系统需要相对少量的数据来进行自我训练,并且大多数功能需要提前手动编码和理解。在机器学习中,给定的业务问题被分解为两个,然后单独解决。一旦获得了两者的解决方案,就将它们组合起来。

9. 监督机器学习和无监督机器学习有什么区别?

  • 监督学习:监督学习的算法使用标记数据进行训练。这些模型采用直接反馈来确认预测的输出是否确实正确。此外,输入数据和输出数据都提供给模型,这里的主要目的是训练模型在接收新数据时预测输出。监督学习提供准确的结果,主要可以分为两部分:分类和回归。
  • 无监督学习:无监督学习的算法使用未标记的数据进行训练。在无监督学习中,模型识别隐藏的数据趋势并且不接受任何反馈。无监督学习模型仅提供输入数据。无监督学习的主要目的是识别隐藏模式,从未知数据集中提取信息。也可以分为两部分,聚类和关联。不幸的是,无监督学习提供的结果相对不太准确。

10. 机器学习中的贝叶斯定理是什么?

贝叶斯定理提供了使用先验知识发生任何给定事件的概率。用数学术语来说,它可以定义为给定样本条件的真阳性率除以该条件的真阳性率与整个总体的假阳性率之和。

贝叶斯定理在机器学习中最重要的两个应用是贝叶斯优化和贝叶斯信念网络。该定理也是涉及朴素贝叶斯分类器的机器学习品牌背后的基础。

11.机器学习中的PCA是什么?

多维数据在现实世界中发挥着作用。随着维度的增加,数据可视化和计算变得更具挑战性。在这种情况下,可能必须减少数据的维度才能轻松分析和可视化数据。这是通过以下方式完成的:

  • 删除不相关的尺寸
  • 仅保留最相关的尺寸

这就是使用主成分分析(PCA)的地方。

PCA 的目标是找到一组新的不相关维度(正交),并根据方差对它们进行排名。

PCA的机制:

  • 计算数据对象的协方差矩阵
  • 按降序计算特征向量和特征值
  • 选择初始的 特征向量以获得新的维度
  • 最后将初始的n维数据对象变为N维

例子: 下面是两张图,显示数据点或对象和两个方向,一个是绿色,另一个是黄色。图2是通过旋转图1得到的,使得x轴和y轴分别代表绿色和黄色方向。

Explain Principal Component Analysis (PCA)

Output from PCA

数据点旋转后,可以推断绿色方向(x 轴)给出了最适合数据点的线。

这里,表示的是二维数据;但在现实生活中,数据是多维且复杂的。因此,在认识到每个方向的重要性之后,可以通过切断不太重要的方向来减少维度分析的范围。

现在,我们将讨论关于 PCA 的另一个重要的机器学习面试问题。

12.什么是机器学习中的支持向量机(SVM)?

SVM是一种机器学习算法,主要用于分类。它是在特征向量的高维之上使用的。

以下是SVM分类器的代码:

# 引入所需库 from sklearn import datasets from sklearn.metrics import fusion_matrix from sklearn.model_selection import train_test_split # 堆叠 Iris 数据集 iris = datasets.load_iris() # A -> features and B -> label A = iris.data B = iris .target # 将 A 和 B 分解为训练数据和测试数据 A_train, A_test, B_train, B_test = train_test_split(A, B, random_state = 0) # 训练线性 SVM 分类器 from sklearn.svm import SVC svm_model_linear = SVC(kernel = '线性', C = 1).fit(A_train, B_train) svm_predictions = svm_model_linear.predict(A_test) # A_test 的模型准确率 precision = svm_model_linear.score(A_test, B_test) # 创建混淆矩阵 cm = fusion_matrix(B_test, svm_predictions)

13.什么是机器学习中的交叉验证?

交叉验证允许系统提高给定机器学习算法的性能,该算法从数据集中输入大量样本数据。此采样过程的目的是将数据集分解为具有相同行数的较小部分,从中选择随机部分作为测试集,其余部分保留为训练集。交叉验证由以下技术组成:

  • 保留法
  • K折交叉验证
  • 分层k折交叉验证 
  • 保留 p-out 交叉验证

14.机器学习中的熵是什么?

机器学习中的熵衡量需要处理的数据的随机性。给定数据中的熵越大,从数据中得出任何有用的结论就越困难。例如,让我们以抛硬币为例。此行为的结果是随机的,因为它不利于正面或反面。在这里,任意次数的抛掷结果都无法轻易预测,因为翻转动作与可能的结果之间没有明确的关系。

15. 机器学习中的 Epoch 是什么?

机器学习中的纪元用于指示机器学习算法完成其工作的给定训练数据集中的传递次数。一般来说,当数据量很大时,会被分成几个批次。所有这些批次都会经过给定的模型,这个过程称为迭代。现在,如果批量大小包含完整的训练数据集,则迭代次数与历元的次数相同。
如果有多个批次,则使用的公式为 d*e=i*b,其中 d 是数据集,e 是 epoch 数,i 是迭代次数,b 是批次大小。

中级问题

16. 机器学习有哪些类型?

这是每个人都必须知道的最基本的面试问题之一。

所以,基本上,机器学习分为三种类型。它们的描述如下:

监督学习:在这种类型的机器学习中,机器在标记数据的监督下学习。有一个训练数据集,机器在该数据集上进行训练,并根据训练给出输出。

three types of Machine Learning techniques

无监督学习:与监督学习不同,这种类型的机器学习具有未标记的数据。无监督学习在完全没有监督的情况下处理数据。无监督学习试图识别数据中的模式并形成相似实体的集群。之后,当新的输入数据输入到模型中时,它不会识别实体;相反,它将实体放在相似对象的集群中。

Unsupervised Learning

Unsupervised Learning 2

强化学习:强化学习包括学习和遍历以找到最佳可能移动的模型。强化学习算法的构造方式是尝试在奖励和惩罚理论的基础上找到最佳可能的行动组合。

Reinforcement Learning

Reinforcement Learning 2

Reinforcement Learning 3

17.区分机器学习中的分类和回归

在机器学习中,存在基于监督学习和无监督学习的各种类型的预测问题。它们是分类、回归、聚类和关联。在这里,我们将讨论分类和回归。

分类:在分类中,创建机器学习模型,帮助将数据区分为不同的类别。根据输入参数对数据进行标记和分类。

例如,必须根据一些记录的数据来预测特定产品的客户流失情况。客户要么会流失,要么不会。因此,对此的标签将是“是”和“否”。

回归:它是创建模型的过程,用于将数据区分为连续的实际值,而不是使用类或离散值。它还可以根据历史数据识别分布运动。它用于根据变量的关联程度来预测事件的发生。

例如,天气状况的预测取决于温度、气压、太阳辐射、海拔和距大海的距离等因素。这些因素之间的关系有助于预测天气状况。

18. 如何确定机器学习算法对于特定问题的适用性?

要确定针对特定问题的机器学习算法,应遵循以下步骤:

步骤1: 问题分类:问题的分类取决于输入和输出的分类:

  • 对输入进行分类:输入的分类取决于是否有标记的数据(监督学习)或未标记的数据(无监督学习),或者是否必须创建与环境交互并自我改进的模型(强化学习)。
  • 对输出进行分类:如果需要将模型的输出作为一个类,则需要使用一些分类技术。

如果输出是数字,则必须使用回归技术;如果输出是不同的输入聚类,则应使用聚类技术。

第2步: 检查现有算法:对问题进行分类后,应考虑可用于解决分类问题的可用算法。

步骤3: 实现算法:如果有多种算法可用,那么所有算法都将被实现。最后,选择提供最佳性能的算法。

19. 什么是方差膨胀因子?

方差膨胀因子 (VIF) 是对许多回归变量集合中多重共线性量的估计。

VIF = 模型的方差 / 具有单个自变量的模型的方差

必须为每个自变量计算该比率。如果 VIF 高,则表明自变量的共线性较高。

20.什么是混淆矩阵?

混淆矩阵用于解释模型的性能并给出分类问题的预测摘要。它有助于识别类别之间的不确定性。

混淆矩阵给出了正确和错误值以及错误类型的计数。模型的准确性:

Accuracy of the model

例如,考虑以下混淆矩阵。它由分类模型的真阳性、真阴性、假阳性和假阴性值组成。现在,模型的准确率可以计算如下:

What is a Confusion Matrix

所以,在这个例子中:

准确度 = (200 + 50) / (200 + 50 + 10 + 60) = 0.78

这意味着模型的准确度为 0.78,对应于其 True Positive、True Negative、False Positive 和 False Negative 值。

21. 什么是第一类错误和第二类错误?

I 类错误: I 类错误(误报)是测试结果显示不接受真实条件的错误。

例如,假设一个人被诊断出患有抑郁症,即使他们没有患有抑郁症,这就是假阳性的情况。

II 类错误: II 类错误(假阴性)是测试结果显示接受错误条件的错误。

例如,一个人的 CT 扫描显示他没有患病,但实际上他确实患有这种疾病。在这里,测试接受了该人没有患病的错误条件。这是一个假阴性的情况。

22.什么时候应该使用分类而不是回归?

分类和回归都与预测相关。分类涉及识别特定组中的值或实体。回归需要根据连续的结果集预测响应值。

当模型的输出需要产生数据集中数据点对特定类别的归属时,选择分类而不是回归。

例如,如果您想预测房屋的价格,您应该使用回归,因为它是一个数值变量。然而,如果您试图预测位于特定区域的房屋是否会是高价、中价或低价,那么应该使用分类模型。

23.解释逻辑回归

逻辑回归是当因变量是分类变量或二元变量时使用的正确回归分析。与所有回归分析一样,逻辑回归是一种预测分析技术。逻辑回归用于解释数据以及一个因二元变量与一个或多个自变量之间的关系。逻辑回归还用于预测分类因变量的概率。

逻辑回归可以用于以下场景:

  • 预测一个公民是否是老年人 (1) 或不是 (0)
  • 检查一个人是否有疾病(是)或没有(否)

逻辑回归分为三种类型:

  • 二元逻辑回归:在这种类型的逻辑回归中,只有两种可能的结果。

示例:预测是否会下雨 (1) 或不会下雨 (0)

  • 多项逻辑回归:在这种类型的逻辑回归中,输出由三个或更多无序类别组成。

示例:预测房子的奖金是高、中还是低。

  • 有序逻辑回归:在这种类型的逻辑回归中,输出由三个或更多有序类别组成。

示例:将 Android 应用程序评级为一星到五星。

有兴趣学习机器学习吗?报名参加这个 班加罗尔的机器学习培训

24. 如何处理数据集中丢失或损坏的数据?

在 Python pandas 中,有两种方法可以定位丢失或损坏的数据并丢弃这些值:

  • isNull():可用于检测缺失值。
  • dropna():可用于删除具有空值的列或行。

fillna() 可用于用占位符值填充空值。

25. PCA中为什么需要轮换?如果组件不旋转会发生什么?

旋转是主成分分析 (PCA) 中的一个重要步骤。旋转可最大化成分获得的方差内的分离。这使得组件的解释变得更容易。

进行 PCA 的动机是选择更少的组件来解释数据集中最大的方差。当执行旋转时,点的原始坐标会发生变化。然而,组件的相对位置没有变化。

如果分量不旋转,则需要更多的扩展分量来描述方差。

26. 什么是ROC曲线?它代表什么?

ROC 代表接收器工作特性。 ROC 曲线用于以图形方式表示真阳性率和假阳性率之间的权衡。

在 ROC 中,曲线下面积 (AUC) 给出了有关模型准确性的想法。

What is ROC curve and what does it represent

上图显示了 ROC 曲线。 AUC越大,模型的性能越好。

接下来,我们将研究有关重新缩放、二值化和标准化的机器学习面试问题。

27. 为什么需要验证和测试数据集?

创建模型时,数据被分为三个不同的类别:

  • 训练数据集: 训练数据集用于构建模型并调整其变量。不能依赖基于训练数据集构建的模型的正确性,因为该模型在输入新输入后可能会给出错误的输出。
  • 验证数据集: 验证数据集用于研究模型的响应。之后,根据验证数据集数据的估计基准调整超参数。当使用验证数据集评估模型的响应时,模型会使用验证集进行间接训练。这可能会导致模型对特定数据的过度拟合。因此,该模型的强度不足以对现实世界的数据做出所需的响应。
  • 测试数据集: 测试数据集是实际数据集的子集,尚未用于训练模型。该模型不知道该数据集。因此,通过使用测试数据集,可以根据隐藏数据计算所创建模型的响应。模型的性能是在测试数据集的基础上进行测试的。注意:在验证数据集之上调整超参数后,模型始终暴露于测试数据集。

众所周知,基于验证数据集对模型进行评估是不够的。因此,测试数据集用于计算模型的效率。

Certification in Bigdata Analytics

28.解释KNN和K-means聚类之间的区别

K-最近邻(KNN): 它是一种有监督的机器学习算法。在 KNN 中,已识别或标记的数据被赋予模型。然后,模型根据距最近点的距离来匹配点。

K-nearest neighbors

K-means聚类:它是一种无监督机器学习算法。在 K 均值聚类中,将未识别或未标记的数据提供给模型。然后,该算法根据不同点之间的距离平均值创建一批点。

K-means clustering

29.什么是降维?

在现实世界中,机器学习模型是建立在特征和参数之上的。这些特征可以是多维的并且数量很大。有时,这些特征可能是不相关的,并且将它们可视化成为一项艰巨的任务。

这是在主变量的帮助下使用降维来减少不相关和冗余特征的地方。这些主变量保留了父变量的特征,并且是父变量的子组。

30. 随机森林和梯度提升机(GBM)都是基于树的算法,它们有何不同?

随机森林和 GBM 之间的主要区别在于技术的使用。随机森林使用一种称为装袋的技术来推进预测。另一方面,GBM 借助一种称为 boosting 的技术来推进预测。

  • 装袋: 在装袋中,我们应用任意采样并将数据集分为 N。 之后,我们通过采用单一训练算法构建模型。接下来,我们通过民意调查结合最终的预测。 Bagging 通过减少方差来避免过度拟合,从而有助于提高模型的效率。
  • 提升: 在提升过程中,算法尝试在初始迭代时检查并纠正不可接受的预测。之后,算法的修正迭代序列继续进行,直到我们得到所需的预测。提升有助于减少偏差和方差,从而增强弱学习者的能力。

31. 参数模型和非参数模型是什么意思?

参数模型是指参数数量有限的模型。在参数模型的情况下,只需要知道模型的参数即可对新数据进行预测。

非参数模型对参数数量没有任何限制,这使得新数据的预测更加灵活。对于非参数模型,需要了解模型参数和数据状态才能进行预测。

32.区分Sigmoid函数和Softmax函数

Sigmoid 和 Softmax 函数根据其在机器学习任务分类中的用途而有所不同。 Sigmoid函数用于二分类的情况,而Softmax函数用于多分类的情况。

33. 在机器学习中,逻辑回归可以用于多少类?

逻辑回归不能用于两个以上的类。默认情况下,逻辑回归是二元分类器。然而,在需要解决多类分类问题的情况下,可以扩展默认的类数,即多项式逻辑回归。

34.您对P值有何理解?

P 值用于在检验假设时进行决策。在 P 值的最小显着性水平下拒绝原假设。较低的 P 值表示将拒绝原假设。

35. 相关性和协方差是什么意思?

相关性是统计学和概率论中使用的数学概念,用于测量、估计和比较从不同群体中获取的数据样本。简而言之,相关性有助于建立两个变量之间的定量关系。

协方差也是一个数学概念;这是获得两个变量之间相关性的更简单的方法。协方差基本上有助于确定一个变量对另一个变量有什么变化或影响。

36. 检查数据集正态性的各种测试有哪些?

在机器学习中,检查数据集的正态性非常重要。因此,需要对数据集执行某些测试来检查其正态性。他们之中有一些是:

  • 达戈斯蒂诺偏度检验
  • 夏皮罗-威尔克检验
  • 安德森-达林测试
  • 雅克-贝拉测试
  • 柯尔莫哥洛夫-斯米尔诺夫检验

37. 机器学习中过滤的两种主要类型是什么?解释。

两种类型的过滤是:

  • 协同过滤
  • 基于内容的过滤

协同过滤是指将单个用户的兴趣与多个用户的偏好相匹配以预测新内容的推荐系统。

基于内容的过滤是一种推荐系统,其重点仅在于单个用户的偏好,而不是多个用户。

38. 可以通过哪些工具发现异常值?

可用于发现离群值的各种工具包括散点图、箱线图、Z 分数等。

39. 集成学习是什么意思?

集成学习是指组合多个机器学习模型以创建更强大的模型。集成学习涉及的主要技术是 bagging 和 boosting。

观看有关机器学习面试问题的完整课程视频

40. SVM 中有哪些不同的内核?

SVM 中存在的各种内核是:

  • 线性
  • 多项式
  • 径向基
  • 乙状结肠

高级问题

41. 假设您发现您的模型存在高方差。您认为哪种算法可以处理这种情况?为什么?

处理高方差

  • 为了处理高方差的问题,我们应该使用装袋算法。
  • 装袋算法将通过随机数据的重复采样将数据分成子组。
  • 一旦算法分割了数据,我们就可以使用随机数据来使用特定的训练算法创建规则。
  • 之后,我们可以使用轮询来组合模型的预测。

42.什么是数据重新缩放以及如何完成?

在现实场景中,数据中存在的属性具有不同的模式。因此,将特征重新缩放到通用尺度有利于算法有效地处理数据。

我们可以使用 Scikit-learn 重新缩放数据。使用MinMaxScaler重新缩放数据的代码如下:

#重新缩放数据 import pandas import scipy import numpy from sklearn.preprocessing import MinMaxScaler names = ['Abhi', 'Piyush', 'Pranay', 'Sourav', 'Sid', 'Mike', 'pedi', 'Jack', 'Tim'] Dataframe = pandas.read_csv(url, names=names) A​​rray = dataframe.values # 将数组拆分为输入和输出 X = array[:,0:8] Y = array[:,8] Scaler = MinMaxScaler (feature_range=(0, 1)) rescaledX = scaler.fit_transform(X) # 总结修改后的数据 numpy.set_printoptions( precision=3) print(rescaledX[0:5,:])

除了理论概念之外,一些面试官还关注机器学习主题的实施。以下面试问题与理论概念的实施有关。

43.什么是数据二值化?如何二值化?

基于阈值将数据转换为二进制值称为数据的二值化。小于阈值的值设置为 0,大于阈值的值设置为 1。当必须执行特征工程时,此过程非常有用。这也可用于添加独特的功能。可以使用 Scikit-learn 对数据进行二值化。使用 Binarizer 对数据进行二值化的代码如下:

from sklearn.preprocessing 导入二值化器 导入 pandas 导入 numpy 名称 = ['Abhi', 'Piyush', 'Pranay', 'Sourav', 'Sid', 'Mike', 'pedi', 'Jack', 'Tim'] 数据框= pandas.read_csv(url, names=names) array = dataframe.values # 将数组拆分为输入和输出 X = array[:,0:8] Y = array[:,8] binarizer = Binarizer(threshold=0.0) .fit(X) binarizer.transform(X) # 总结修改后的数据 numpy.set_printoptions( precision=3) print(binaryX[0:5,:])

44.如何标准化数据?

标准化是用于重新调整数据属性的方法。这些属性的平均值很可能为 0,标准差值为 1。标准化的主要目的是提示属性的平均值和标准差。

可以使用 Scikit-learn 来标准化数据。使用StandardScaler标准化数据的代码如下:

# 用于标准化数据的 Python 代码(0 均值,1 标准差) from sklearn.preprocessing import StandardScaler import pandas import numpy names = ['Abhi', 'Piyush', 'Pranay', 'Sourav', 'Sid', 'Mike', 'pedi', 'Jack', 'Tim'] dataframe = pandas.read_csv(url, names=names) array = dataframe.values # 将数组分为输入和输出部分 X = array[:,0:8] Y = array[:,8] scaler = StandardScaler().fit(X) rescaledX = scaler.transform(X) # 汇总变换后的数据 numpy.set_printoptions( precision=3) print(rescaledX[0:5,:])

45. 我们知道 one-hot 编码会增加数据集的维度,但标签编码不会。如何?

当使用 one-hot 编码时,数据集的维数会增加。维度增加的原因是分类变量中的每个类别形成不同的变量。

示例:假设有一个变量“颜色”。它有三个子级别:“黄色”、“紫色”和“橙色”。因此,one-hot 编码“颜色”将创建三个不同的变量:Color.Yellow、Color.Purple 和 Color.Orange。

在标签编码中,某个变量的子类得到值0和1。因此,标签编码仅用于二进制变量。

这就是为什么 one-hot 编码增加了数据的维度,而标签编码却没有。

现在,如果您有兴趣参加机器学习的端到端认证课程,您可以查看 Intellipaat 的 机器学习课程 使用Python。

46. 执行二元分类树算法是一项简单的任务。但是树的分裂是如何发生的呢?树如何确定在根节点处破坏哪个变量以及在其子节点处破坏哪个变量?

基尼指数和节点熵辅助二叉分类树进行决策。基本上,树算法确定用于将数据分布到最真实的子节点的可行特征。

根据基尼指数,如果我们从一组中任意挑选一对对象,那么它们应该属于同一类,并且该事件的概率应该为 1。

计算基尼指数的步骤如下:

  1. 使用以下公式计算子节点的基尼系数:成功和失败概率的平方和 (p^2 + q^2)
  2. 通过分割的每个节点的加权基尼率计算分割的基尼系数

现在,熵是不雅程度,由以下公式给出:

在哪里 A 是节点成功和失败的概率

当熵 = 0 时,节点是同质的

当熵较高时,两个组都以 50-50% 的比例出现在节点中。

最后,为了确定该节点是否适合作为根节点,熵应该非常低。

47. 假设给你一个数据集,其中包含缺失值超过 30% 的变量。假设在 50 个变量中,有 16 个变量存在缺失值,比例高于 30%。你将如何对待他们?

为了处理缺失值,我们将执行以下操作:

  • 我们将为缺失值指定不同的类别。
  • 现在,我们将检查值的分布,并且我们将保存定义模式的那些缺失值。
  • 然后,我们将把这些值归入另一个类,同时消除其他值。

48. 用一个简单的例子解释假阴性、假阳性、真阴性和真阳性。

真阳性 (TP): 当机器学习模型正确预测情况时,就称为真阳性值。

真阴性 (TN): 当机器学习模型正确预测否定条件或类别时,就可以说它具有真否定值。

误报 (FP): 当机器学习模型错误地预测负类或条件时,我们称其具有误报值。

假阴性(FN): 当机器学习模型错误地预测正类或条件时,我们称其具有假负值。

49. 什么是 F1-score 以及如何使用它?

F 分数或 F1 分数是二元分类模型总体准确性的度量。在了解 F1 分数之前,了解另外两个准确度衡量标准(即精确率和召回率)至关重要。

精度定义为真阳性占模型预测的阳性分类总数的百分比。换句话说,

精度 =(真阳性数量 / 真阳性数量 + 假阳性数量)

召回率定义为真阳性占传递给模型的实际阳性标记数据总数的百分比。换句话说,

精度 =(真阳性数量 / 真阳性数量 + 假阴性数量)

精确率和召回率都是模型准确性的部分衡量标准。 F1-score 结合了精确率和召回率,并提供总体分数来衡量模型的准确性。

F1-score = 2 ×(准确率 × 召回率)/(准确率 + 召回率)

这就是为什么 F1 分数是任何基于机器学习的二元分类模型中最流行的准确度衡量标准。

50.如何实现KNN分类算法?

Iris 数据集用于实现 KNN 分类算法。

# KNN 分类算法 from sklearn.datasets import load_iris from sklearn.neighbors import KNeighborsClassifier import numpy as np from sklearn.model_selection import train_test_split iris_dataset=load_iris() A_train, A_test, B_train, B_test = ztrain_test_split(iris_dataset["data"], iris_dataset[ "目标"], random_state=0) kn = KNeighborsClassifier(n_neighbors=1) kn.fit(A_train, B_train) A_new = np.array([[8, 2.5, 1, 1.2]]) 预测 = kn.predict(A_new ) print("预测目标值: {}\n".format(prediction)) print("预测特征名称: {}\n".format (iris_dataset["target_names"][prediction])) print("测试分数: {:.2f}".format(kn.score(A_test, B_test))) 输出:预测目标名称:[0] 预测特征名称:['Setosa'] 测试分数:0.92

来到Intellipaat 机器学习社区 如果您对机器学习面试问题还有更多疑问!