FakeOrange
预计阅读时间:10分钟29秒

10种常见机器学习算法解读(优劣与机制)

机器学习算法解析

0
0

线性回归

线性回归是一种统计方法,用于检验两个连续变量之间的关系:一个自变量和一个因变量。线性回归的目标是找到一条最佳拟合线,该线通过一组数据点,从而可以用来预测未来的观察结果。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/7827b3ea-8665-4082-9e5d-6f2989a0a806image.png
简单线性回归模型的方程为:

y=b0+b1⋅xy = b_0 + b_1 \cdot xy=b0​+b1​⋅x

其中,yyy 是因变量,xxx 是自变量,b0b_0b0​ 是 y 轴截距(线与 y 轴交点),b1b_1b1​ 是线的斜率。斜率表示 yyy 在 xxx 变化时的变化量。

为了确定最佳拟合线,我们使用最小二乘法,该方法寻找使预测的 yyy 值与实际 yyy 值之间的平方差之和最小的线。

线性回归也可以扩展到多个自变量,称为多元线性回归。多元线性回归模型的方程为:

y=b0+b1⋅x1+b2⋅x2+…+bn⋅xny = b_0 + b_1 \cdot x_1 + b_2 \cdot x_2 + \ldots + b_n \cdot x_ny=b0​+b1​⋅x1​+b2​⋅x2​+…+bn​⋅xn​

其中,x1,x2,…,xnx_1, x_2, \ldots, x_nx1​,x2​,…,xn​ 是自变量,b1,b2,…,bnb_1, b_2, \ldots, b_nb1​,b2​,…,bn​ 是对应的系数。

线性回归可以用于简单线性回归和多元线性回归问题。系数 b0b_0b0​ 和 b1,…,bnb_1, \ldots, b_nb1​,…,bn​ 通过最小二乘法进行估计。一旦估计了系数,就可以用来对因变量进行预测。

线性回归可用于预测未来,例如预测股票价格或将要销售的产品单位数。然而,线性回归是一种相对简单的方法,可能不适用于所有问题。它假设自变量和因变量之间的关系是线性的,但这并不总是如此。

此外,线性回归对异常值非常敏感,这意味着如果数据中存在不符合一般趋势的极端值,将会显著影响模型的准确性。

总之,线性回归是一种强大且广泛使用的统计方法,可以用来检验两个连续变量之间的关系。这是一个简单但强大的工具,可以用来对未来进行预测。然而,重要的是要记住,线性回归假设变量之间存在线性关系,并且对异常值敏感,这可能会影响模型的准确性。


线性回归面试问题及答案:

  • 线性回归的假设是什么?线性回归的假设包括:线性关系:自变量与因变量之间的关系是线性的。独立性:观察值彼此独立。同方差性:误差项的方差在所有自变量的水平上是恒定的。正态性:误差项呈正态分布。无多重共线性:自变量之间没有高度相关性。无自相关:误差项不与自身自相关。
  • 如何确定线性回归模型的拟合优度?确定线性回归模型拟合优度的方法有几种:R方值:R方值是一个统计度量,表示模型中自变量解释的因变量方差的比例。R方值为 1 表示模型解释了因变量的所有方差,而 0 表示模型没有解释任何方差。调整后的 R 方值:调整后的 R 方值是 R 方值的修改版本,考虑了模型中自变量的数量。在比较不同自变量数量的模型时,这是拟合优度的更好指示。均方根误差 (RMSE):RMSE 测量预测值与实际值之间的差异。较低的 RMSE 表明模型对数据的拟合更好。平均绝对误差 (MAE):MAE 测量预测值与实际值之间的平均差异。较低的 MAE 表明模型对数据的拟合更好。
  • 如何处理线性回归中的异常值?异常值会对线性回归模型的预测产生重大影响,因为它们可能会扭曲回归线。处理线性回归中的异常值的方法包括:移除异常值:一种选择是直接在训练模型之前从数据集中移除异常值。然而,这可能导致重要信息的丢失。转换数据:应用转换,例如取数据的对数,可以帮助减少异常值的影响。使用稳健回归方法:稳健回归方法(如 RANSAC 或 Theil-Sen)对异常值的敏感性低于传统线性回归。使用正则化:正则化可以通过向成本函数添加惩罚项来帮助防止过拟合,过拟合可能是由于异常值造成的。最终,最佳方法将取决于具体的数据集和分析目标。


逻辑回归

逻辑回归是一种统计方法,用于根据一个或多个自变量预测二元结果,例如成功或失败。这是机器学习中一种流行的技术,通常用于分类任务,例如确定电子邮件是否为垃圾邮件,或预测客户是否会流失。

