机器学习介绍

监督学习

监督学习涉及使用某种算法来分析过去的观察并从中学习,从而使您能够预测未来的事件。 监督学习的目标是提出或推断出一种近似映射函数,该函数可以应用于一个或多个输入变量,并产生输出变量或结果。 训练过程涉及采用非特征和标签的监督训练数据集。

训练数据集由许多训练示例或实例组成,其中每个实例由特征的输入向量和单个输出值或标签组成。 监督训练数据集用于训练机器学习模型,以便可以对新输入进行未来预测。 训练数据集通常分为两部分。 第一部分用于训练模型,第二部分用于测试模型。 一个示例方法是使用 80/20 分割。 即留出80%的训练数据集用于训练模型,剩下的20%用于测试模型的准确性。 也就是说,通过将预测结果与实际记录或标记的结果进行比较来测试预测的正确性。

监督学习算法分析训练数据,并生成映射函数,如果输出是离散的,则称为分类器;如果输出是连续的,则称为回归函数。 例如,分类问题是指输出变量是一个类别,例如男性或女性,或吸烟者和非吸烟者。 另一方面,回归问题是当输出变量是实数值时,例如温度或长度。 建立在分类和回归之上的一些常见问题类型分别包括欺诈检测和温度预测。 这可以在这张幻灯片上看到。

监督学习算法分为两类,一类用于解决分类问题,一类用于解决回归问题。 例如,我们可以看到我们可以使用线性回归算法或决策树算法来解决回归问题。 我们可以使用支持向量机算法或朴素贝叶斯来解决分类问题。 执行监督训练时,过程从训练阶段开始。

训练阶段要求您执行特征提取以建立特征向量。 所选择的监督训练算法采用特征向量和标签并构建预测模型。 然后测试预测模型的准确性。 单独的模型训练和测试阶段依赖于使用初始数据集的不同子集。 例如,通常使用有利于训练子集的 80/20 分割或 75/25 分割。 浏览一个完整的示例,假设我们获取一个初始数据集,并从中随机抽取 80% 的记录。 这成为我们的训练数据集。 剩下的 20% 成为我们的测试数据集。 然后我们在训练数据集上训练我们的机器学习模型。

一旦学习并构建了预测模型,我们就可以通过运行测试数据集来测试它的准确性。 接下来,我们可以检查预测结果并将其与测试数据集中相关记录标记的实际标签进行比较。 如果模型的测试没有达到我们的预期,我们可以改变监督训练算法的参数并重新训练模型,或者选择完全不同的监督训练算法。

最后,如果我们的模型在提供准确预测方面达到了我们的期望,我们可以部署该模型并开始通过它提供新的数据点,首先执行特征提取并将生成的特征向量传递到我们的模型中。 最终结果将是相关数据点的预测标签。 监督机器学习可用于解决许多业务问题。 尝试回答这些问题时需要考虑的重要事项是可用于培训的数据源和位置。 这里给出了一些例子。 这房子值多少钱? 在这里,我们使用之前的房屋销售数据集来训练我们的模型。 有多少顾客会观看第二季? 在这里,我们使用前一年的观看统计数据集来训练我们的模型。 这种癌症是恶性的吗?

无监督学习

我有一个不包含答案的数据集。 我需要发现数据集中嵌入的模式或关系可以帮助我找到答案? 我如何使用机器学习来预测我寻求的答案。 与监督训练相反,无监督训练采用不同的方法,因为相关算法被设计用于处理未标记的数据集。 无监督学习算法不依赖于预先标记的训练数据来学习。

在这种情况下,机器学习算法将寻找隐藏在数据集中的结构模式。 发现任何模式或结构后,当将新数据引入问题时,该模型可以用于做出预测和/或决策。 数据集中的模式识别可能涉及聚类、异常检测和关联发现的概念。 一个典型的无监督机器学习示例是识别社交网络中紧密联系的朋友群体。 如前所述,无监督训练的任务是查找正在处理的数据集中的数据点之间的模式、关系和/或相关性。

