机器学习面试问题

1. 为什么要引入机器学习?

最简单的答案是让我们的生活更轻松。在“智能”应用程序的早期,许多系统使用“如果”和“否则”决策的硬编码规则来处理数据或调整用户输入。考虑一个垃圾邮件过滤器,其工作是将相应的传入电子邮件移动到垃圾邮件文件夹。

但是通过机器学习算法,我们可以获得充足的数据信息,以便从数据中学习和识别模式。

与普通问题不同,我们不需要为机器学习中的每个问题编写新规则,我们只需要使用相同的工作流程,但使用不同的数据集。

让我们谈谈艾伦·图灵,在他1950年的论文《计算机与智能》中,艾伦问道:“机器会思考吗?

论文描述了“模仿游戏”,其中包括三个参与者——

  • 法官-人类扮演
  • 测试人员A-另一个人类扮演
  • 测试人员B-计算机程序扮演,试图说服法官它是人类。

法官要求另外两名参与者交谈。当他们做出回应时,法官需要决定哪个回应来自计算机。如果法官无法分辨出区别,计算机就赢得了比赛。

该测试今天继续作为人工智能的年度竞赛。目的很简单:让法官相信他们正在与人聊天,而不是计算机聊天机器人程序。

2. 机器学习算法有哪些不同类型?

有各种类型的机器学习算法。以下是基于以下广泛类别分类列表:

  • 他们是否接受过人工监督的训练(有监督的、无监督的、强化学习的)

3. 什么是监督学习?

监督学习是一种从标记的训练数据推断函数的机器学习算法。训练数据由一组训练示例组成。

示例:01

知道身高和体重,识别人的性别。以下是流行的监督学习算法。

  • 支持向量机-Support Vector Machines
  • 回归-Regression
  • 朴素贝叶斯-Naive Bayes
  • 决策树-Decision Trees
  • K-最近邻算法K-nearest Neighbour Algorithm和神经网络Neural Networks。

示例:02

如果您构建 T 恤分类器,则标签将为“S, M , L”等,是基于显示 S、M 和 L 的分类器示例。

4. 什么是无监督学习?

无监督学习也是一种机器学习算法,用于在给定的数据集上查找模式。在这种情况下,我们没有任何因变量或标签可以预测。无监督学习算法:

  • 聚类-Clustering
  • 异常检测-Anomaly Detection
  • 神经网络Neural Networks和潜在变量模型Latent Variable Models.。

例:

在同一示例中,T 恤聚类将分类为“V 领样式”、“圆领样式”和“袖子类型”。

5. 朴素贝叶斯中的“朴素”是什么?

朴素贝叶斯方法是一种监督学习算法,它是幼稚的,因为它通过应用贝叶斯定理做出假设,即所有属性彼此独立。

贝叶斯定理陈述了以下关系,给定类变量 y 和因向量 x1 到 xn:

