- 使用 Python 进行机器学习
- 家
- 基本
- Python生态系统
- 机器学习方法
- ML 项目的数据加载
- 通过统计了解数据
- 通过可视化了解数据
- 准备数据
- 数据特征选择
- 机器学习算法 - 分类
- 介绍
- 逻辑回归
- 支持向量机(SVM)
- 决策树
- 朴素贝叶斯
- 随机森林
- 机器学习算法 - 回归
- 随机森林
- 线性回归
- 机器学习算法 - 聚类
- 概述
- K均值算法
- 均值平移算法
- 层次聚类
- ML 算法 - KNN 算法
- 寻找最近的邻居
- 性能指标
- 自动工作流程
- 提高机器学习模型的性能
- 提高 ML 模型的性能(续……)
- 使用 Python 进行机器学习 - 资源
- 使用 Python 进行机器学习 - 快速指南
- 使用 Python 进行机器学习 - 资源
- 使用 Python 进行机器学习 - 讨论
使用 Python 进行机器学习 - 方法
有多种机器学习算法、技术和方法可用于构建模型,以利用数据解决现实生活中的问题。在本章中,我们将讨论这些不同类型的方法。
不同类型的方法
以下是基于一些大类的各种机器学习方法 -
基于人类监督
在学习过程中,一些基于人类监督的方法如下 -
监督学习
监督学习算法或方法是最常用的机器学习算法。该方法或学习算法在训练过程中获取数据样本(即训练数据)及其关联的输出(即每个数据样本的标签或响应)。
监督学习算法的主要目标是在执行多个训练数据实例后学习输入数据样本与相应输出之间的关联。
例如,我们有
x:输入变量和
Y:输出变量
现在,应用算法来学习从输入到输出的映射函数,如下所示 -
Y=f(x)
现在,主要目标是很好地近似映射函数,以便即使我们有新的输入数据 (x),我们也可以轻松预测该新输入数据的输出变量 (Y)。
之所以称为监督,是因为整个学习过程可以被认为是在老师或主管的监督下进行的。监督机器学习算法的例子包括决策树、随机森林、KNN、逻辑回归等。
根据机器学习任务,监督学习算法可以分为以下两大类 -
- 分类
- 回归
分类
基于分类的任务的主要目标是预测给定输入数据的分类输出标签或响应。输出将基于模型在训练阶段学到的内容。我们知道,分类输出响应意味着无序和离散值,因此每个输出响应将属于特定的类别或类别。我们还将在接下来的章节中详细讨论分类和相关算法。
回归
基于回归的任务的主要目标是预测给定输入数据的连续数值的输出标签或响应。输出将基于模型在训练阶段学到的内容。基本上,回归模型使用输入数据特征(自变量)及其相应的连续数值输出值(因变量或结果变量)来学习输入和相应输出之间的特定关联。我们还将在后续章节中详细讨论回归和相关算法。
无监督学习
顾名思义,它与有监督的机器学习方法或算法相反,这意味着在无监督的机器学习算法中,我们没有任何监督者提供任何类型的指导。在我们没有像监督学习算法那样自由地拥有预先标记的训练数据并且我们希望从输入数据中提取有用模式的情况下,无监督学习算法非常方便。
例如,可以理解如下 -
假设我们有 -
x:输入变量,那么就没有对应的输出变量,算法需要发现数据中有趣的模式来进行学习。
无监督机器学习算法的示例包括 K 均值聚类、K 最近邻等。
根据机器学习任务,无监督学习算法可以分为以下几类:
- 聚类
- 协会
- 降维
聚类
聚类方法是最有用的无监督机器学习方法之一。这些算法用于查找数据样本之间的相似性以及关系模式,然后根据特征将这些样本聚类成具有相似性的组。聚类的现实示例是根据客户的购买Behave对客户进行分组。
协会
另一种有用的无监督机器学习方法是关联,它用于分析大型数据集以查找进一步表示各个项目之间有趣关系的模式。它也称为关联规则挖掘或购物篮分析,主要用于分析客户的购物模式。
降维
这种无监督的机器学习方法用于通过选择一组主要或代表性特征来减少每个数据样本的特征变量数量。这里出现一个问题,为什么我们需要降维呢?背后的原因是当我们开始从数据样本中分析和提取数百万个特征时出现的特征空间复杂性问题。这个问题一般指的是“维数灾难”。PCA(主成分分析)、K 最近邻和判别分析是用于此目的的一些流行算法。
异常检测
这种无监督的机器学习方法用于找出罕见事件或通常不会发生的观察结果的发生情况。通过使用学到的知识,异常检测方法将能够区分异常或正常数据点。一些无监督算法(例如聚类、KNN)可以根据数据及其特征来检测异常。
半监督学习
这类算法或方法既不是完全监督的,也不是完全无监督的。它们基本上介于监督学习方法和无监督学习方法两者之间。这类算法通常使用小型监督学习组件(即少量预标记注释数据)和大型无监督学习组件(即大量未标记数据)进行训练。我们可以遵循以下任何方法来实施半监督学习方法 -
第一种简单的方法是基于少量标记和注释数据构建监督模型,然后将其应用于大量未标记数据以获得更多标记样本来构建无监督模型。现在,在它们上训练模型并重复该过程。
第二种方法需要一些额外的努力。在这种方法中,我们可以首先使用无监督方法对相似的数据样本进行聚类,对这些组进行注释,然后使用这些信息的组合来训练模型。
强化学习
这些方法与以前研究的方法不同,并且也很少使用。在这种学习算法中,我们想要训练一个代理一段时间,以便它可以与特定环境进行交互。代理将遵循一组与环境交互的策略,然后在观察环境后,它将针对环境的当前状态采取行动。以下是强化学习方法的主要步骤 -
步骤 1 - 首先,我们需要为代理准备一些初始策略。
步骤 2 - 然后观察环境及其当前状态。
步骤 3 - 接下来,根据当前环境状态选择最佳策略并执行重要操作。
步骤 4 - 现在,代理可以根据上一步中采取的行动获得相应的奖励或惩罚。
步骤 5 - 现在,如果需要,我们可以更新策略。
步骤 6 - 最后,重复步骤 2-5,直到代理学习并采用最佳策略。
适合机器学习的任务
下图显示了哪种类型的任务适合各种机器学习问题 -
基于学习能力
在学习过程中,以下是一些基于学习能力的方法 -
批量学习
在许多情况下,我们拥有端到端的机器学习系统,我们需要使用全部可用的训练数据一次性训练模型。这种学习方法或算法称为批量学习或离线学习。它被称为批量或离线学习,因为它是一次性过程,并且模型将使用一批数据进行训练。以下是批量学习方法的主要步骤 -
步骤 1 - 首先,我们需要收集所有训练数据以开始训练模型。
步骤 2 - 现在,通过一次性提供完整的训练数据来开始模型的训练。
步骤 3 - 接下来,一旦获得满意的结果/表现,就停止学习/培训过程。
步骤 4 - 最后,将此经过训练的模型部署到生产中。在这里,它将预测新数据样本的输出。
在线学习
它与批量或离线学习方法完全相反。在这些学习方法中,训练数据以多个增量批次(称为小批次)的形式提供给算法。以下是在线学习方法的主要步骤 -
步骤 1 - 首先,我们需要收集所有训练数据以开始模型训练。
步骤 2 - 现在,通过向算法提供小批量训练数据来开始模型训练。
步骤 3 - 接下来,我们需要以多个增量向算法提供小批量训练数据。
步骤 4 - 由于它不会像批量学习那样停止,因此在小批量提供整个训练数据后,也为其提供新的数据样本。
步骤 5 - 最后,它将根据新的数据样本在一段时间内继续学习。
基于泛化方法
在学习过程中,以下是一些基于泛化方法的方法 -
基于实例的学习
基于实例的学习方法是通过基于输入数据进行泛化来构建机器学习模型的有用方法之一。它与之前研究的学习方法相反,这种学习涉及机器学习系统以及使用原始数据点本身来绘制新数据样本结果的方法,而无需在训练数据上构建显式模型。
简而言之,基于实例的学习基本上是通过查看输入数据点开始工作,然后使用相似性度量,它将概括并预测新的数据点。
基于模型的学习
在基于模型的学习方法中,迭代过程发生在基于各种模型参数(称为超参数)构建的 ML 模型上,其中输入数据用于提取特征。在这种学习中,超参数根据各种模型验证技术进行优化。这就是为什么我们可以说基于模型的学习方法使用更传统的机器学习方法来实现泛化。