机器学习高频问答题总结

机器学习问答题总结

  • 第一章 线性回归
    • 1.什么是线性回归?解释主要原理
    • 2.解释线性回归中最小二乘法的原理吗?
    • 3.如何评估线性回归模型的性能?
    • 4.线性回归中正则化的目的是什么吗?L1正则化和L2正则化有什么不同?
  • 第二章 逻辑回归
    • 1.什么是逻辑回归
    • 2.逻辑回归与线性回归有何不同?
    • 3.什么是逻辑函数,它在逻辑回归中为什么重要?
    • 4.逻辑回归能用于多分类问题吗?如果可以,应如何应用?
    • 5.逻辑回归模型是如何训练以找到最佳拟合的?
    • 6.评估逻辑回归模型的性能
  • 第三章 KNN
    • 1.K-近邻算法原理
    • 2.讨论数据归一化和标准化对KNN算法的影响
  • 第四章 支持向量机(SVM)
    • 1.什么是支持向量机(SVM)
    • 2.SVM如何处理线性不可分数据?
    • 3.在SVM中,核技巧的作用是什么?它是如何转换特征空间的?
    • 4.如何选择合适的核函数?
    • 5.请解释SVM中软间隔的概念及其重要性。
    • 6.SVM如何进行回归(SVR)?它与SVM分类有何区别?
  • 第五章 朴素贝叶斯(Naive Bayes)
    • 1.解释朴素贝叶斯分类器基本原理
    • 2.解释贝叶斯定理,它是如何在朴素贝叶斯分类器中应用的?
  • 第六章 决策树(Decision Tree)
    • 1.什么是决策树?
    • 2.什么是基尼指数?
    • 3.能否解释什么是熵?
    • 4.请解释什么是信息增益?
    • 5.出多特征情况下,使用信息增益进行分割的过程描述
    • 6.在决策树中,使用哪些方法来防止过拟合?
  • 第七章 随机森林(Random Forest)
    • 1.什么是随机森林
    • 2.什么是袋外误差(OOB),以及它在随机森林中如何发挥作用?
  • 第八章 Boosting算法
    • 1.什么是Boosting算法?它是如何工作的?
    • 2.AdaBoost算法的基本原理是什么?
    • 3.解释Gradient Boosting的工作原理,它和AdaBoost的主要区别是什么?
    • 4.什么是LightGBM?它如何优化传统的Gradient Boosting算法?
    • 5.解释XGBoost算法。它与传统的Boosting算法有何不同?
  • 第九章 聚类算法
    • 1.简述K均值聚类算法的流程
    • 2.简述什么是降维以及PCA算法的流程
    • 3.LDA的基本思想是什么?
    • 4.聚类算法的两大性能度量指标是什么?其简单举例说明
  • 机器学习知识点总结 PDF下载地址
  • 参考

第一章 线性回归

1.什么是线性回归?解释主要原理

线性回归是一种统计方法,用于建立一个或多个自变量(预测变量)和一个因变量(响应变量)之间的关系模型。它假设变量之间存在线性关系,通过找到最佳拟合直线(在简单线性回归中)或超平面(在多元线性回归中),来预测响应变量的值。

其主要原理基于最小二乘法,目的是最小化实际观测值和模型预测值之间差异的平方和。通过这种方式,线性回归尝试画出一条直线(或超平面),尽可能接近所有观测点,从而能够用来预测新的数据点的响应值。

线性回归目标函数:
在这里插入图片描述

参数值:
在这里插入图片描述

2.解释线性回归中最小二乘法的原理吗?

最小二乘法是在线性回归分析中常用的一种方法,用于估计模型的系数,使得预测误差的平方和最小。

在线性回归中,我们的目标是找到一条直线(或在多元线性回归中是一个平面或超平面),这条直线能够尽可能准确地预测因变量的值。为了量化直线(或超平面)拟合数据的好坏,我们计算每个观测点的实际值与模型预测值之间的差距(即残差),并求这些残差的平方和。

最小二乘法通过优化过程寻找使得残差平方和最小的系数值。具体来说,它通过计算导数并设置导数为零,来找到系数的最佳估计值。这个过程确保了我们找到的直线(或超平面)在统计学意义上最好地解释了自变量和因变量之间的关系。

简而言之,最小二乘法通过最小化预测误差的平方和,来确定线性回归模型中的最佳拟合线。这个方法不仅可以用于简单线性回归,还可以应用于多元线性回归,从而处理更复杂的关系和更多的变量。

3.如何评估线性回归模型的性能?

评估线性回归模型的性能主要依靠几个关键的统计指标来衡量模型的拟合度和预测能力:
(1)决定系数(R²):R²值衡量模型解释的变异性占总变异性的比例。其值范围从0到1,值越接近1,表示模型解释的变异性越高,拟合度越好。R²提供了一个衡量模型整体拟合优度的快速指标。
在这里插入图片描述

(2)均方误差(MSE):MSE计算了预测值与实际值之间差异的平方的平均值。它是衡量模型预测精度的一个重要指标。MSE值越小,表示模型的预测误差越小,性能越好。
在这里插入图片描述
(3)均方根误差(RMSE):RMSE是MSE的平方根,同样用于衡量预测误差的大小。与MSE一样,RMSE值越小,模型的预测精度越高。
在这里插入图片描述
(4)平均绝对误差(MAE):MAE是预测值与实际值差异的绝对值的平均值。它直观地衡量了预测误差的平均大小,MAE值越小,表明模型的预测能力越好。
在这里插入图片描述