逻辑回归模型基于逻辑函数,它是一个将输入变量映射到 0 和 1 之间概率的 S 形函数。该概率随后用于对结果进行预测。

逻辑回归模型由以下方程表示:

P(y=1∣x)=11+e−(b0+b1x1+b2x2+…+bnxn)P(y=1|x) = \frac{1}{1 + e^{-(b_0 + b_1 x_1 + b_2 x_2 + \ldots + b_n x_n)}}P(y=1∣x)=1+e−(b0​+b1​x1​+b2​x2​+…+bn​xn​)1​

其中,P(y=1∣x)P(y=1|x)P(y=1∣x) 是在给定输入变量 xxx 的情况下,结果 yyy 为 1 的概率,b0b_0b0​ 是截距,b1,b2,…,bnb_1, b_2, \ldots, b_nb1​,b2​,…,bn​ 是输入变量 x1,x2,…,xnx_1, x_2, \ldots, x_nx1​,x2​,…,xn​ 的系数。

系数是通过在数据集上训练模型,并使用优化算法(如梯度下降)来最小化成本函数(通常是对数损失)来确定的。

一旦模型经过训练,就可以通过输入新数据并计算结果为 1 的概率来进行预测。将结果分类为 1 或 0 的阈值通常设定为 0.5,但可以根据具体任务和期望的假阳性与假阴性之间的权衡进行调整。

下面是一个表示逻辑回归模型的图示:

data/78df2c1f-e442-415d-a382-fa7925af0c4b/adaeb318-2704-4208-bda1-43ffbbc01aebimage.png

在此图中,输入变量 x1x_1x1​ 和 x2x_2x2​ 被用来预测二元结果 yyy。逻辑函数将输入变量映射到一个概率,然后用来对结果进行预测。系数 b1b_1b1​ 和 b2b_2b2​ 通过在数据集上训练模型确定,阈值设定为 0.5。

总之,逻辑回归是一种强大的技术,用于预测二元结果,广泛应用于机器学习和数据分析。它易于实现和解释,并且可以轻松正则化以防止过拟合。

逻辑回归面试问题及答案:

  • 什么是逻辑函数?逻辑函数,也称为 sigmoid 函数,是一种将任何实数值映射到 0 和 1 之间的 S 形曲线。它定义为 f(x)=11+e−xf(x) = \frac{1}{1 + e^{-x}}f(x)=1+e−x1​,其中 eee 是自然对数的底数。逻辑函数在逻辑回归中用于建模二元结果的概率。
  • 逻辑回归可以用于多类分类吗?是的,逻辑回归可以用于多类分类,通过为每个类别创建一个单独的二元逻辑回归模型,并选择具有最高预测概率的类别。这被称为一对多(one-vs-all)或一对其余(one-vs-rest)方法。或者,我们可以使用 softmax 回归,这是逻辑回归的推广,能够直接处理多个类别。
  • 如何解释逻辑回归中的系数?逻辑回归中的系数表示在保持其他预测变量不变的情况下,预测变量单位变化对结果的对数几率的变化。可以使用赔率比来解释系数的大小。赔率比大于 1 表示预测变量的单位增加增加了结果的几率,而赔率比小于 1 表示预测变量的单位增加减少了结果的几率。


支持向量机(SVM)

支持向量机(SVM)是一种监督学习算法,可用于分类或回归问题。SVM的主要思想是通过最大化边界与每个类别中最近的数据点之间的距离(即间隔)来找到分隔数据中不同类别的边界。这些最近的数据点称为支持向量。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/51f644ef-bba7-4b41-8320-537a8fb698a6image.png

SVM在数据不是线性可分的情况下特别有用,这意味着无法用一条直线将其分开。在这种情况下,SVM可以通过一种称为核技巧的方法将数据转换为更高维的空间,从而找到非线性边界。在SVM中使用的一些常见核函数包括多项式核、径向基函数(RBF)和Sigmoid核。

SVM的主要优点之一是它们在高维空间中非常有效,并且即使在特征数量大于样本数量的情况下也能表现良好。此外,SVM在内存使用上很高效,因为它们只需存储支持向量,而不需要存储整个数据集。

另一方面,SVM对核函数的选择和算法参数较为敏感。还需要注意的是,SVM不适合大规模数据集,因为训练时间可能相当长。

总之,支持向量机(SVM)是一种强大的监督学习算法,可用于分类和回归问题,特别是当数据不是线性可分时。该算法以其在高维空间中的良好性能以及找到非线性边界的能力而闻名。然而,它对核函数和参数的选择较为敏感,并且不适合大规模数据集。

