站点图标 AI技术聚合

机器学习算法备忘单

原文标题Machine Learning Algorithms Cheat Sheet

机器学习算法备忘单

机器学习是人工智能 (AI) 和计算机科学的一个子领域,专注于使用数据和算法来模仿人们的学习方式,逐步提高其准确性。通过这种方式,机器学习是当今计算机科学中最有趣的方法之一,它正在幕后应用在我们日常生活中消费的产品和服务中。

如果您想知道在不同的应用程序中使用了哪些机器学习算法,或者如果您是开发人员并且正在寻找一种方法来解决您要解决的问题,请继续阅读下面的内容并将这些步骤用作指导。

机器学习可以分为三种不同类型的学习:无监督学习、监督学习和半监督学习。

无监督学习使用未标记的信息数据,这样机器应该根据模式、相似性和差异在没有指导的情况下工作。

另一方面,监督学习有一个“老师”,他负责通过标记要使用的数据来训练机器。接下来,机器会收到一些示例,使其能够产生正确的结果。

但是对于这些类型的学习有一种混合方法,这种半监督学习适用于标记和未标记的数据。该方法使用标记数据的微小数据集来训练并用相应的预测标记其余数据,最终给出问题的解决方案。

首先,您需要知道您正在使用的维度数量,这意味着您的问题中的输入数量(也称为特征)。如果您正在处理大型数据集或许多特征,则可以选择降维算法。

无监督学习:降维

数据集合中的大量维度会对机器学习算法的性能产生重大影响。 “维度灾难”是一个术语,用于描述大维度可能导致的麻烦,例如聚类中的“距离集中”问题,随着数据维度的增加,不同的数据点将具有相同的值。

用于最小化训练数据中输入变量数量的技术称为“降维”。

现在您需要熟悉特征提取和特征选择的概念才能继续前进。

将原始数据转换为可以处理的数字特征,同时将信息保留在原始数据集中的过程称为特征提取。它比直接将机器学习应用于原始数据产生更好的结果。

它用于三种已知的降维算法,包括主成分分析、奇异值分解和线性判别分析,但您需要确切知道要使用哪种工具来查找模式或从数据中推断出新信息。

如果您不想组合数据的变量,而是想通过保留重要特征来删除不需要的特征,那么您可以使用主成分分析算法。

PCA(主成分分析)

它是一种数学算法,用于减少数据集的维数,以简化变量的数量,同时保留大部分信息。这种简单性的准确性权衡被广泛用于在大型数据集中查找模式。

在线性连接方面,当存在大量数据时,它具有广泛的应用,例如媒体编辑、统计质量控制、投资组合分析,以及在人脸识别和图像压缩等许多应用中。

或者,如果您想要一种通过组合您正在使用的数据的变量来工作的算法,那么简单的 PCA 可能不是您使用的最佳工具。接下来,您可以拥有一个概率模型或一个非概率模型。概率数据是涉及随机选择的数据,大多数科学家更喜欢获得更准确的结果。虽然非概率数据不涉及这种随机性。

如果您使用的是非概率数据,则应使用奇异值分解算法。

SVD(奇异值分解)

在机器学习领域,SVD 允许将数据转换为可以轻松区分类别的空间。该算法将一个矩阵分解为三个不同的矩阵。例如,在图像处理中,使用数量减少的矢量来重建与原始图像非常接近的图片。

与PCA算法相比,两者都可以对数据进行降维。但是,虽然 PCA 跳过了不太重要的组件,但 SVD 只是将它们转换为特殊数据,表示为三个不同的矩阵,更易于操作和分析。

当涉及到概率方法时,最好使用线性判别分析算法来解决更抽象的问题。

LDA(线性判别分析)

线性判别分析 (LDA) 是一种分类方法,其中先前已识别出两个或多个组,并根据其特征将新的观察分类为其中一个。

它与 PCA 不同,因为 LDA 发现了一个优化组可分离性的特征子空间,而 PCA 忽略了类标签并专注于捕获数据集的最高方差方向。