4.线性回归中正则化的目的是什么吗?L1正则化和L2正则化有什么不同?

在线性回归中,正则化是用来防止模型过拟合的一种技术,通过引入额外的信息(惩罚项)来约束或减少系数的大小。正则化的主要目的是改善模型的泛化能力,即在未见数据上的表现。通过对系数大小施加惩罚,正则化帮助确保模型不会过于依赖训练数据中的特定观测,从而减少模型在新数据上预测时的误差。

**L1正则化(也称为Lasso回归)**通过向损失函数添加系数的绝对值之和的惩罚项,促使一部分系数精确地缩减到0。这种性质使L1正则化成为一种有效的特征选择方法,因为它可以减少模型中变量的数量,留下对输出变量有显著影响的那些变量。

**L2正则化(也称为岭回归)**通过向损失函数添加系数的平方和的惩罚项,倾向于使系数值均匀地缩小,但不会将它们完全缩减到0。L2正则化有助于处理特征间的多重共线性问题,通过保留所有特征但减小系数值的影响,从而提高模型的稳定性和泛化能力。

L1范数:||x||₁ = |x₁| + |x₂| + … + |xₙ|,它是向量中各个元素绝对值之和。
L2范数:||x||₂ = √(x₁² + x₂² + … + xₙ²),它是向量元素的平方和的平方根。

简而言之,L1正则化倾向于产生稀疏系数矩阵,有助于特征选择,而L2正则化则通过惩罚大的系数值来防止过拟合,保证模型的复杂度得到适当的控制。在实际应用中,根据数据的特点和需求选择适当的正则化方法是非常重要的。

第二章 逻辑回归

1.什么是逻辑回归

逻辑回归是一种统计学方法,用于预测一个事件发生的概率。它通过使用一个或多个自变量来预测一个二元结果(是/否,成功/失败,1/0等)。逻辑回归在处理分类问题时特别有用,特别是在目标变量是二分类的情况下。

2.逻辑回归与线性回归有何不同?

逻辑回归与线性回归的主要区别在于它们处理的预测结果类型。线性回归用于预测连续的数值型结果,例如房价、温度或销售额。逻辑回归则用于预测分类结果,特别是用于二分类问题,如是/否决策、成功/失败结果等。

此外,逻辑回归和线性回归在模型构建时使用的函数也不同。线性回归使用的是线性函数,其预测结果可以是任何实数。而逻辑回归使用的是逻辑函数(或称Sigmoid函数),这使得它的输出被压缩在0和1之间,通常表示为发生某事件的概率。

3.什么是逻辑函数,它在逻辑回归中为什么重要?

逻辑函数,也被称为Sigmoid函数,是逻辑回归中最核心的组成部分。它是一个S形的曲线,能够将任意实数值映射到(0, 1)区间内,这使得它非常适合于处理分类问题,特别是二分类问题。逻辑函数的数学表达式为:
在这里插入图片描述
,其中(e)是自然对数的底数,(x)是输入变量。

逻辑函数之所以在逻辑回归中至关重要,是因为它可以将线性回归模型的连续输出转换为概率值。这意味着逻辑回归模型不仅能预测哪个类别更可能是正确的,还能给出这个预测的确定性或概率。例如,逻辑回归模型可以预测一个邮件是垃圾邮件的概率是80%,而不是简单地分类为“垃圾邮件”或“非垃圾邮件”。

4.逻辑回归能用于多分类问题吗?如果可以,应如何应用?

逻辑回归虽然最初是为二分类问题设计的,但它也可以被扩展到多分类问题。处理多分类问题的常用方法有两种:一对多(One-vs-Rest, OvR)多项逻辑回归(Multinomial Logistic Regression)

一对多(OvR)方法涉及将多分类问题分解为多个二分类问题。对于每个类别,模型将这个类别与所有其他类别对比,构建一个二分类模型。因此,如果有N个类别,就会有N个二分类模型。在预测时,所有模型都会被用来评估一个观测值,然后选择概率最高的类别作为最终预测。

多项逻辑回归(又称为Softmax回归)是另一种方法,它直接在一个模型中处理多个类别。与逻辑函数用于二分类一样,多项逻辑回归使用Softmax函数来将线性函数的输出转换为概率分布。这种方法不需要像OvR那样为每个类别构建多个模型,因此在某些情况下可能更有效率。

5.逻辑回归模型是如何训练以找到最佳拟合的?

逻辑回归模型通过优化过程来寻找最佳拟合,这个过程涉及最大化模型对训练数据的预测准确性。具体来说,这个优化过程通常是通过最大化似然函数来实现的,似然函数衡量了给定模型参数下,观测到的训练数据出现的概率。

**最大似然估计(MLE)**是逻辑回归中常用的训练方法。在给定的数据集和一个模型时,MLE寻找能够使数据集出现概率最大的模型参数。对于逻辑回归来说,这意味着寻找一组系数,使得观察到的分类结果在这组系数下最为可能。