优点:

  • 在高维空间中有效:即使在特征数量大于样本数量的情况下,SVM也能表现良好。
  • 内存高效:SVM只需存储支持向量,而不需要存储整个数据集,因此内存使用高效。
  • 多用途:SVM可用于分类和回归问题,并且可以使用核技巧处理非线性可分的数据。
  • 对噪声和异常值稳健:SVM对数据中的噪声和异常值稳健,因为它们只依赖于支持向量。

缺点:

  • 对核函数和参数的选择敏感:SVM的性能可能高度依赖于核函数的选择和算法参数。
  • 不适合大规模数据集:对于大规模数据集,SVM的训练时间可能非常长。
  • 结果解释困难:解释SVM的结果可能较为困难,特别是当使用非线性核时。
  • 对重叠类别的适应性差:当类别之间存在显著重叠时,SVM可能会遇到困难。

总之,SVM是一种强大而多用途的机器学习算法,可用于分类和回归问题,特别是当数据不是线性可分时。然而,它们对核函数和参数的选择敏感,不适合大规模数据集,并且结果解释较为困难。


决策树

决策树是一种用于分类和回归任务的机器学习算法。它们是决策制定的强大工具,可以用于建模变量之间的复杂关系。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/e5932fc4-158d-4b45-8bbe-99d0bf5c32b3image.png

决策树是一种树状结构,每个内部节点代表一个决策点,每个叶节点代表一个最终结果或预测。树是通过根据输入特征的值递归地将数据分割成子集来构建的。目标是找到能最大化不同类别或目标值之间分隔的分割点。

决策树的主要优点之一是易于理解和解释。树状结构允许清晰可视化决策过程,并且每个特征的重要性可以很容易地评估。

构建决策树的过程始于选择根节点,即最佳分隔数据的特征。然后根据该特征的值将数据划分为子集,针对每个子集重复此过程,直到满足停止标准。停止标准可以基于子集中的样本数量、子集的纯度或树的深度。

决策树的主要缺点之一是它们容易对数据过拟合,特别是当树深且叶节点较多时。过拟合发生在树过于复杂并且拟合了数据中的噪声而非潜在模式时。这可能导致在新数据上的泛化性能较差。为防止过拟合,可以使用剪枝、正则化和交叉验证等技术。

决策树的另一个问题是对输入特征的顺序敏感。不同的特征顺序可能导致不同的树结构,最终的树可能不是最优的。为克服这个问题,可以使用随机森林和梯度提升等技术。

总之,决策树是用于决策制定和预测建模的强大而多用途的工具。它们易于理解和解释,但也容易对数据过拟合。为克服这些限制,开发了诸如剪枝、正则化、交叉验证、随机森林和梯度提升等各种技术。

优点:

  • 易于理解和解释:树状结构允许清晰可视化决策过程,并且每个特征的重要性可以很容易地评估。
  • 处理数值型和分类型数据:决策树能够处理数值型和分类型数据,使其成为广泛应用的多功能工具。
  • 高准确性:在许多数据集上,决策树能够实现高准确性,特别是当树不深时。
  • 对异常值稳健:决策树不受异常值的影响,适合噪声数据集。
  • 可用于分类和回归任务。

缺点:

  • 过拟合:决策树容易对数据过拟合,尤其是当树深且叶节点较多时。
  • 对输入特征的顺序敏感:不同的特征顺序可能导致不同的树结构,最终的树可能不是最优的。
  • 不稳定:决策树对数据中的小变化敏感,这可能导致不同的树结构和不同的预测。
  • 偏差:决策树可能偏向具有更多水平的特征或具有多个水平的分类变量,从而导致不准确的预测。
  • 不适合连续变量:决策树不适合连续变量。如果变量是连续的,可能会导致将该变量拆分成多个水平,从而使树变得复杂并导致过拟合。


随机森林

随机森林是一种集成机器学习算法,可用于分类和回归任务。它是多个决策树的组合,其中每棵树使用数据的随机子集和特征的随机子集进行训练。最终的预测是通过对森林中所有树的预测结果进行平均来得出的。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/469907c7-ea4c-4ef3-a2a2-17c4a7af7627image.png

使用多个决策树的想法是,虽然单棵决策树可能容易过拟合,但决策树的集合,或称为森林,可以降低过拟合的风险并提高模型的整体准确性。

构建随机森林的过程始于使用一种称为自助法(bootstrapping)的技术创建多个决策树。自助法是一种统计方法,涉及从原始数据集中随机选择数据点,且选择时可重复。这会生成多个数据集,每个数据集具有不同的数据点,然后用于训练各个决策树。