该算法使用贝叶斯定理,这是一种概率定理,用于根据事件与另一个事件的关系来确定发生的可能性。

常用于人脸识别、客户识别、医疗等领域,用于识别患者的疾病状态。

下一步是选择你是否希望你的算法有响应,这意味着你想开发一个基于标记数据的预测模型来教你的机器。如果您更愿意使用未标记的数据,则可以使用聚类技术,这样您的机器就可以在没有指导的情况下工作并搜索相似之处。

另一方面,选择用于模型创建的相关特征(变量、预测变量)子集的过程称为特征选择。它有助于简化模型,使研究人员和用户更容易理解它们,以及减少训练时间和避免维度诅咒。

它包括聚类、回归和分类方法。

Unsupervised Learning: Clustering

聚类是一种用于分离具有相似特征的组并将它们分配给聚类的技术。

如果您正在寻找分层算法:

Hierarchical Clustering

这种类型的聚类是机器学习中最流行的技术之一。层次聚类帮助组织对数据进行分类,以识别相似性、不同的分组和特征,因此它们的定价、商品、服务、营销信息和业务的其他方面都是有针对性的。它的层次结构应该显示类似于树数据结构的数据,称为树状图。有两种数据分组方式:凝聚式和分裂式。

凝聚聚类是一种“自下而上”的方法。换句话说,每个项目首先被认为是一个单元素集群(叶子)。最具可比性的两个集群在方法的每个阶段(节点)加入一个新的更大的集群。重复此方法,直到所有点都属于单个大簇(根)。

分裂聚类以“自上而下”的方式工作。它从根开始,所有项目都分组在一个集群中,然后在每个迭代阶段将最多样化的项目分成两个。重复该过程,直到所有项目都在其组中。

如果您不是在寻找分层解决方案,则必须确定您的方法是否需要您指定要使用的集群数量。如果您不需要定义它,您可以使用基于密度的应用程序空间聚类和噪声算法。

DBSCAN(基于密度的噪声应用空间聚类)

当涉及到任意形状的聚类或检测异常值时,最好使用基于密度的聚类。 DBSCAN 是一种通过基于两个参数:eps 和 minPoints 对彼此靠近的点进行分组来检测那些任意形状的簇和具有噪声的簇的方法。

eps 告诉我们需要在两点之间的距离才能被视为一个集群。而 minPoints 是创建集群的最小点数。

我们在分析 Netflix 服务器异常值时使用该算法。流媒体服务运行数千台服务器,通常不到百分之一它会变得不健康,这会降低流媒体的性能。真正的问题是这个问题不容易被发现,为了解决这个问题,Netflix 使用 DBSCAN 指定要监控的指标,然后收集数据,最后传递给算法以检测服务器异常值。

一种日常使用可能是电子商务向其客户推荐产品时。对用户之前购买过的产品数据应用 DBSCAN。

如果您需要指定集群的数量,您可以使用三种现有算法,包括 K-Modes、K-Means 和 Gaussian Mixture Model。接下来,您需要知道是否要使用分类变量,这些变量是离散变量,通过对观察(或水平)分组来捕捉定性结果。如果您要使用它们,您可以选择 K-Modes。

K-Modes

这种方法用于对分类变量进行分组。我们确定这些类型的数据点之间的总不匹配。我们的数据点之间的差异越小,它们就越相似。

K-Modes 和 K-Means 之间的主要区别在于,对于分类数据点,我们无法计算距离,因为它们不是数值。

该算法用于文本挖掘应用程序、文档聚类、主题建模(其中每个聚类组代表一个特定主题)、欺诈检测系统和营销。

对于数值数据,您应该使用 K-Means 聚类。

K-Means

数据以这样的方式聚集成k个组,即同一簇中的数据点相关,而其他簇中的数据点相距较远。这个距离经常用欧几里得距离来测量。换句话说,K-Means 算法试图最小化一个簇内的距离并最大化不同簇之间的距离。

搜索引擎、消费者细分、垃圾邮件/火腿检测系统、学术表现、缺陷诊断系统、无线通信和许多其他行业都使用 k-means 聚类。