这些模式、关系和/或相关性有不同的类型。 例如,如这张幻灯片所示,如果我们将数据集视为实例表,每个实例都具有相同的特征集,那么我们就可以开始看到这些所谓模式的不同类型。 聚类涉及寻找相似的实例。 异常检测涉及发现异常实例,关联发现涉及发现实例之间和实例之间可能存在的特征规则。 让我们仔细看看这些模式。 重申一下前面的幻灯片,聚类关注的是寻找相似的实例。

在此给出的示例中,我们可以清楚地看到一种聚类模式,其中 Mary 在每个月的第一天以 30 美元的价格往返于纽约。 另一方面,异常检测涉及发现异常实例。 在此处给出的示例中,我们可以清楚地看到一个异常情况,其中玛丽似乎在纽约的娱乐上花费了 2000 美元,而她没有支付任何旅行费用,最后,关联发现涉及找到满足以下条件的特征规则: 可能存在于数据集中的实例之间或跨实例。

在此处给出的示例中,我们可以清楚地看到许多潜在的特征关联。 从这张幻灯片中可以看出,许多无监督学习算法都属于聚类类别。 例如,我们可以使用 K. Means Hierarchical 或 Gaussian Mixture 进行聚类分析。 无监督训练的训练阶段与监督训练中使用的训练阶段类似,关键区别在于标签的丢失,或者监督训练算法不将标签或答案作为其输入的一部分。

相反,无监督训练算法会处理所有数据实例的特征向量,寻找聚类模式、异常和/或关联规则。 因此,生成的模型本身会返回表明集群公民身份的答案,或者数据点是否应被视为异常。 无监督机器学习可用于解决许多业务问题。 尝试回答这些问题时需要考虑的重要事项是可用的数据源在哪里以及有哪些。 这里给出了一些例子。

这些客户有类似的喜好吗? 在这里,我们将使用客户档案数据集训练我们的模型。 这笔交易是否存在欺诈行为? 在这里,我们将使用之前和过去的交易数据集来训练我们的模型。 最后,这些产品是一起购买的吗? 在这里,我们将使用以前的购买数据集的示例来训练我们的模型。 好的,让我们快速总结一下无监督训练、它的重要特征、它的使用方式以及一些示例算法。 最重要的是,训练数据集只有示例,没有特定的标签或结果。

这些类型的数据集实际上相当常见,因为标记过程通常非常昂贵。 无监督训练的目标是搜索和发现模式、异常和规则关联。 无监督训练往往更加复杂,因为数据没有结果并且无法评估。 每种发现方法都有其自己的质量衡量标准。 无监督训练算法可用于执行以下任务,例如聚类,我们可以使用 K.Means 算法。

机器学习算法

例如,有监督的诗句不受监督。 分类与回归。 请注意,除了我们在此介绍的列表之外,还有更多的机器学习算法。 但在我们开始之前,初学者在面对如此多的机器学习算法时经常面临的问题是我应该使用其中哪一个? 这个问题没有灵丹妙药的答案。 但是,在应用和选择机器学习算法之前,您确实应该考虑数据的许多属性。

需要考虑的一些示例包括数据的大小、质量和性质、可用的计算时间、任务的紧迫性以及您想要对数据执行的操作。 通常,您需要对数据进行试验,以确定哪种算法可以提供最佳结果。 让我们继续并熟悉其中一些常见且流行的机器学习算法。 回归是一种用于预测数值结果的机器学习技术。

线性回归试图在一个或多个自变量与结果或因变量之间建立线性关系。 线性回归算法采用一组数据点并通过数据集找到最佳拟合线。 例如,这里的数据集由因变量 Y 和自变量 X 组成。使用线性回归,将找到最佳拟合线,使得每个数据点与线上最近点之间的累积距离最小 。 回想一下,Y 形式的直线方程等于 mX 加 c,其中 m 是直线的梯度,c 是 Y 轴截距。

我们使用线性回归算法将基本微积分应用于相关数据集的 m(梯度)和 c(Y 轴截距)的值。 此外,线性回归可以进一步细化为两种类型。 简单线性回归(仅使用一个自变量)和多元线性回归(定义多个自变量)。 虽然名字暗示了回归,逻辑回归实际上是一个强大而简单的分类工具。