优化算法如梯度下降牛顿法被用于执行MLE。这些算法从随机或初始的系数值开始,逐步调整系数以增加似然函数的值。梯度下降通过计算似然函数相对于每个系数的梯度来确定系数调整的方向和步长。随着迭代次数的增加,系数会逐渐收敛到使似然函数最大化的值,从而找到最佳拟合的模型。

通过这种方式,逻辑回归模型能够学习到最适合描述数据生成过程的参数,从而对新的观测数据进行有效的预测。

6.评估逻辑回归模型的性能

(1)混淆矩阵

预测值=正例预测值=反例
真实值=正例TPFN
真实值=反例FPTN

(2)准确率(Accuracy):表示模型预测正确的样本数与总样本数之比,即
在这里插入图片描述

(3)精确率(Precision):表示模型预测为正例的样本中,真正例的比例,即
在这里插入图片描述
(4)召回率(Recall):表示模型正确预测正例样本的比例,即
在这里插入图片描述
(5)F1分数(F1 Score):综合了准确率和召回率,即
在这里插入图片描述
(6)接收者操作特征曲线下面积(AUC-ROC)
ROC曲线通过描绘模型在不同阈值下的真正例率(True Positive Rate, TPR)和假正例率(False Positive Rate, FPR)来展示模型的性能。真正例率是指正例被正确预测的比例,而假正例率是指负例被错误地预测为正例的比例。ROC曲线提供了一个直观的方式来查看模型在区分两个类别方面的能力,而不依赖于特定的分类阈值。

AUC衡量的是ROC曲线下的面积,范围从0到1。AUC值越高,表示模型的区分能力越强,即正确地将正类和负类分开的能力越强。AUC为0.5时,表示模型的预测能力不如随机猜测;而AUC为1时,表示模型在预测正类和负类上有完美的表现。

第三章 KNN

1.K-近邻算法原理

K-近邻算法(K-NN)是一种基本的分类和回归算法。其核心思想非常直观:通过测量不同特征点之间的距离,来找出测试点最近的K个邻居,然后根据这些邻居的信息来预测测试点的类别(在分类问题中)或值(在回归问题中)。
工作流程大致如下:

(1)选择K的值:K是一个用户定义的常数,表示最近邻的数量。
(2)距离计算:计算测试点与训练集中每个点之间的距离。常用的距离度量包括欧氏距离、曼哈顿距离等。
(3)找到最近的K个邻居:根据距离的远近,选出距离测试点最近的K个训练样本。
(4)决策:对于分类问题,采取投票机制,即在K个最近邻居中多数类别的那个类别被赋予测试点。对于回归问题,则通常取这K个邻居的平均值作为预测结果。

K-NN算法的一个主要优点是模型非常简单易懂。然而,它也有缺点,比如当训练集很大时,计算距离的过程可能非常耗时,此外,选择合适的K值也是一个挑战。

2.讨论数据归一化和标准化对KNN算法的影响

数据归一化(Normalization):归一化是将所有特征缩放到[0, 1]区间的过程。这种方法对于确保没有一个特征会因为其数值范围大而对距离计算产生不成比例的影响非常有效。例如,如果一个特征的范围是0到1,而另一个特征的范围是0到1000,未归一化的数据会导致后者对距离计算的贡献远大于前者。

数据标准化(Standardization):标准化是将数据特征缩放到具有零均值和单位方差的过程。这对于KNN来说也是非常重要的,因为它确保了所有特征在距离计算中具有相同的重要性,无论它们的原始尺度或分布如何。标准化有助于减少特征之间尺度差异造成的偏差,从而提高KNN算法的准确性和效率。

第四章 支持向量机(SVM)

1.什么是支持向量机(SVM)

支持向量机(SVM)是一种广泛应用于分类和回归问题的监督学习模型。其基本思想是在特征空间中找到一个最优的超平面,使得不同类别的数据被该超平面分开,同时确保与超平面最近的数据点(称为支持向量)到超平面的距离最大化。这个最优超平面的寻找,基于最小化分类间隔的原则。

SVM在处理非线性问题时,通过引入核技术(如线性核、多项式核、径向基函数核等),将数据映射到更高维的空间中,使得数据在新的空间里呈线性可分,从而仍能使用线性分类的方法来处理。此外,SVM还有一些参数(如C参数和核参数)可以调整,以优化模型的性能。

2.SVM如何处理线性不可分数据?

SVM处理线性不可分数据的一种常见方法是使用所谓的核技巧(Kernel Trick)。核技巧通过一个非线性映射将原始数据从原始特征空间转换到一个更高维度的空间,在这个新空间中,原本线性不可分的数据可能变得线性可分。这样,SVM就能使用与线性情况相同的方法来找到最优超平面。

3.在SVM中,核技巧的作用是什么?它是如何转换特征空间的?

核技巧在支持向量机(SVM)中的作用是使得模型能够处理线性不可分的数据。核技巧通过一个核函数将数据从原始的特征空间映射到一个更高维的空间,在这个新的空间中,数据点更有可能是线性可分的。这样的转换允许SVM在新的特征空间中找到一个超平面,该超平面在原始特征空间中可能对应于一个复杂的边界。

