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

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

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

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

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

无监督学习:降维

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

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

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

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

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

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

PCA(主成分分析)

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

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

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

如果您正在处理非概率数据,则应使用奇异值分解算法。

SVD(奇异值分解)

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

使用给定数量的组件压缩图像。来源:奇异值分解| Python 中的 SVD (analyticsvidhya.com)

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

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

LDA(线性判别分析)

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

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

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

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

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

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

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

无监督学习:聚类

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

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

层次聚类

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

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

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

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

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

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

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

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

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

如果您需要指定簇的数量,可以使用三种现有算法,包括 K-Modes、K-Means 和高斯混合模型。接下来,您需要知道是否要使用分类变量,这些变量是通过对观察值(或水平)进行分组来捕获定性结果的离散变量。如果您要使用它们,您可以选择 K-Mode。

K-模式

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

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

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

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

K-均值

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

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

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

GMM(高斯混合模型)

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

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

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

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

监督学习:回归

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

在这里,您需要决定是想要速度还是准确性。如果您追求速度,可以使用决策树算法或线性回归算法。

决策树

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

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

当特征和输出变量之间存在复杂的交互时,决策树就会派上用场。当存在缺失特征、类别和数字特征混合或特征大小差异较大时,它们与其他方法相比表现更好。

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

线性回归

根据给定的自变量,该方法预测因变量的值。因此,这种回归方法确定输入(自变量)和输出(因变量)之间是否存在线性连接。因此,创造了术语“线性回归”。

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

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

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

神经网络

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

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

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

梯度提升树

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

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

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

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

随机森林

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

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

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

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

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

监督学习:分类

与回归方法类似,您需要选择是希望结果的速度还是准确性。

如果您追求准确性,您不仅可以选择内核支持向量机,还可以使用前面提到的其他算法,例如神经网络、梯度提升树和随机森林。现在,我们来介绍一下这个新算法。

内核支持向量机

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

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

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

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

逻辑回归

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

逻辑回归分为三种不同类型:

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

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

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

线性支持向量机

线性 SVM 用于线性可分离数据。它适用于具有不同变量的数据(线性可分离数据),这些变量可以用简单的直线(线性 SVM 分类器)分离。这条直线代表用户的行为或通过指定问题得到的结果。

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

对于我们的下一个算法,无论数据很大还是不大,都可以使用它。

朴素贝叶斯

该算法基于贝叶斯定理。它由通过对象的概率进行的预测组成。它被称为朴素,因为它假设一个特征的出现与其他特征的出现无关。

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

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

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

综上所述

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

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