Skip to content

Latest commit

 

History

History
351 lines (176 loc) · 19.1 KB

30-machine-learning-questions-answered.md

File metadata and controls

351 lines (176 loc) · 19.1 KB

30 个最常被问到的机器学习问题回答

原文:www.kdnuggets.com/2021/08/30-machine-learning-questions-answered.html

评论

Abhay Parashar, Python 开发者 | 数据科学学习者

图像由作者提供。

机器学习是通向更好和更先进未来的途径。机器学习开发者是 2021 年最热门的工作之一,预计在未来 3-5 年内将增长 20-30%。机器学习本质上是所有统计学和编程概念的结合。机器学习开发者最常用的编程语言是 Python,因为它的简单性。在本博客中,你会找到一些最常被问到的机器学习问题,每个机器学习爱好者都有一天必须回答这些问题。让我们开始吧。

0. 什么是机器学习?

**答案:**机器学习是让计算机在实时情况下自主行动的科学,而无需明确编程。这是一种人工智能应用,使系统能够自动从先前的经验中学习和改进。它使计算机能够在没有任何人工干预的情况下学习和适应新数据。

1. 解释监督学习、无监督学习和半监督学习之间的基本区别?

答案:

**监督学习:**模型在标记的数据上进行训练,然后根据之前标记的数据做出预测。它需要一个监督者(标签)来训练数据。例如:文本分类。

无监督学习:模型在未标记的数据上进行训练。模型尝试发现数据中的模式和关系,并根据这些模式进行分类。我们没有任何标记的数据。

**半监督学习:**这是一种机器学习类型,它使用一些标记的数据和大量未标记的数据来训练模型。其目标是借助标记数据对一些未标记的数据进行分类。

2. 你所说的强化学习是什么意思?

**答案:**强化学习是机器学习的一个领域,其中模型根据其在环境中的先前行为所获得的奖励进行训练。有一个代理负责给出奖励,并最大化奖励。如果模型正确执行任务,则获得+1 奖励;如果模型任务执行错误,则获得-1 奖励。

应用:自动驾驶汽车、自动停车、难题求解器等。

3. 机器学习中使用的不同类型的数据有哪些?

**答案:**有两种类型的数据。结构化数据和非结构化数据。

1. **结构化数据:**这类数据在存储之前是预定义的、标记的和格式化好的。例如:学生记录表。

2. 非结构化数据:这种类型的数据是原始格式的,直到使用时才会被处理。例如:文本、音频、视频、电子邮件等。

4. 特征与标签?

**答:**特征是输入信息。另一方面,标签是模式的输出信息。

特征用于预测某些内容,而标签是我们预测的内容。此外,特征被称为独立变量,标签被称为依赖变量

5. 解释回归和分类之间的区别?

答:

**回归:**回归是寻找依赖变量和独立变量之间相关性的过程。它有助于预测连续变量,例如股票市场预测、房价预测等。在回归中,我们的任务是找到最适合的线,以准确预测输出。

**分类:**分类是找到一个函数,帮助将数据分成不同类别的过程。这些主要用于离散数据。在分类中,我们的目标是找到一个决策边界,将数据集划分为不同的类别。

图片由作者提供。

6. Scikit-learn 用于什么?

**答:**Scikit-learn 是一个强大的 Python 库,用于机器学习任务。Scikit-learn 库包含许多高效的机器学习和统计建模工具和类,包括分类、回归、聚类、特征选择、参数调整等。它是进行预测分析的高效工具。它以类和函数的形式提供所有主要算法。在 Python 中,它被称为sklearn

7. 什么是机器学习中的训练集和测试集,它们为什么重要?

**答:**训练集是提供给模型进行训练、分析和学习的数据集。测试集是用于在实际应用之前对模型进行本地测试的数据集。训练集是标记数据,而测试集没有标签。