使用逻辑回归进行分类是一种监督学习方法,因此需要标记数据集。 事实上,逻辑回归可用于执行二元分类和多类分类。 逻辑回归通常使用函数将值推向特定边界。 从本例中可以看出,sigmoid 函数也称为逻辑函数,具有 S 曲线形状的特征,可以将数据集点向上下边界挤压和推动,因此非常有用。 对于执行二元分类很有用。

决策树是树结构形式的机器学习模型。 决策树是最流行和广泛使用的机器学习算法之一。 决策树是一种监督学习算法,只不过是一棵树,其中每个已知的叶节点代表一组选择之间的决策。 其中叶子节点是最终的决策或分类。

机器学习中使用两种类型的决策树。 分类树。 预测结果是数据所属类别的分析。 例如,颜色是红色或者人是男性。 回归树,一种将预测结果视为实数的分析。 例如,某人的收入或解决客户询问所需的时间。 让我们提供一个简单的示例来说明决策树的工作原理。 一个典型的例子是尝试根据我们所了解的今天天气的几个特征来预测明天的天气。 假设我们一直在收集过去一年中每一天的温度、风力和气压属性,以及第二天是否下雨。

使用此类数据集和决策树算法,我们可以训练机器学习模型,帮助我们根据前一天的天气属性预测未来任何时候是否会下雨。 这张幻灯片上呈现的决策树是该模型最终可能看起来像的一个示例。 由于各种原因,决策树是机器学习从业者的流行工具。 让我们介绍一下与决策树相关的一些重要优点。 决策树很容易理解和解释。

经过简短的解释后,人们能够理解决策树模型,因为它们反映了人类的决策过程。 决策树能够处理数值数据和分类数据。 决策离子树需要很少或最少的数据准备。 最后,决策树在非常大的数据集上表现良好。 朴素贝叶斯可用于生成用于预测新数据点标签的分类器或模型,并用于分类问题。 朴素贝叶斯并不是单一的算法,而是基于贝叶斯定理中概率的分类算法的集合。 朴素贝叶斯工作方式的核心是这样的原则:每个被分类的特征都独立于任何其他特征的值。

特征通常总是独立的,正是这种特征导致机器学习技术被称为"Naive"。 朴素贝叶斯算法使我们能够使用概率在给定特征集的情况下预测类别。 例如,创建一个水果分类器,我们可以通过分析水果的颜色、形状和重量等特征来预测水果是橙子、香蕉还是苹果。 尽管基于相当基本的过程,朴素贝叶斯通常优于其他更复杂的机器学习算法,并且已成功集成到电子邮件垃圾邮件检测和文档分类等常见应用程序中。

众所周知,朴素贝叶斯模型可以很好地处理非常大的数据集。 朴素贝叶斯方程可以预测数据点具有特征一和特征二时属于 A 类的概率。 换句话说,如果您看到特征一和特征二,这就是数据点被分类为 A 类的概率。 方程可以这么理解。 给定特征一和特征二时,A 类的概率等于分数,其中分数的分子是给定 ClassA 的特征一的概率乘以给定 ClassA 的特征二的概率乘以 ClassA 的概率。 分数的分母是特征一的概率乘以特征二的概率。

支持向量机,简称SVM,是一种分类方法。 使用 SVM,您可以绘制农村数据点的图,然后在维度空间中输入特征数量。 该算法尝试找到一条线来对数据点进行分离和分类,使得所选线最大化每个类中与该线本身最近的数据点的分离。 SVM 线称为分类器。 如图所示,图中的每个数据点都有两个特征:F 1 和 F 2。 数据点通过绿线进行分类,绿线最大化了与线的分离距离。 根据这条线,数据点被认为分为两个不同的组。

K-最近邻(K-Nearest Neighbors),简称KNN,既可以用于分类问题,也可以用于回归问题,但它更常用于分类问题。 与在数据集的单独分割上进行训练和测试的其他机器学习算法一样,K 最近邻算法是在整个数据集上进行训练的。 当尝试对新数据点进行分类时,KNN 算法会扫描整个数据集,以搜索距离新数据点最近的 K 个数据点。 或者换句话说,它寻找与新数据点最相似的 K 个数据点。 使用 KNN 进行分类时,结果是最常发现的类别。