P(yi | x1,..., xn) =P(yi)P(x1,..., xn | yi)(P(x1,..., xn)

使用每个xi都是独立的朴素条件独立假设:对于所有I,这种关系简化为:

P(xi | yi, x1, ..., xi-1, xi+1, ...., xn) = P(xi | yi)

由于 P(x1,..., xn) 是给定输入的常量,我们可以使用以下分类规则:

P(yi | x1, ..., xn) = P(y) ni=1P(xi | yi)P(x1,...,xn) 我们也可以使用最大 A 后验 (MAP) 估计来估计 P(yi) 和 P(yi | xi) 前者是训练集 yin 类的相对频率。

P(yi | x1,..., xn) P(yi) ni=1P(xi | yi)

y = arg max P(yi)ni=1P(xi | yi)

不同的朴素贝叶斯分类器主要区别在于它们对 P(yi | xi) 分布所做的假设:可以是伯努利、二项式、高斯等。

6. 什么是PCA?你什么时候使用它?

主成分分析 (PCA) 最常用于降维。

在这种情况下,PCA 测量每个变量(或表中的列)的变化。如果变化很小,它会抛出变量。

从而使数据集更易于可视化。PCA 用于金融、神经科学和药理学。

它作为预处理步骤非常有用,尤其是当特征之间存在线性相关性时。

7. 详细讲解 SVM 算法

支持向量机 (SVM) 是一种非常强大且通用的监督机器学习模型,能够执行线性或非线性分类、回归甚至异常值检测。

假设我们给出了一些数据点,每个数据点都属于两个类中的一个,目标是根据一组示例将两个类分开。

在 SVM 中,数据点被视为 p 维向量(p 数列表),我们想知道我们是否可以用 (p-1) 维超平面分隔这些点。这称为线性分类器。

有许多超平面对数据进行分类。选择表示两个类之间最大间距或边距的最佳超平面。 如果存在这样的超平面,则称为最大边距超平面,它定义的线性分类器称为最大边距分类器。在 H3 中划分数据的最佳超平面

我们有数据(x1,y1),...,(xn,yn)和不同的特征(xii,...,xip),yiis 1或-1。

超平面 H3 的方程是满足以下条件的点集:

W. x-b = 0

其中 w 是超平面的法线向量。参数 b||w||确定超平面与原始平面沿法线向量 w 的偏移量

因此,对于每个 i,要么 xiis 位于 1 的超平面中,要么位于 -1 的超平面中。基本上,xis满足:

w .xi - b = 1 或 w. xi - b = -1

8. 什么是 SVM 中的支持向量?

支持向量机 (SVM) 是一种算法,它试图拟合不同类之间的直线(或平面或超平面),以最大化从线到类点的距离。

通过这种方式,它试图在类之间找到一个健壮的分离。支持向量是分割超平面边缘的点。

9. SVM 中的不同内核是什么?

SVM 中有六种类型的内核:

  • 线性核 - 当数据是线性可分的时使用。
  • 多项式核 - 当您拥有没有自然平滑概念的离散数据时。
  • 径向基核 - 创建一个决策边界,能够比线性核更好地分离两个类。
  • Sigmoid 内核 - 用作神经网络的激活函数。

10. 什么是交叉验证?

交叉验证是一种将所有数据拆分为三个部分的方法:训练、测试和验证数据。数据被拆分为 k 个子集,模型已在其中的 k-1 数据集上进行训练。

保留最后一个子集进行测试。这是针对每个子集完成的。这是 k 折交叉验证。最后,对所有 k 折的分数进行平均以产生最终分数。

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

数据中的偏差告诉我们数据不一致。出现不一致的原因可能有多种,这些原因并不相互排斥。

例如,像亚马逊这样的科技巨头为了加快招聘过程,他们建立了一个引擎,他们将提供100份简历,它将吐出前五名,并雇用这些简历。

当公司意识到该软件没有产生性别中立的结果时,它被调整以消除这种偏见。

12. 解释分类和回归的区别?

分类用于产生离散结果,分类用于将数据分类为某些特定类别。 例如,将电子邮件分类为垃圾邮件和非垃圾邮件类别。

而回归处理连续数据。 例如,预测某个时间点的股票价格。

分类用于预测一组类的输出。 例如,明天是热还是冷?

而回归用于预测数据表示的关系。 例如,明天的温度是多少?

13. 什么是F1分数?你会如何使用它?

在直接跳入F1分数之前,让我们先看看这张表。

在二元分类中,我们认为 F1 分数是模型准确性的度量。F1 分数是准确率和召回率分数的加权平均值。

F1 = 2TP/2TP + FP + FN

我们看到 F1 的分数介于 0 和 1 之间,其中 0 是最差的分数,1 是最好的分数。 F1 分数通常用于信息检索,以查看模型检索相关结果以及我们的模型的性能。

14. 定义精度和召回率?

精确性和召回率是监控机器学习实现能力的方法。但它们经常同时使用。

问题1:“在分类器预测相关的项目中,有多少是真正相关的?“

问题2:“在所有真正相关的项目中,分类器找到了多少?”

一般来说,精度的含义是精确和准确的事实。因此,我们的机器学习模型也是如此。如果您有一组项目,您的模型需要预测这些项目才能相关。有多少项目是真正相关的?

在数学上,精度和召回率可以定义为以下内容:

precision = # 满意的正确答案/# 排名器返回的总项目

recall = # 快乐正确答案/# 相关答案总数

15. 如何解决过拟合和欠拟合问题?

过拟合意味着模型对训练数据的拟合太好,在这种情况下,我们需要对数据进行重采样,并使用 k 折叠交叉验证等技术估计模型的准确性。

对于欠拟合情况,我们无法从数据中理解或捕获模式,在这种情况下,我们需要更改算法,或者我们需要向模型提供更多数据点。

16. 什么是神经网络?

它是人脑的简化模型。就像大脑一样,它有神经元在遇到类似的东西时激活。

不同的神经元通过连接连接,帮助信息从一个神经元流向另一个神经元。

17. 什么是损失函数和成本函数?解释它们之间的主要区别?

在计算损失时,我们只考虑单个数据点,然后我们使用术语损失函数。

然而,在计算多个数据的误差总和时,我们使用成本函数。没有重大区别。

换句话说,损失函数是捕获单个记录的实际值和预测值之间的差异,而成本函数聚合整个训练数据集的差异。

最常用的损失函数是均方误差和铰链损失。

均方误差(MSE):简单来说,我们可以说我们的模型如何根据实际值预测值。

MSE = √(预测值 - 实际值)2

铰链损耗:用于训练机器学习分类器,即

L(y) = 最大值(0,1- yy)

其中 y = -1 或 1 表示两个类,y 表示分类器的输出形式。最常见的成本函数将总成本表示为固定成本和可变成本的总和,公式 y = mx + b

18. 什么是集成学习?

集成学习是一种结合多个机器学习模型以创建更强大的模型的方法。

模型与众不同的原因有很多。几个原因是:

  • 不同的人群
  • 不同的假设
  • 不同的建模技术

在处理模型的训练和测试数据时,我们将遇到错误。此错误可能是偏差、方差和不可简化的误差。

现在,模型应该始终在偏差和方差之间取得平衡,我们称之为偏差-方差权衡。

这种集成学习是执行这种权衡的一种方法。

有许多可用的集成技术,但当聚合多个模型时,有两种通用方法:

1)Bagging是一种原生方法:获取训练集并从中生成新的训练集。