随机森林的另一个重要方面是为每棵树使用随机特征子集,这称为随机子空间方法。这减少了森林中树之间的相关性,从而提高了模型的整体性能。

随机森林的主要优点之一是它比单棵决策树更不易过拟合。多个树的平均化平滑了错误并减少了方差。随机森林在高维数据集和具有大量分类变量的数据集上也表现良好。

随机森林的缺点是训练和预测的计算成本可能很高。随着森林中树的数量增加,计算时间也会增加。此外,随机森林的可解释性可能低于单棵决策树,因为更难理解每个特征对最终预测的贡献。

总之,随机森林是一种强大的集成机器学习算法,可以提高决策树的准确性。它不易过拟合,并且在高维和分类数据集中表现良好。然而,它的计算成本可能较高,并且可解释性可能低于单棵决策树。


朴素贝叶斯

朴素贝叶斯是一种简单高效的机器学习算法,基于贝叶斯定理,通常用于分类任务。之所以称为“朴素”,是因为它假设数据集中的所有特征相互独立,但在现实世界数据中这并不总是成立。尽管有这个假设,朴素贝叶斯在许多实际应用中仍表现良好。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/cf5c67cb-d2bf-4a50-a024-b262c41aa4d0image.png

该算法通过使用贝叶斯定理计算给定特征值下某一特定类别的概率。贝叶斯定理指出,给定某些证据(特征值)的情况下,假设(在此情况下为类别)的概率与给定假设下证据的概率成正比,并乘以假设的先验概率。

朴素贝叶斯算法可以使用不同类型的概率分布实现,例如高斯分布、多项式分布和伯努利分布。高斯朴素贝叶斯用于连续数据,多项式朴素贝叶斯用于离散数据,伯努利朴素贝叶斯用于二元数据。

朴素贝叶斯的主要优点是其简单性和高效性。它易于实现,所需的训练数据少于其他算法。此外,它在高维数据集上表现良好,并能处理缺失数据。

朴素贝叶斯的主要缺点是特征之间的独立性假设,这在现实世界数据中往往不成立。这可能导致不准确的预测,特别是当特征高度相关时。此外,朴素贝叶斯对数据集中无关特征的存在较为敏感,这可能降低其性能。

总之,朴素贝叶斯是一种基于贝叶斯定理的简单高效的机器学习算法,用于分类任务。它在高维数据集上表现良好,并能处理缺失数据,但其主要缺点是特征之间独立性的假设,这在数据不独立时可能导致不准确的预测。


KNN

K-近邻(KNN)是一种简单而强大的机器学习算法,适用于分类和回归任务。其基于的理念是,相似的数据点往往具有相似的目标值。该算法通过寻找与给定输入点最近的 k 个数据点,并使用这些最近数据点的多数类别或平均值来进行预测。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/1a4dd101-5a0f-42ea-988e-9f8a2d14271cimage.png

构建 KNN 模型的过程始于选择 k 的值,即用于预测的最近邻居的数量。数据被划分为训练集和测试集,训练集用于寻找最近邻居。要对新输入进行预测,算法计算输入与训练集中每个数据点之间的距离,并选择 k 个最近数据点。然后,最近数据点的多数类别或平均值用作预测结果。

KNN 的主要优点之一是其简单性和灵活性。它可用于分类和回归任务,并且不对基础数据分布做任何假设。此外,它能够处理高维数据,可用于有监督学习和无监督学习。

KNN 的主要缺点是其计算复杂性。随着数据集大小的增加,查找最近邻居所需的时间和内存可能变得非常庞大。此外,KNN 对 k 的选择较为敏感,找到 k 的最佳值可能比较困难。

总之,K-近邻(KNN)是一种简单而强大的机器学习算法,适用于分类和回归任务。其基于的理念是,相似的数据点往往具有相似的目标值。KNN 的主要优点在于其简单性和灵活性,能够处理高维数据,并可用于有监督和无监督学习。KNN 的主要缺点是其计算复杂性,并且对 k 的选择较为敏感。


K-均值

K-均值是一种无监督机器学习算法,主要用于聚类。聚类是将相似的数据点分组在一起的过程。K-均值是一种基于中心点的算法或距离算法,我们通过计算距离来将数据点分配到一个聚类中。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/67d5508c-c925-4e22-9295-9d819f25988eimage.png

该算法通过随机选择 k 个中心点开始,其中 k 是我们希望形成的聚类数量。然后,每个数据点被分配到与其最近的中心点对应的聚类中。一旦所有数据点被分配,中心点将根据聚类中的所有数据点的均值进行重新计算。这个过程会重复进行,直到中心点不再移动或数据点的聚类分配不再变化。