如果预期结果基于概率,则应使用高斯混合模型。

GMM(高斯混合模型)

这种方法意味着存在许多高斯分布,每个高斯分布代表一个集群。该算法将确定每个数据点属于给定批次数据的每个分布的概率。

GMM 与 K-means 不同,因为在 GMM 中我们不知道数据点是否属于指定的集群,我们使用概率来表达这种不确定性。而 K-means 方法可以确定数据点的位置并开始迭代整个数据集。

高斯混合模型经常用于信号处理、语言识别、异常检测和音乐流派分类。

如果您使用标记数据来训练您的机器,首先,您需要指定它是否要预测数字,这种数字预测将有助于算法解决问题。如果是这样,您可以选择回归算法。

Supervised Learning: Regression

回归是一种机器学习算法,其中将结果预测为连续数值。这种方法常用于银行、投资等领域。

在这里,您需要决定是否更喜欢速度或准确性。如果您正在寻找速度,您可以使用决策树算法或线性回归算法。

Decision Tree

决策树是类似于树数据结构的流程图。在这里,数据根据给定的参数连续拆分。树节点中允许每个参数,而整个树的结果位于叶子中。有两种类型的决策树:

  • 分类树(是/否类型),这里的决策变量是分类的。
  • 回归树(连续数据类型),其中决策或结果变量是连续的。

当特征和输出变量之间存在复杂的交互时,决策树就派上用场了。当缺少特征、类别和数值特征混合,或者特征大小差异很大时,与其他方法相比,它们的性能更好。

该算法用于提高促销活动的准确性、欺诈检测以及患者严重或可预防疾病的检测。

Linear Regression

基于给定的自变量,该方法预测因变量的值。因此,这种回归方法确定输入(自变量)和输出(因变量)之间是否存在线性联系。因此,创造了线性回归这个术语。

线性回归非常适合特征和输出变量具有线性关系的数据集。

它通常用于预测(这对于小公司了解销售效果特别有用),了解广告支出与收入之间的联系,以及在医学界了解药物剂量与患者血压之间的相关性。

或者,如果您需要算法的准确性,您可以使用以下三种算法:神经网络、梯度提升树和随机森林。

Neural Network

神经网络需要学习特征和目标之间复杂的非线性关系。这是一种模拟人脑中神经元工作的算法。有几种类型的神经网络,包括香草神经网络(仅处理结构化数据),以及循环神经网络和卷积神经网络,它们都可以处理非结构化数据。

当您拥有大量数据(和处理能力)并且准确性对您很重要时,您几乎肯定会使用神经网络。

该算法有很多应用,例如释义检测、文本分类、语义解析和问答。

Gradient Boosting Tree

Gradient Boosting Tree 是一种合并不同树的输出以进行回归或分类的方法。两种监督学习都包含大量决策树以减少过度拟合的危险(当函数与少量数据点过于紧密匹配时发生的统计建模错误,从而有可能降低模型的预测能力)每棵树都独自面对。该算法采用了 Boosting,它需要连续组合弱学习器(通常是只有一个分裂的决策树,称为决策树桩),以便每棵新树都能纠正前一棵树的错误。

当我们希望减少偏差误差时,即模型预测与目标值的差异量,我们通常采用梯度提升算法。

当数据中的维度较少时,基本线性模型表现不佳,可解释性并不重要,并且没有严格的延迟限制,梯度提升是最有利的。

它被用于许多研究,例如基于大师级运动员动机的性别预测算法,使用梯度提升决策树,探索他们基于心理维度预测性别的能力,评估参加大师级运动的原因作为统计方法。

Random Forest

随机森林是一种解决回归和分类问题的方法。它利用集成学习,这是一种通过组合多个分类器来解决复杂问题的技术。

它由许多决策树组成,其中每个决策树的结果都会抛出最终结果,采用平均或平均决策。树的数量越多,结果的精度就越高。

当我们拥有庞大的数据集并且可解释性不是关键问题时,随机森林是合适的,因为随着数据集的变大,它变得越来越难以掌握。