将数据集划分为训练集和测试集非常重要,这样模型才能避免过拟合或欠拟合。此外,这是评估模型并理解数据特征的一个有效方法。在大多数情况下,划分比例为 70/30,即 70%的数据用于训练,30%的数据用于测试。

8. 解释构建机器学习模型的阶段?

答:

**数据收集:**这是任何机器学习模型的第一阶段。在这个阶段,决定合适的数据,然后通过某些算法或手动收集这些数据。

数据处理:在这个阶段,我们对第一阶段收集的数据进行预处理,处理所有的空值、分类数据等。此外,在同一阶段,如果数据特征的范围不一致,还会将它们调整到相同的范围。

模型构建:在这个阶段,我们首先选择适当的算法来创建模型,然后借助如 sklearn 等工具构建模型。

模型评估:在模型创建后,使用一些统计技术对其进行评估,例如准确度分数、z 分数、准确性矩阵等。

模型保存与测试:在模型成功评估后,它会被保存以备将来使用,并进行实时测试。

9. 过拟合与欠拟合?

过拟合:当模型在训练数据上的表现很好,但在测试数据上的表现差时,就会出现过拟合。例如:模型在训练集上的准确率为 94%,在测试集上的准确率为 56%。这是一种建模错误,发生在函数过于紧密地拟合有限的数据点集时。为避免过拟合,我们可以收集更多数据,使用集成方法或选择最适合数据的算法。

欠拟合:模型在训练数据和测试数据上的表现都很差。换句话说,这种模型未能对新数据点进行有效泛化。

“机器智能是人类将来不再需要制造的最后发明。” ~ 尼克·博斯特罗姆

10. 解释混淆矩阵在模型评估中的作用?

:混淆矩阵是用来衡量机器学习算法性能的测量表。它是一个不同预测值和实际值组合的表。它用于衡量召回率、精确度、AUC-ROC 曲线和准确性。矩阵的对角线包含所有正确的数据。矩阵的大小取决于因变量中的类别数。矩阵的大小等于 N*N,其中 N 是因变量输出中的类别数量。

  • 真阳性:实际值 = 预测值 当输出为 1 时

  • 真阴性:实际值 != 预测值 当输出为 0 时

  • 假阳性:第一类错误

  • 假阴性:第二类错误

图片来源。

11. 第一类错误和第二类错误有什么区别?

第一类错误(假阳性错误):当零假设为真时却被拒绝,意味着声称某事发生了,但实际上并未发生。

第二类错误(假阴性错误):当零假设被接受时它实际上不是真的,意味着声称什么都没有发生,但实际上发生了。

例子:以零假设为一个无辜的人为例。将无辜的人定罪是第一类错误。另一方面,让一个有罪的人逍遥法外是第二类错误。

12. 区分精确度、召回率、准确性和 F1 分数?

精确度是正确预测的正观察值与总预测正观察值的比率。它显示了我们的模型有多精确。

  • 精确度 = TP/TP+FP

召回率是正确预测的正观察值与该类别总观察值的比率。

  • 召回率 = TP/TP+FN

F1-分数是召回率和精确度的加权平均值。

  • F1-分数 = 2*(召回率 * 精确度) / (召回率 + 精确度)

准确率是正确预测的正观察值与总正观察值的比率。

  • 准确率 = TP+TN/TP+TN+FP+FN

13. P 值是什么意思?

答案:P 值是在假设零假设为真的情况下对结果的确定。如果 p 值非常小(<0.05),则我们假设零假设是正确的可能性很小。因此我们拒绝零假设。

14. 解释一下 ROC 曲线是如何工作的?

答案:ROC 曲线是一个显示分类模型在不同阈值下性能的图表。它使用两个曲线绘制参数,即真正率(灵敏度)和假正率(特异性)。

  • 曲线越接近左边界然后是上边界,测试的准确度就越高。

  • 曲线越接近 ROC 空间的 45 度对角线,测试的准确度就越低。

15. KNN 和 K-means 聚类有什么不同?