2)Boosting是一种更优雅的方法:类似于bagging, Boosting用于优化训练集的最佳加权方案。

19. 您如何确定使用哪种机器学习算法?

这完全取决于我们拥有的数据集。如果数据是离散的,我们使用 SVM。如果数据集是连续的,我们使用线性回归。

因此,没有特定的方法可以让我们知道要使用哪种ML算法,这完全取决于探索性数据分析(EDA)。

EDA 就像“采访”数据集;作为面试的一部分,我们做到了以下几点:

  • 将变量分类为连续变量、分类变量等。
  • 使用描述性统计量总结我们的变量。
  • 使用图表可视化我们的变量。

根据上述观察结果,为特定数据集选择一个最佳拟合算法。

20. 如何处理异常值?

异常值是数据集中远离数据集中其他观测值的观测值。用于发现异常值的工具包括

  • 箱线图 Box plot
  • Z 分数 Z-score
  • 散点图等 Scatter plot

通常,我们需要遵循三个简单的策略来处理异常值:

  • 我们可以放弃它们。
  • 我们可以将它们标记为异常值并将它们作为功能包含在内。
  • 同样,我们可以变换特征以减少异常值的影响。

21. 什么是随机森林?它是如何工作的?

随机森林是一种通用的机器学习方法,能够执行回归和分类任务。