该算法用于股票市场分析、医疗领域的患者诊断、预测贷款申请人的信誉以及欺诈检测。

对于非数值预测算法,您可以选择分类方法而不是回归。

Supervised Learning: Classification

与回归方法一样,您需要选择是否希望结果的速度或准确性。

如果您正在寻找准确性,您不仅可以选择 Kernel Support-Vector Machine,还可以使用前面提到的其他算法,例如神经网络、梯度提升树和随机森林。现在,让我们介绍一下这个新算法。

内核支持向量机

为了弥合线性和非线性,核技术通常用于支持向量机模型。要理解这一点,必须知道 SVM 方法通过形成决策边界来学习如何分离不同的组。

但是当我们面对更高维度的数据集并且成本昂贵时,建议使用这种内核方法。它使我们能够在原始特征空间中工作,而无需在更高维空间中计算数据的坐标。

它主要用于文本分类问题,因为它们中的大多数都可以线性分离。

当需要速度时,我们需要看看我们要使用的技术是否可以解释,这意味着它可以解释你的模型从头到尾发生的事情。在这种情况下,我们可能会使用决策树算法或逻辑回归。

Logistic Regression

当因变量是分类变量时,使用逻辑回归。通过概率估计,它有助于理解因变量与一个或多个自变量之间的联系。

有三种不同类型的逻辑回归:

  • 二元逻辑回归,其中响应只有两个可能的值。
  • 多项 Logistic 回归,三个或更多结果,没有顺序。
  • 序数逻辑回归,三个或更多类别的排序。

逻辑回归算法广泛用于酒店预订,它(通过统计研究)向您显示您可能希望在预订中拥有的选项,例如酒店房间、该地区的一些旅程等等。

如果您只对问题的输入和输出感兴趣,您可以检查您正在使用的数据是否太大。如果数量很大,您可以使用线性支持向量机。

线性支持向量机

线性 SVM 用于线性可分数据。它适用于具有不同变量的数据(线性可分数据),可以用简单的直线(线性 SVM 分类器)进行分离。这条直线表示用户行为或通过陈述的问题产生的结果。

由于文本通常是线性可分的并且具有很多特征,因此线性 SVM 是在其分类中使用的最佳选择。

在我们的下一个算法的情况下,无论数据是否大,您都可以使用它。

Naïve Bayes

该算法基于贝叶斯定理。它由通过对象概率的预测组成。之所以称为 Naïve,是因为它假设一个特征的出现与其他特征的出现无关。

这种方法很受欢迎,因为它甚至可以超越最复杂的分类方法。此外,它易于构建并且可以快速构建。

由于其易于使用和效率,它被用来做出实时决策。除此之外,Gmail 使用此算法来了解邮件是否为垃圾邮件。

Gmail 垃圾邮件检测选择一组词或“标记”来识别垃圾邮件(这种方法也用于文本分类,通常称为词袋)。接下来,他们使用这些令牌并将它们与垃圾邮件和非垃圾邮件进行比较。最后,使用朴素贝叶斯算法,他们计算电子邮件是否为垃圾邮件的概率。

In Conclusion

我们发现机器学习是一种广泛使用的技术,由于它经常发生,因此我们无法识别许多应用。在本文中,我们不仅区分了机器学习的不同方法,还区分了如何根据我们正在处理的数据和我们想要解决的问题来使用它们。

要学习机器学习,您必须具备一些微积分、线性代数、统计学和编程技能的知识。您可以使用不同的编程语言来实现其中一种算法,从 Python 到 C++ 和 R 语言。您可以做出最佳决定并开始与您的机器一起学习。

您可以随时了解 Accel.AI;通过我们的网站、邮件列表、聚会小组、Twitter 和 Facebook 进行研讨会、研究和社会影响计划。[0][1][2][3][4][5]

加入我们,在全球范围内为#SocialImpact 倡议推动#AI!

如果您喜欢阅读本文,您可以通过点击下面的 👏 来贡献良好的氛围(并帮助更多人发现这篇文章和我们的社区)——这意义重大!

文章出处登录后可见!

已经登录?立即刷新
退出移动版