答案:KNN 是一种监督式机器学习技术,用于分类或回归问题。在 KNN 中,K 代表用于预测因变量的最近邻居的数量。

K-means 聚类是一种无监督的机器学习算法,用于根据 K(聚类数目)和质心将数据划分为不同的簇。

16. 朴素贝叶斯定理中的“朴素”是什么意思?

答案:朴素贝叶斯分类器假设所有输入变量彼此独立,即它们之间没有任何关系,这实际上对于真实数据来说是不现实的假设。

假设有一个包含水果信息的数据集,用来检测水果是否是苹果。一个样本包含一个红色的、圆形的直径约为 4 英寸的水果。即使这些特征彼此依赖或依赖于其他特征的存在,朴素贝叶斯分类器仍会将它们视为独立的因素来预测水果。

17. 集成学习是如何工作的?

答案:集成学习是一种将多个模型的预测结果或结果组合以实现更好性能的技术。比如说,如果你买一辆车,你通常会在网上查找不同车型的评论和特点。最终,在汇总所有评论后,你会创建自己对这辆车的评论,并决定是否购买它。你创建的评论是所有评论的更好版本,因为它包含了所有评论的信息。

集成学习的工作原理相同:使用来自多个算法的预测来创建更好的模型。

集成学习可以通过两种方式进行。一种是将不同算法的预测结果结合生成新的高精度预测。另一种是多次使用单一算法,最后使用每个模型的预测结果生成一个更好的模型,具有良好的准确性。

“不要让昨天占据今天太多的时间。” ~ 威尔·罗杰斯

18. 机器学习中的袋装和提升是什么?

答案

袋装是一种结合相同类型预测的方法,即来自相同算法的预测。例如:随机森林。在这种方法中,每个模型独立构建,给予它们相等的权重。它减少了过拟合问题,也降低了方差。

提升是一种结合不同算法预测的方法。例如:梯度提升。新模型受到之前构建的模型表现的高度影响。它减少了偏差。

19. 偏差-方差权衡是什么?

答案:偏差是模型平均预测值与正确值之间的差异。另一方面,方差是数据点的变异性,显示数据的分布情况。

如果我们的模型参数较少,那么它可能具有高偏差和低方差。因此,它将是稳定的但平均不准确。具有大量参数的模型可能具有低偏差和高方差,这些模型在平均上大多准确,但在性质上不一致。一个好的模型总是具有低偏差和低方差。

20. 解释 L1 和 L2 正则化?

答案:使用 L1 正则化的回归模型称为Lasso 回归,而使用 L2 正则化的模型称为Ridge 回归

  • L1 正则化通过在成本函数中添加权重 (Wj) 的绝对值来增加惩罚项,而 L2 正则化则通过在成本函数中添加权重 (Wj) 的平方值来增加惩罚项。

  • 两者之间的另一种区别是,L1 正则化尝试估计数据的中位数,而 L2 正则化尝试估计数据的均值。

  • L1 正则化有助于去除不重要的特征。

21. 处理机器学习中缺失值的不同方法是什么?

答案

1. 用均值、中位数或众数替换缺失值。

2. 用随机值替换缺失值。

3. 将所有 NaN 值作为新特征使用。

4. 用第三个偏差值替换 NaN 值。

5. 用最小值或最后的异常值替换 NaN

6. 用最频繁的类别替换 NaN *(分类值)*7. 将缺失值视为新类别

8. 应用分类器预测 NaN 值

9. 丢弃值

了解更多:处理机器学习中缺失值的 9 种方法

22. 你可以使用哪些不同的技术来选择特征

答案

  1. 单变量选择: 在这种方法中,我们使用 SelectKBest 算法根据依赖列找到特征分数。

  2. 额外树分类器:该技术为数据的每个特征提供一个分数。分数越高,该特征的重要性和相关性越强。你可以从 sklearn.ensemble 中导入这个类。

  3. 相关矩阵:一个显示所有特征之间相关性的表格。表格中的每个单元格显示两个变量之间的相关性。我们可以使用阈值来选择数据集中相关性较低的变量。

  4. 互信息:这是一种分类器,生成每个特征与依赖特征的互信息。信息量越高,相关性越强。