与Bagging和Boosting一样,随机森林通过组合一组其他树模型来工作。随机林从测试数据中列的随机样本生成树。

以下是随机森林创建树的步骤:

  • 从训练数据中获取样本大小。
  • 从单个节点开始。
  • 从开始节点运行以下算法:
    • 如果观测值数小于节点大小,则停止。
    • 选择随机变量。
    • 查找在拆分观测值方面执行“最佳”工作的变量。
    • 将观测值拆分为两个节点。
    • 在每个节点上调用步骤 'a'。

22. 什么是协同过滤?和基于内容的过滤?

协同过滤是一种经过验证的个性化内容推荐技术。协同过滤是一种推荐系统,它通过将单个用户的兴趣与许多用户的偏好相匹配来预测新内容。

基于内容的推荐系统只关注用户的偏好。根据用户以前的选择,从类似内容向用户提出新的推荐。

23. 什么是聚类?

聚类分析是将一组对象分组为多个组的过程。对象应在同一集群中彼此相似,而与其他集群中的对象不同。

几种类型的聚类是:

  • 分层聚类-Hierarchical clustering
  • K 表示聚类K means clustering
  • 基于密度的聚类-Density-based clustering
  • 模糊聚类-fuzzy clustering等等。

24. 如何选择 K 进行 K 均值聚类?

有两种方法,包括直接方法和统计测试方法:

  • 直接方法:包含肘部和轮廓
  • 统计测试方法:它有差距统计。

轮廓是确定 k 的最佳值时最常用的。

25. 什么是推荐系统?

推荐引擎是一个系统,用于预测用户的兴趣并推荐他们很可能感兴趣的产品。

推荐系统所需的数据来自观看电影或听歌后的明确用户评分,隐含的搜索引擎查询和购买历史,或有关用户/项目本身的其他知识。

26. 如何检查数据集的正态性?

在视觉上,我们可以使用绘图。一些正态性检查如下:

  • 夏皮罗-威尔克测试 Shapiro-Wilk Test
  • 安德森-达令测试 Anderson-Darling Test
  • 马丁内斯-伊格莱维奇测试 Martinez-Iglewicz Test
  • 柯尔莫哥罗夫-斯米尔诺夫测试 Kolmogorov-Smirnov Test
  • 达戈斯蒂诺偏度检验 D’Agostino Skewness Test

27. 逻辑回归可以用于 2 个以上的类吗?

否,默认情况下逻辑回归是一个二元分类器,因此它不能应用于超过 2 个类。但是,它可以扩展以解决多类分类问题(多项式逻辑回归)

28. 解释相关性和协方差?

相关性用于测量和估计两个变量之间的定量关系。相关性衡量两个变量的相关性。例如,收入和支出,需求和供应等。

协方差是衡量两个变量之间相关性的简单方法。协方差的问题在于,如果没有归一化,它们很难进行比较。

29. 什么是P值?

P 值用于做出有关假设检验的决策。P 值是可以否定原假设的最小显著水平。p 值越低,否定原假设的可能性就越大。

30. 什么是参数模型和非参数模型?

参数模型的参数有限,要预测新数据,您只需要知道模型的参数。

非参数模型在采用许多参数方面没有限制,允许更大的灵活性和预测新数据。您需要知道数据和模型参数的状态。

31. 什么是强化学习?

强化学习不同于其他类型的学习,如有监督和无监督。在强化学习中,我们既没有数据也没有标签。我们的学习基于环境给予代理的奖励。

32. Sigmoid 和 Softmax 函数的区别?

sigmoid 函数用于二元分类。概率总和需要为 1。而 Softmax 函数用于多分类。概率总和将为 1。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。 原始发表:2023-04-13,如有侵权请联系 cloudcommunity@tencent 删除数据机器学习函数面试模型