核函数的选择取决于数据和问题,常见的核函数包括线性核、多项式核、径向基函数(RBF)核和Sigmoid核。这些函数能够计算出原始特征空间中任意两个数据点的高维特征表示的相似度,而无需显式地在高维空间中计算它们的坐标,这个计算方法称为核技巧。
例如,使用径向基函数(RBF)核可以将原始特征空间中的数据映射到一个无限维的空间,在这个空间中,即使是最复杂的数据关系也可以通过超平面来线性分割。这使得SVM能够在保持模型复杂度可控的同时捕捉复杂的数据结构。

4.如何选择合适的核函数?

在支持向量机(SVM)中选择合适的核函数至关重要,因为核函数的选择直接影响到模型的性能和数据特征在新的高维空间中的可分性。核函数负责将原始数据映射到更高维的特征空间,在这个空间中,线性不可分的数据集可能变得可分。不同的核函数适用于不同类型的数据分布和特征关系,因此,选择合适的核函数是实现SVM模型高效学习的关键。
选择合适的核函数通常遵循以下几个步骤:
(1)数据探索:首先,需要对数据进行深入的探索和理解。了解数据的分布特性、特征间的关系以及问题的性质,这有助于缩小核函数的选择范围。
2)尝试常用核函数:通常,可以从尝试几种常用的核函数开始,例如线性核、多项式核、径向基函数(RBF)核等。这些核函数各有优缺点,适用于不同类型的数据和问题。
(3)交叉验证:通过交叉验证等方法评估不同核函数的性能。这可以帮助识别出对于当前数据集和任务最有效的核函数。
(4)调整核函数参数:选定核函数后,进一步调整其参数(如多项式核的度数、RBF核的γ参数等)以优化模型性能。这一步骤需要细致的参数调优工作。
(5)实验和评估:在实际应用中,可能需要对多个核函数进行实验和比较,以找到最佳匹配的核函数和参数设置。

5.请解释SVM中软间隔的概念及其重要性。

软间隔(Soft Margin)的概念是指允许某些数据点违反最初的间隔规则的一种机制。这意味着在寻找分割超平面时,一些数据点可以被允许位于它们应该分隔开的边界之内,或者甚至在错误的一侧。这种方法主要用于处理非线性可分的数据集,以及在数据中存在轻微的噪声或异常值时。

软间隔的引入通过一个称为“惩罚参数”(C)的参数来实现。此参数控制了违反间隔规则的成本,即它决定了模型对于每个数据点违反分类边界的容忍程度。较小的C值表示较低的错误容忍度,导致模型对数据点的分类边界违规更加严格;而较大的C值则允许更多的违规数据点,从而使模型更加灵活以适应潜在的噪声或异常值。

软间隔的重要性在于它提供了处理现实世界数据集中常见的问题(如噪声和异常值)的能力。通过适当选择惩罚参数C,可以在模型的泛化能力和对训练数据的拟合度之间找到一个平衡,从而提高模型在未见数据上的表现。

6.SVM如何进行回归(SVR)?它与SVM分类有何区别?

支持向量回归(Support Vector Regression,SVR)是支持向量机(SVM)用于回归任务的版本。它的工作原理与SVM分类相似,但目标是找到一个函数,这个函数的预测值与实际值之间的差距对于所有训练数据而言尽可能的小,同时保持模型的平滑性,避免过拟合。SVR通过引入一个容忍度(ε-epsilon)来实现这一点,该容忍度定义了无需惩罚的预测误差范围。如果预测值与实际值之间的差异小于ε,则不会对模型造成任何惩罚。SVR的目标是找到一个最佳拟合的平面,使得大多数数据点的误差都在ε容忍度内。

SVR与SVM分类的主要区别在于它们的目标。SVM分类的目标是找到一个最优的决策边界,可以最大化正负样本间的间隔,而SVR的目标是找到一个函数,使得实际输出值和预测输出值之间的误差最小,同时确保误差在一定的容忍度内。此外,SVR引入了ε这个概念,用于定义不对预测误差施加惩罚的边界,这是SVM分类中没有的。

第五章 朴素贝叶斯(Naive Bayes)

1.解释朴素贝叶斯分类器基本原理

贝叶斯理论的核心思想是“条件概率”,即一个事件在另一个事件发生的条件下所发生的概率。通过这个理论,我们可以根据已有的知识或先验概率,估计特定事件发生的概率。

朴素贝叶斯分类器是基于贝叶斯定理的一种简单概率分类器。其核心思想是,给定一个样本,我们计算该样本属于各个类别的概率,然后选择概率最高的类别作为该样本的类别。

“朴素”贝叶斯的称呼来源于它在建模时采用的一个基本假设,即所有的特征在给定类别的条件下都是相互独立的。

2.解释贝叶斯定理,它是如何在朴素贝叶斯分类器中应用的?

贝叶斯定理是一种计算在已知某些其他条件发生的情况下,一个事件发生概率的方法。其公式为:
在这里插入图片描述

在朴素贝叶斯分类器中,贝叶斯定理被用来计算给定特征集B1,B2,…,Bn下,一个数据点属于某个类别A的概率。由于“朴素”的假设,即所有特征都是相互独立的,我们可以简化概率计算为所有单个特征给定类别的概率的乘积:
在这里插入图片描述

第六章 决策树(Decision Tree)

1.什么是决策树?

