机器学习面试问题
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 删除数据机器学习函数面试模型