“折磨数据,它会承认一切。” ~ 罗纳德·科斯

23. 如何处理数据集中的分类值?

答案:处理分类值,我们可以进行编码,将分类数据基本上转换为数值数据。

  1. 名义编码: 当数据没有固有的顺序时。

    1 一热编码

    1.2 具有许多特征的一热编码

    1.3 平均编码

  2. 序数编码: 当数据具有固有顺序时。

    2 标签编码

    2.2 目标引导编码

  3. 计数编码

了解更多:处理分类值的不同方法

24. 什么是异常值,我们如何在机器学习中处理它们?

答案:异常值是与数据集中其他数据点或样本有显著不同的一些不寻常的数据点。它们可能对模型性能产生重大影响。处理异常值,我们可以做三件事。

  1. 移除所有异常值

  2. 用合适的值(如第三个偏差)替换异常值

  3. 使用对异常值不敏感的不同算法。

25. 什么是特征缩放和转换,它们为何必要?

答案:特征转换是一种将特征从一种表示转换为另一种表示的技术。另一方面,特征缩放是将特征的所有值转换到相同范围的技术。

有时候在我们的数据集中,我们有一些具有不同单位的列——比如一个列可以是年龄,而另一个列可以是人的工资。在这种情况下,年龄列的范围是 0 到 100,而工资列的范围是 0 到 10000。这些列的值差异如此之大,因此值较大的列将更大程度地影响输出。这将导致模型性能差。因此,我们需要进行特征缩放和转换。

26. 如何处理不平衡的数据集?

答案:在不平衡数据中,各个类别之间的样本差异很大。例如,一个类别可能有 1000 个样本,而另一个类别可能只有 200–300 个样本。在这种情况下,在做任何事情之前,我们首先需要处理数据的不平衡。有许多技术可以遵循。

  1. 收集更多数据。

  2. 当我们有大量数据时应用过采样

  3. 应用欠采样

  4. 尝试其他算法

27. 什么是 A/B 测试?

答案:A/B 测试是一种用于随机化两个变量实验的统计假设检验方法。它通常用于比较使用不同预测变量的两个模型,以检查哪个模型更适合数据。

在实际场景中,假设你创建了两个为用户推荐产品的模型。A/B 测试可以用于比较这两个模型,以检查哪个模型给出的推荐最好。

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

答案:这是一种通过向模型提供来自数据集的多个样本数据来提高模型性能的技术。采样过程是通过将数据分成具有相同数量行的小部分来完成的。在所有部分中,随机选择一个用于测试集,另一个用于训练集。它包含以下技术:

  • k 折交叉验证

  • 保留法

  • 分层 k 折交叉验证

  • 留出 p 折交叉验证

29. PCA 是什么,它有什么用?

答案:PCA(主成分分析)是一种用于减少大型数据集维度的降维方法。

在现实生活中,我们通常会遇到具有大维度的数据集,因此,视觉化和分析这些数据集变得困难。PCA 可以通过移除数据集中不必要的维度来帮助减少数据集的维度。

“你学得越多,你赚得越多。” ~ 沃伦·巴菲特

30. 在机器学习中,管道是如何使用的?

答案:管道用于自动化机器学习工作流程。一个管道由几个步骤组成,用于训练一个模型。这些管道是迭代的,所以每一步都重复多次以提高模型的准确性。

这个管道主要用于自然语言处理。管道的一部分负责清理和向量化,另一部分则负责模型训练和验证。

原文。经授权转载。

相关内容:


我们的三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业轨道。

2. Google 数据分析专业证书 - 提升你的数据分析水平

3. Google IT 支持专业证书 - 支持你所在组织的 IT 工作


更多相关内容