决策树是一种常用于分类回归的机器学习方法。它通过从根部到叶节点的一系列条件分支,模拟决策过程来预测目标变量的值。决策树的每个内部节点代表一个属性上的测试,每个分支代表测试的结果,而每个叶节点代表一个类标签(在分类树中)或连续值(在回归树中)。

决策树通常有三个步骤:特征选择、决策树的生成、决策树的修剪
(1)决策树学习的目标:根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。
(2)决策树学习的本质:从训练集中归纳出一组分类规则,或者说是由训练数据集估计条件概率模型。
(3)决策树学习的损失函数:正则化的极大似然函数
(4)决策树学习的测试:最小化损失函数
(5)决策树学习的目标:在损失函数的意义下,选择最优决策树的问题。

2.什么是基尼指数?

基尼指数是一个衡量数据集不纯度的指标,常用于构建决策树中的分类问题。它的计算公式如下:
在这里插入图片描述

基尼指数的含义是,从数据集中随机选取两个样本,这两个样本属于不同类别的概率。

尼指数是一种衡量数据集不纯度的方法,广泛应用于决策树算法中来评估数据分割的质量。

在决策树中,每一个节点的分割都旨在增加子节点的纯度,即每个子节点中的样本尽可能属于同一类别。基尼指数越小,表示数据集的不纯度越低,也就是说,一个节点包含的样本越倾向于属于同一个类别。

3.能否解释什么是熵?

熵是信息论中的一个核心概念,用于衡量一组数据的不确定性或者混乱程度。在数据科学中,熵常用于决策树等机器学习算法中,帮助我们理解数据集中信息的纯净度。
熵的计算公式为:
在这里插入图片描述

其中, H(X)表示随机变量X的熵,p(xi) 是随机变量中某一事件xi发生的概率, n是事件的总数。熵的取值范围通常在0到nlog2n之间,其中n是随机变量可能取值的数量。

4.请解释什么是信息增益?

信息增益是决策树等机器学习算法中用来选择分割属性的一种方法。它衡量的是在知道某属性的信息之后,数据不确定性减少的程度,或者说是熵的减少量。信息增益越大,意味着该属性使得数据集的纯度提高得越多。

计算信息增益的公式是:信息增益=原始数据集的熵 - 分割后数据集的加权熵

5.出多特征情况下,使用信息增益进行分割的过程描述

在决策树算法中,使用信息增益进行分割的过程主要包括以下几个步骤:
(1)计算整个数据集的原始熵:首先,我们需要计算数据集在任何分割发生之前的不确定性程度,这是通过数据集的当前类别分布来完成的。
(2)为每个特征计算信息增益:对于数据集中的每个特征,我们尝试通过该特征的每个可能的值来分割数据集,然后计算分割后的加权熵。信息增益等于原始熵减去分割后的加权熵。
(3)选择信息增益最大的特征进行分割:对所有特征计算完信息增益后,选择信息增益最大的特征来分割数据集。这个特征提供了最好的区分数据集的能力,从而减少了不确定性。
(4)递归重复上述过程:对分割后的每个子数据集重复上述过程,直到满足某个停止条件,比如数据集不能再被分割,或者达到树的最大深度。

6.在决策树中,使用哪些方法来防止过拟合?

(1)剪枝(Pruning):剪枝是通过移除决策树中的一些分支来减少模型复杂度的技术。有两种主要类型的剪枝:预剪枝(在树完全生成之前停止树的成长)和后剪枝(先构建树,然后移除对模型泛化能力提升不大的节点)。
(2)设置最大深度(Max Depth):限制树的最大深度可以防止树变得过于复杂,从而降低过拟合的风险。
(3)设置最小分裂样本数(Min Samples Split):这个参数决定了一个节点在被允许进一步分裂之前必须拥有的最小样本数。增加这个值可以阻止模型学习过于具体的模式。
(4)设置最小叶节点样本数(Min Samples Leaf):这个参数决定了叶节点必须拥有的最小样本数,使用这一参数可以确保每个叶节点包含足够多的样本,从而避免模型在训练数据上过于精细化。
(5)特征选择(Feature Selection):选择最相关的特征来训练模型,移除不相关的特征可以减少复杂度和过拟合的风险。

第七章 随机森林(Random Forest)

1.什么是随机森林

随机森林是一种集成学习算法,它通过结合多个决策树的预测结果来提高预测准确性。在随机森林中,每个决策树都是独立训练的,且在训练过程中,通过随机选择样本(行)和特征(列)来增加树之间的多样性。随机森林的最终预测是通过对所有单个树的预测进行平均(回归任务)或投票(分类任务)得出的。
(1)随机抽样:从原始数据集中随机抽取样本,允许重复抽样(即bootstrap抽样),形成多个不同的训练数据集。
(2)构建决策树:对每个数据集训练一个决策树。在每个决策节点,从所有特征中随机选择一个特征子集,并基于该子集找到最佳分割方式。这增加了模型的多样性。
(3)集成预测:所有决策树构建完成后,随机森林通过对这些树的预测结果进行投票(分类问题)或平均(回归问题)来给出最终预测。

2.什么是袋外误差(OOB),以及它在随机森林中如何发挥作用?