当使用 KNN 解决回归问题时,结果是结果的主要部分。 在此显示的简化示例中,随着 K 值的增加,新实例的分类会发生变化。 当K等于1时,对新实例进行分类。 当K增加到3时,新实例的分类变为第二类。 K-Means 算法是最常用的无监督机器学习算法之一。 它用于对相似或相似的数据点进行聚类。 K-Means 使用非确定性和迭代方法来分析和查找给定数据集中的 K 个聚类。

值 K 表示定义的簇的数量,并且是用户提供的值,该值在算法启动时植入算法中。 K-Means 算法的输出是 K 个簇,输入数据在这些簇之间请求。 在此显示的示例中,K-Means 算法使用 K 值 3 进行初始化,该算法继续运行并正确识别了三个簇:蓝色簇、红色簇和绿色簇。

有趣的是,随机森林算法是决策树算法的扩展,因为它可以被视为决策树的集合,因此被称为森林。 森林中的每个决策树对当前数据实例执行自己的分类,并实质上对该分类进行投票。 得票最多者获胜。 随机森林被认为是一种非常强大且准确的建模算法。 与使用单个决策树相比,效果更明显。 他们聚合许多十二月的能力视觉树使他们能够最大限度地减少过度拟合,因此可以产生高度准确的预测。

随机森林中的每个决策树都是根据从训练数据集中获取的数据的不同随机采样创建的。 从幻灯片中可以看出,随机森林的简化概念视图由三个决策树组成。 数据点被传递到三个决策树中的每一个中。 每棵树都处理实例并产生投票分类。 第一棵树投票给第一类,第二棵树投票给第二类,第三棵树也投票给第二类。 根据多数投票规则,相关数据点最终被归类为第二类。

深度学习和深度神经网络

深度学习是机器学习的一个子领域,其算法受到人脑的结构和设计的启发。 这里的算法被称为人工神经网络。

从概念上讲,神经网络的想法非常简单。 神经网络的核心是由多层连接的神经元组成。 连接相当于连接大脑内神经元的突触的功能。 神经元包含激活函数。 它作用于前一层的输入,并产生沿着连接传递到下一层神经元的输出值。 从此图中可以看出。 仔细研究单个神经元的功能和设计。 我们可以看到它做了几件事。

首先,它需要多个输入,这些是神经网络内的连接,此处全部加权为 W。 每个输入都有一个关联的权重,当神经网络初始化时,这些权重是随机分配的。 神经元对输入 X 和权重 W 的所有单独乘积执行求和函数。然后将求和函数结果传递给激活函数。 为了产生输出 Y。正如我们将看到的,可以使用几种常见的激活函数。 深度神经网络中的每个神经元都表现出相同的行为。

变量 X1、X2、直至 Xn。 保存要评估的数据。 例如,可能存在来自图像的像素值。 来自音频信号的样本。 或者连续几天的股票市场价格等。神经元分为三种类型的层。 输入层、隐藏层和输出层。 顾名思义,深度神经网络可以有多个隐藏层。 涉及的隐藏层越多,神经网络就越深。 输入层的节点是被动的。 这意味着他们不会修改数据。 相比之下,隐藏层和输出层的节点被认为是活动的。

激活函数在神经元内使用。 激活函数的作用是给系统添加非线性。 这样,复杂的问题就可以解决了。 正如我们稍后将看到的,训练深度神经网络涉及多次前向和后向传递。 向后传递涉及一个称为反向传播的过程。 或者梯度下降。 调整网络权重以使神经网络学习或收敛到最佳解决方案。 我们将在后面的一张幻灯片中更详细地讨论这一点。

为了发生学习过程,重要的是要理解激活函数需要可微分。 有几种不同的激活函数。 常用的就是这些。 例如,Sigmoid、TanH 和整流线性单元。 我们现在将深入研究每个激活函数的细节。 sigmoid 激活函数的数学形式如本幻灯片所示。 它需要一个实数值,并将其压缩到 0 到 1 之间的范围内。 非常大的负数被推向零,非常大的正数被推向一。

sigmoid 函数历来是首选的激活函数。 因为它巧妙地模拟了神经元的二元放电行为。 其中 1 代表神经元放电,0 代表神经元不放电。 最近,sigmoid 激活函数已被其他激活函数的行为和性能所超越。 请注意,S 形激活函数不是以零为中心的。 不以零为中心会影响优化或学习过程,使其变得更加困难。