K-均值的主要优点之一是其简单性和可扩展性。它易于实现,能够有效处理大型数据集。此外,它是一种快速且稳健的算法,广泛应用于图像压缩、市场细分和异常检测等多个领域。

K-均值的主要缺点是它假设聚类是球形且大小相等,这在现实数据中并不总是成立。此外,它对中心点的初始位置和 k 的选择较为敏感。它还假设数据是数值型的,如果数据不是数值型,则在使用算法之前必须进行转换。

总之,K-均值是一种无监督机器学习算法,主要用于聚类。其基于的理念是,相似的数据点往往彼此接近。K-均值的主要优点在于其简单性和可扩展性,并广泛应用于多个领域。K-均值的主要缺点在于它假设聚类是球形且大小相等,且对中心点的初始位置和 k 的选择敏感,并且假设数据是数值型。


降维算法

降维是一种用于减少数据集中特征数量的技术,同时保持重要信息。它用于提高机器学习算法的性能,并使数据可视化变得更加容易。现有几种降维算法,包括主成分分析(PCA)、线性判别分析(LDA)和t-分布随机邻域嵌入(t-SNE)。

data/78df2c1f-e442-415d-a382-fa7925af0c4b/5f181318-ade9-4637-abc5-91d5418b2645image.png

主成分分析(PCA)是一种线性降维技术,它使用正交变换将一组相关变量转换为一组线性不相关的变量,称为主成分。PCA 对于识别数据中的模式和在不丢失重要信息的情况下减少数据的维度非常有用。

线性判别分析(LDA)是一种监督降维技术,旨在为分类任务找到最具判别力的特征。LDA 最大化低维空间中类别之间的分离。

t-分布随机邻域嵌入(t-SNE)是一种非线性降维技术,特别适合于高维数据的可视化。它通过对一对高维数据点的概率分布进行计算,寻找保留数据结构的低维表示。

降维技术的主要优点之一是,通过降低计算成本和减少过拟合风险,它们可以提高机器学习算法的性能。此外,它们通过将维度减少到一个更易于管理的数量,使数据可视化变得更加容易。

降维技术的主要缺点是,在降低维度的过程中可能会丢失重要信息。此外,选择降维技术取决于数据类型和任务需求,并且可能很难确定保留的最佳维度数量。

总之,降维是一种用于减少数据集中特征数量的技术,同时保持重要信息。现有几种降维算法,例如PCA、LDA和t-SNE,这些算法对识别数据中的模式、提高机器学习算法的性能以及使数据可视化变得更加容易都非常有用。然而,在降低维度的过程中,可能会丢失重要信息,而选择降维技术又依赖于数据类型和具体任务。


梯度增长树(Gradient Boosting and AdaBoost)

Gradient Boosting and AdaBoost是两种流行的集成机器学习算法,用于分类和回归任务。这两种算法通过结合多个弱模型来创建一个强大的最终模型。

Gradient Boosting

Gradient Boosting是一种迭代算法,以逐步阶段的方式构建模型。它从对数据拟合一个简单模型(如决策树)开始,然后添加额外的模型来纠正先前模型所犯的错误。每个新模型都针对损失函数相对于先前模型预测的负梯度进行拟合。最终模型是所有单个模型的加权和。

AdaBoost

AdaBoost,全称为自适应提升(Adaptive Boosting),也是一种以逐步阶段方式构建模型的算法。然而,它专注于通过调整训练数据的权重来提高弱模型的性能。在每次迭代中,算法关注于先前模型错误分类的训练示例,并调整这些示例的权重,使它们在下一次迭代中被选择的概率更高。最终模型同样是所有单个模型的加权和。

优势与劣势

这两种算法在许多实际应用中都被发现能够产生高度准确的模型。它们的主要优点之一是能够处理多种数据类型,包括分类数据和数值数据。此外,这两种算法也可以处理缺失值,并且对异常值具有鲁棒性。

不过,这两种算法的主要缺点是计算开销可能较大,尤其是在集成中模型数量较多时。此外,它们可能对基础模型的选择和学习率敏感。

结论

总之,Gradient Boosting和AdaBoost是两种流行的集成机器学习算法,适用于分类和回归任务。这两种算法通过结合多个弱模型来创建一个强大的最终模型,广泛应用于许多领域。然而,它们的计算复杂性较高,并且对基础模型的选择和学习率较为敏感。


谢谢阅读!

如果您喜欢这篇文章,请订阅并成为会员,以便随时获取关于数据科学的指南、技巧和生活经验的最新内容!


原文链接:

这里这里

评论
Copyright Created by DataER | 沪ICP备2024052789号-5 | 沪公网安备31010402336337号