袋外误差(Out-Of-Bag,OOB)是随机森林中的一个重要概念,用于衡量模型的预测性能。在随机森林的训练过程中,每棵树都是通过从原始数据集中进行有放回的抽样(即bootstrap抽样)来构建的。这种抽样方法意味着,对于每棵树,大约有三分之一的数据没有被用于该树的训练,这部分未被抽中的数据被称为袋外数据(OOB)。
OOB误差的计算方式如下:
(1)对于每棵树,使用其对应的OOB数据进行预测。
(2)比较每个样本的OOB预测结果与其真实标签,计算误差。
(3)对所有样本的OOB误差取平均,得到OOB误差。
OOB误差的用途:
(1)模型评估:OOB误差提供了一种不需要单独测试集的模型性能评估方法。由于OOB样本未被用于模型训练,它们可以作为一个内置的验证集来评估模型的泛化能力。OOB误差与通过交叉验证得到的误差相近,因此它是一个有效的模型评估指标。
(2)参数调优:可以使用OOB误差来调优随机森林的参数,如树的数量、最大深度等。通过观察不同参数设置下的OOB误差,可以选择使OOB误差最小的参数配置。

第八章 Boosting算法

1.什么是Boosting算法?它是如何工作的?

Boosting算法是一种集成学习技术,旨在创建一个强学习器(性能较好的模型),通过组合多个弱学习器(性能稍差的模型)。这些弱学习器通常是决策树。Boosting的关键思想是顺序地添加弱学习器,每次添加都是为了纠正前一轮弱学习器的错误
假设我们有一个简单的二分类问题,目标是根据一组特征将样本分类为正类或负类。我们可以使用Boosting算法如下:
(1)首先,训练一个弱学习器(比如,一个简单的决策树),基于初始等权重的数据集进行分类。
(2)接着,基于第一个学习器的分类结果,增加被错误分类样本的权重,减少正确分类样本的权重。
(3)然后,基于更新后的权重训练第二个弱学习器。
(4)这个过程重复多次,每次都调整样本权重,并添加新的弱学习器,直到达到预定的学习器数量或模型性能满足要求。
(5)最后,所有弱学习器根据它们的准确率加权投票,形成最终模型。

2.AdaBoost算法的基本原理是什么?

AdaBoost(自适应增强)算法是一种集成学习方法,基本原理是将多个弱学习器(例如,决策树)组合成一个强学习器。算法逐步添加弱学习器,每次添加都着重于那些之前被模型错误预测的样本,从而使模型在这些样本上表现更好。
(1)初始化样本权重:开始时,每个样本的权重都是相同的。
(2)训练弱学习器:在每一轮中,根据当前的样本权重训练一个弱学习器。然后计算该学习器的错误率。
(3)更新样本权重:增加那些被当前弱学习器错误分类的样本权重,减少那些被正确分类的样本权重。这意味着在下一轮中,新的弱学习器将更加关注那些之前被错误分类的样本。
(4)组合弱学习器:根据每个弱学习器的性能,给予其一个权重,性能越好的学习器获得的权重越大。最终模型是所有这些弱学习器的加权组合。

3.解释Gradient Boosting的工作原理,它和AdaBoost的主要区别是什么?

Gradient Boosting是一种机器学习技术,用于回归和分类问题,它通过集成多个弱预测模型(通常是决策树)来构建一个强预测模型。其工作原理基于逐步减少模型误差的思想,具体步骤如下:
(1)初始化:使用一个基础模型(通常是一个简单的预测模型,如平均值或者是一个简单的决策树)作为初始预测。
(2)迭代添加:在每一轮中,添加一个新的弱学习器,尝试纠正前一轮模型的残差(真实值与当前预测值之间的差异)。
(3)梯度下降:新添加的弱学习器被训练,以最小化损失函数的梯度(即,找到使模型误差下降最快的方向)。
(4)组合模型:所有弱学习器组合成最终模型,其中每个学习器的贡献由其在减少整体误差中的效率决定。
与AdaBoost的主要区别
(1)学习过程:AdaBoost通过调整样本权重来关注被前一个学习器错误分类的样本,而Gradient Boosting通过关注残差来优化模型。
(2)目标函数:AdaBoost使用加权错误率作为学习的目标函数,Gradient Boosting使用损失函数的梯度来指导学习。
(3)灵活性:Gradient Boosting在选择损失函数方面更加灵活,可以根据具体问题选择最适合的损失函数,而AdaBoost主要关注分类错误率。
(4)模型更新:在Gradient Boosting中,每一步的模型更新是通过添加能够最小化损失函数的新模型来实现的,而AdaBoost是通过提高被错分类数据点的权重来实现的。

4.什么是LightGBM?它如何优化传统的Gradient Boosting算法?

LightGBM是一个梯度提升框架,由微软开发,用于构建快速、高效的机器学习模型。它是对传统Gradient Boosting算法的一种优化,主要通过两种技术来提高效率和速度:梯度单边采样(GOSS)基于直方图的决策树学习
(1)梯度单边采样(GOSS):LightGBM通过GOSS保留具有更大梯度(即更难学习的样本)的数据点,而对具有较小梯度的数据点进行随机采样。这种方式减少了计算负荷,同时保证了模型学习的质量不会受到太大影响。
(2)基于直方图的决策树学习:传统的Gradient Boosting算法在每次分裂时都需要对所有特征的所有可能的分割点进行评估,这是非常耗时的。LightGBM采用基于直方图的方法,即先将连续特征的值分桶(binning)到离散的bins中,然后在这些bins上构建直方图,通过这些直方图来找到最优的分割点。这大大减少了计算时间和内存使用。