TanH 激活函数的 它需要一个实数值并将其压缩到负一到一之间的范围内。 TanH 函数的开启或关闭激活行为与 sigmoid 函数类似。 但与 sigmoid 不同的是,它的输出是以零为中心的。 因此,TanH 激活函数通常优于 sigmoid 激活函数。 我们将介绍的最终激活函数是修正线性单元,简称 ReLu。 ReLu 最近变得非常流行。 它只是计算 X 的函数 F,等于零的最大值或 X 本身。

ReLu 激活函数通过加速训练来改进之前的函数。 梯度计算非常简单。 要么是零,要么是一。 根据标志 of 当前值。 模型内的优化和学习收敛得更快,因为该函数不再需要执行任何指数乘法、和、或、除法运算。 其中之前的功能是需要的。

对于要学习的深度神经网络,它需要测量其预测值的准确性。 它通过计算网络输出的预测值与实际结果之间的增量来实现这一点。 然后,计算出的增量用于开始调整网络权重的过程,并在下一次训练迭代期间进行搅动。 增量本身是通过使用特定的损失函数来计算的。

损失函数计算单个训练示例的误差。 损失函数在深度神经网络中起着重要作用。 它们用于测量预测值和实际标签之间的增量。 Delta 是一个非负值。 模型的准确性随着增量的减小而增加。 模型训练的目标是使增量逐渐趋于零。 损失函数有多种形式。

流行的函数包括交叉熵损失函数和主平方误差损失函数。 如此处所示,前向传播或前向传播的目标是对通过各层前馈的数据执行计算。 并通过每个连接的神经元。 计算通过网络连续按顺序完成。 一层又一层。 直到我们到达最终的输出层。 它输出一个预测。

计算从第一层开始。 输入层。 向前穿过隐藏层。 一直到最后一层。 输出层。 如图所示,向后传递或反向传播的目标是搅动并根据其对总体误差的贡献程度按比例调整网络中的每个权重。 迭代地减少每个权重的误差幅度最终使网络收敛到最佳解决方案。 因此它可以产生准确的预测。 这个过程就是神经网络的学习过程。

计算从最后一层,即输出层开始。 反过来通过隐藏层。 一直到第一层。 输入层。 单个向后和向前传递组合在一起就形成了一次迭代。 一个时期是训练数据集向神经网络的一次完整呈现。 神经网络通过使用许多很多时期进行自我训练来学习并收敛到最佳解决方案。

相关推荐
浊酒南街13 分钟前
决策树(理论知识1)
算法·决策树·机器学习
B站计算机毕业设计超人21 分钟前
计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
大数据·人工智能·爬虫·python·机器学习·课程设计·数据可视化
学术头条25 分钟前
清华、智谱团队:探索 RLHF 的 scaling laws
人工智能·深度学习·算法·机器学习·语言模型·计算语言学
18号房客30 分钟前
一个简单的机器学习实战例程,使用Scikit-Learn库来完成一个常见的分类任务——**鸢尾花数据集(Iris Dataset)**的分类
人工智能·深度学习·神经网络·机器学习·语言模型·自然语言处理·sklearn
feifeikon33 分钟前
机器学习DAY3 : 线性回归与最小二乘法与sklearn实现 (线性回归完)
人工智能·机器学习·线性回归
游客52035 分钟前
opencv中的常用的100个API
图像处理·人工智能·python·opencv·计算机视觉
古希腊掌管学习的神37 分钟前
[机器学习]sklearn入门指南(2)
人工智能·机器学习·sklearn
凡人的AI工具箱1 小时前
每天40分玩转Django:Django国际化
数据库·人工智能·后端·python·django·sqlite
IT猿手1 小时前
最新高性能多目标优化算法:多目标麋鹿优化算法(MOEHO)求解TP1-TP10及工程应用---盘式制动器设计,提供完整MATLAB代码
开发语言·深度学习·算法·机器学习·matlab·多目标算法
咸鱼桨1 小时前
《庐山派从入门到...》PWM板载蜂鸣器
人工智能·windows·python·k230·庐山派