5.解释XGBoost算法。它与传统的Boosting算法有何不同?

XGBoost(eXtreme Gradient Boosting)是一个优化的分布式梯度提升库,旨在提高效率、灵活性和可扩展性。它实现了梯度提升决策树算法,并对其进行了优化。XGBoost的主要特点包括:
(1)正则化:XGBoost在目标函数中加入了正则项,既包括树的叶子节点的数量,也包括叶子节点权重的L2正则化,有助于防止模型过拟合,提高模型的泛化能力。
(2)分裂点查找:XGBoost使用近似算法来快速和有效地找到最佳分裂点,从而提高算法的效率。
(3)并行处理:虽然树的构建本身是顺序过程,但XGBoost可以在特征的层面上并行处理,通过计算每个特征的增益来加速树的构建过程。
(4)处理缺失值:XGBoost可以自动学习缺失值的处理方式,无需事先填充缺失值。
(5)树剪枝:XGBoost从最大深度开始生长树,然后回过头来剪枝,而不是像传统的梯度提升那样停止生长当达到一定条件。
与传统Boosting算法的不同:
(1)效率:XGBoost在算法的效率和执行速度方面进行了优化,特别是通过并行处理和近似算法提高了大规模数据集上的性能。
(2)正则化:XGBoost通过加入正则项来减少模型的复杂度,从而避免过拟合,这在传统的Boosting算法中不常见。
(3)灵活性:XGBoost支持用户自定义优化目标和评价标准,增加了算法的灵活性。

第九章 聚类算法

1.简述K均值聚类算法的流程

假设有m条数据,n个特性,则K均值聚类算法的流程如下:
(1)随机选取k个点作为起始中心(k行n列的矩阵,每个特征都有自己的中心);
(2)遍历数据集中的每一条数据,计算它与每个中心的距离;
(3)将数据分配到距离最近的中心所在的簇;
(4)使用每个簇中的数据的均值作为新的簇中心;
(5)如果簇的组成点发生变化,则跳转执行第2步;否则,结束聚类。

2.简述什么是降维以及PCA算法的流程

降维是通过某种数学变换将原始高维属性空间转变为一个低维子空间,保留重要性比较高的特征维度,去除冗余的特征。
主元成分分析PCA使用最广泛的数据降维算法,其一般流程如下:
(1)样本零均值化;
(2)计算数据的协方差矩阵;
(3)计算协方差矩阵的特征值与特征向量;
(4)按照特征值,将特征向量从大到小进行排序;
(5)选取前 k 个特征向量作为转换矩阵;
(6)零均值化后的数据与转换矩阵做矩阵乘法获得降维后的数据。

3.LDA的基本思想是什么?

线性判别分析的原理是对于给定的训练集,设法将样本投影到一条直线上,使得同类的投影点尽可能接近,异类样本的投影点尽可能远离;在对新样本进行分类时,将其投影到这条直线上,再根据投影点的位置来确定新样本的类别。

4.聚类算法的两大性能度量指标是什么?其简单举例说明

聚类算法的两大性能度量指标是内部指标外部指标
(1) 内部指标是根据聚类结果本身来评价聚类算法的优劣,比如SSE(误差平方和:计算每个样本到其所属簇的中心点的距离平方和(越小越好))、轮廓系数Calinski-Harabaz系数等。
(2)外部指标是根据聚类结果和已知的参考标准(如真实的类别标签)来比较,从而衡量聚类算法的性能,比如准确率(越高越好)、召回率F1值等。

机器学习知识点总结 PDF下载地址

我已将以上机器学习知识点和人工智能必考内容总结成PDF文件,下载地址如下
机器学习高频考点下载

参考

部分内容来自公众微信号:塞里工作室,感谢塞里工作室对知识点的总结,对我的学习有很多的帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/3012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

# 从浅入深 学习 SpringCloud 微服务架构(六)Feign(1)

从浅入深 学习 SpringCloud 微服务架构(六)Feign(1) 一、Feign 组件概述: Feign 是 Netflix 开发的声明式,模板化的HTTP客户端。 其灵感来自 Retrofit,JAXRS-2.0 以及 WebSocket。 Feign 可帮助我们更加…

Arduino中增加修改ESP32烧录固件的速度

在Arduino中,默认对ESP32-S3芯片的烧录速度只支持115200、230400、460800、921600这几种速率。只能够在 工具->Upload Speed中选择这些。 有的时候烧录还是觉得太慢了。那么能否更快一些呢? 首先你的USB转串口芯片要支持高速的。常见的芯片速率支持…

Java | 选择排序算法实现

大家可以关注一下专栏,方便大家需要的时候直接查找,专栏将持续更新~ 题目描述 编写一个Java程序,实现选择排序算法。程序需要能够接收一个整型数组作为输入,并输出排序后的数组。 选择排序是一种简单直观的排序算法&#xf…

机械臂模型更换成自己的urdf模块

1.将urdf生成slx文件 smimport(rm_65_flange.urdf);%生成Simscape物理模型 2.更换joint部分(对应与几个输入几个输出)(依次更换) 3.更改关节部分(依次更换) 找到urdf文件夹下的meshes文件夹,看…

基于单片机的羽毛球计分器(含proteus仿真和程序)

目录 完整文本及仿真、程序可私信我获取 前言 第一章 设计任务及方案 1.1 设计任务 1.2 总体设计分析 1.3 功能模块方案设计 1.4 方案确定 第二章、硬件设计 2.1 AT89C51 单片机芯片介绍 2.1.1 主要特性 2.1.2 管脚说明 2.1.3 元件清单 2.2 电路介绍 2…

自动化测试用例设计

知人者智,自知者明。大家好,给大家分享一下关于自动化测试用例的设计心得,首先完整的熟悉业务是第一步要做的,不熟悉业务的前提下不会设计出高效且合理的用例,其次是我们要有明确的测试目标,确保我们写的每…

Redis(单/多)线程

一、 Redis 单线程 与 多线程 怎么说? (1)重要的版本迭代 redis4 之前仅支持 单线程, redis 4之后慢慢 支持多线程, 直到redis6/7后才稳定 (2)redis 的 工作线程 是 单线程的 &#xff08…

Python构建学生信息管理系统:构建RESTful API - 学生信息管理系统的后端逻辑

在之前的博客里,我们已经完成了项目初始化,在本篇博客中,我们将深入探讨如何使用Flask框架实现学生信息管理系统的后端逻辑,特别是通过RESTful API来实现学生信息的增删改查(CRUD)操作。 Flask RESTful AP…

C系统编程:从零手搓一个shell

背景 这么久没更新就是在干这件事!!因为系统编程已经学的差不多了,所以想找几个项目练练手,之前就一直想写一个自己的shell!!现在终于有机会实现了。 首先说明一下我的操作系统:Arch linux 服务…

函数的查询

Oracle从入门到总裁:​​​​​​https://blog.csdn.net/weixin_67859959/article/details/135209645 在实际使用中经常会需要查询数据库中已有的函数或者某一个函数的内容,下面就介绍一下如何查询函数。 和存储过程类似,这也需要使用到数据字典user_s…

Spring - 4 ( 11000 字 Spring 入门级教程 )

一:Spring IoC&DI 在前⾯的章节中, 我们学习了 Spring Boot 和 Spring MVC 的开发, 可以完成⼀些基本功能的开发了, 但是什么是 Spring 呢? Spring, Spring Boot 和 SpringMVC 又有什么关系呢? 咱们还是带着问题去学习.我们先看什么是Spring 1.1 Spring 是什…

更新至2022年上市公司数字化转型数据合集(四份数据合集)

更新至2022年上市公司数字化转型数据合集(四份数据合集) 一、2000-2022年上市公司数字化转型数据(年报词频、文本统计) 二、2007-2022年上市公司数字化转型数据(年报和管理层讨论)(含原始数据…

微前端是如何实现作用域隔离的?

微前端是如何实现作用域隔离的? 一、前言 沙箱(Sandbox)是一种安全机制,目的是让程序运行在一个相对独立的隔离环境,使其不对外界的程序造成影响,保障系统的安全。作为开发人员,我们经常会同沙…

UE5 GAS开发P35,36,37,38,39 将药水修改为AbilitySystem效果

这几节课都是将药水修改成更方便使用的AbilitySystem效果的Actor,分别为增加血量,增加蓝量,暂时获得最大生命值上限 AuraEffectActor.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #…

介绍一个开源IOT组态项目

项目介绍 金合可视化平台是一款强大而操作简便的低代码平台,专为满足物联网领域的可视化开发需求而设计。通过该平台,用户可以利用拖拽配置的方式,轻松创建个性化的可视化大屏,无需熟练的编程技能,大幅提高了开发效率。…

图搜索的经典启发式算法A星(A*、A Star)算法详解

文章目录 1. 引言2. 广度优先搜索3. Dijkstra 算法4. 启发式优先搜索(Heuristic)4.1 贪心最佳优先搜索4.2 A*搜索 1. 引言 在许多场景中,我们常会遇到一类问题,即“找到一个位置到另一个位置的距离最短(用时最少&…

使用 Rust 后,我​​使用 Python 的方式发生了变化

使用 Rust 后,我​​使用 Python 的方式发生了变化 Using type hints where possible, and sticking to the classic “make illegal state unrepresentable” principle. 尽可能使用类型提示,并坚持经典的“使非法状态不可表示”原则。 近年来&#xff…

【Pytorch】(十三)PyTorch模型部署: TorchScript

文章目录 (十三)PyTorch模型部署Pytorch动态图的优缺点TorchScriptPytorch模型转换为TorchScripttorch.jit.tracetorch.jit.scripttrace和script的区别总结script 和 trace 混合使用保存和加载模型 (十三)PyTorch模型部署 Pytorc…

科学高效备考AMC8和AMC10竞赛,吃透2000-2024年1850道真题和解析

如何科学、有效地备考AMC8、AMC10美国数学竞赛?多做真题,吃透真题是科学有效的方法之一,通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的…

成功解决ImportError: cannot import name ‘builder‘ from ‘google.protobuf.internal

成功解决ImportError: cannot import name builder from google.protobuf.internal 目录 解决问题 解决思路 解决方法 解决问题 ImportError: cannot import name builder from google.protobuf.internal 解决思路 导入错误:无法从“google.protobuf.internal”导入名称“…