有监督学习

什么是有监督学习

有监督学习是一种使用标注数据训练模型以进行预测的机器学习方法。在有监督学习中,模型学习使用已知的输入数据和响应来执行分类或回归任务。

有监督学习的工作原理

有监督学习是最常见的机器学习类型。它使用已知数据集(称为训练数据集),通过已知输入数据集(称为特征)和已知响应来训练算法。训练数据集包括与期望输出或响应值配对的标注输入数据。基于这个数据集,有监督学习算法寻求通过发现特征和输出数据之间的关系来创建模型,然后对新数据集的响应值进行预测。

有监督学习可用于多个工程和科学领域以开发解决实际问题的模型。例如,假设临床医生有以前就医的患者的相关数据,包括年龄、体重、身高和血压。他们知道以前的患者是否出现过心脏病发作,并想预测新患者是否有心脏病发作风险。这可以通过使用有监督学习对现有数据建模来实现。

有监督学习的简化工作流,显示在训练阶段作为输入的数据和标签,以及推断阶段的新数据和预测响应。

有监督学习中的训练和推断阶段。

典型的有监督学习工作流涉及诸如数据准备、算法选择、模型训练和模型评估等步骤。由于有监督学习依赖标注数据来训练模型,因此训练数据真实可信至关重要。例如,如果模型将在含噪环境中使用,则训练数据也必须包含真实水平的噪声。验证是有监督学习中的另一个重要步骤,用于确保模型对未见数据泛化良好并防止过拟合

改进有监督学习模型

改进有监督学习模型,即提高其准确度和预测能力,通常涉及特征工程和超参数调节。特征工程是将原始数据转换为用作机器学习模型输入的特征的过程。超参数调节涉及识别能提供最佳模型的参数集。

改进有监督学习模型的工作流图。在经过特征选择和变换后,模型以迭代方式训练和调节。

应用特征工程和超参数调节以提高有监督学习模型的性能。

特征工程涉及诸如特征选择和特征变换等步骤。在特征选择中,您识别在数据建模中提供最佳预测能力的最相关特征或变量。在特征变换期间,使用主成分分析非负矩阵分解因子分析和其他方法将现有特征变换为新特征。

在超参数调节中,您尝试找到控制学习过程的参数的最佳设置,例如学习率、批量大小和轮数。

有监督学习与无监督学习

有监督学习和无监督学习都是机器学习的类型。

有监督学习方法包括分类和回归,无监督学习方法包括聚类。

两种类型的机器学习:有监督学习和无监督学习。

有监督学习和无监督学习之间的主要区别是有监督学习需要标注训练数据来训练机器学习模型。相反,无监督学习使用未标注数据在没有人工干预的情况下揭示数据中隐藏的关系。由于标注数据的存在,有监督学习结果可能比无监督学习结果更准确。然而,获取标注数据通常需要人工处理,并且可能耗时、成本高昂且在某些情况下不切实际。

在应用有监督学习之前,有时无监督学习会被使用,来发现输入数据中的模式并为有监督学习识别特征。除了识别特征外,还需要为训练集中的所有观测值识别正确的类别或响应。半监督学习是另一种机器学习方法,它让您用更少的标注数据训练模型,从而减少标注工作。

有监督学习的类型

有监督学习算法创建的机器学习模型的主要类型是分类模型和回归模型。分类或回归任务均可使用不同算法对数据进行建模。

用于分类模型的有监督学习算法包括朴素贝叶斯、最近邻和判别分析。回归模型的算法包括线性回归、广义线性模型和高斯过程。支持向量机、决策树、集成方法和神经网络既可用于分类也可用于回归。

有监督学习算法的类型。

用于分类的有监督学习

在有监督学习中,分类指将数据分为若干特定类或类别。目标是将有限类集合中的一个类(或标签)分配给一个观测值。即,分类模型的响应是分类变量。

典型的应用包括医学成像、语音识别和信用评分。例如,确定电子邮件是真实的还是垃圾邮件或设备部件是有缺陷的还是良好的

用于分类任务的常见有监督学习模型
逻辑回归拟合一个模型,该模型可预测属于一个类或另一个类的二元响应的概率。 判别分析通过假设不同类基于高斯分布生成数据,找到特征的线性组合,从而对数据进行分类。 k 最近邻 (kNN) 算法根据数据集中一个对象的最近邻的类对该对象进行分类。kNN 算法预测假设彼此靠近的对象是相似的。 朴素贝叶斯分类器假设类中各个特征的存在彼此不相关。该算法根据新数据属于某个特定类的最高概率对该数据进行分类。
散点图,其中的直线将数据点分离为两个类。
曲线将数据点分离为两个类。
数据点距其最近邻有不同距离的图示。
        
数据分组为同心类的图示。

用于回归的有监督学习

您可以在有监督学习中使用回归方法理解响应和输入变量之间的关系。它们适用于具有一系列值的数据集或响应为实数的情形,例如温度或设备故障时间。即,回归模型预测连续响应。典型应用包括电力负荷预测、预测电池剩余循环寿命、算法交易、疾病发病率、预测股价和声学信号处理。

用于回归任务的常见有监督学习算法
线性回归是一种统计建模方法,用来将连续响应变量描述为一个或多个预测变量的线性函数。由于线性回归模型易于解释和训练,它们通常是拟合新数据集时采用的首选模型。 非线性回归是一种统计建模方法,有助于描述试验数据中的非线性关系。非线性回归模型通常被视为参数化模型,其中模型描述为非线性方程。 一类特殊的非线性模型 - 广义线性模型使用线性方法。其方法涉及将输入的线性组合拟合到输出的非线性函数(联系函数)中。
带线性趋势线的散点图。
带非线性趋势线的散点图。
     
拟合数据点的曲线。

用于分类或回归的有监督学习

可用于分类和回归任务的有监督学习算法有几种。

用于分类和回归任务的常见有监督学习算法
决策树可用于预测对数据的响应,方法是按照从树中根节点(起始位置)到叶节点的顺序自上而下地决策。树由分支条件组成,在这些条件中,预测变量的值与训练得到的权重进行比较。分支数和权重值在训练期间确定。 支持向量机 (SVM) 通过找到使一个类的所有数据点与另一个类的所有数据点的分离效果最好的超平面对数据进行分类。对于 SVM 回归,算法不是寻找一个分隔数据的超平面,而是寻找一个偏离所测量数据的模型,其中,偏离的值不大于一个较小的数量,并且采用的参数值尽可能小(旨在最大限度降低对误差的敏感度)。 神经网络是自适应系统,它们通过使用类似人脑的层次结构中的互连节点或神经元进行学习。神经网络可通过数据进行学习,因此,您可以训练它来识别模式、对数据分类和预测未来事件。神经网络的行为由其各个元素的连接方式以及这些连接的强度或权重来确定。这些权重会在训练期间自动调整。
决策树图,顶部有一个根,分裂成几层分支。
示意图,其中的直线将数据点分离为两个类。
显示几层互连节点的模型。

深度学习是机器学习的一种特殊形式,它利用深度神经网络处理更复杂的任务和更大的数据集。常见的深度学习算法,如卷积神经网络 (CNN)循环神经网络 (RNN)长短期记忆 (LSTM) 网络,通常是有监督学习算法。

选择合适的有监督学习算法

当您为数据选择有监督学习算法时,必须在不同算法之间综合权衡,例如考虑其计算和内存需求、预测准确度和可解释性。此过程可能涉及试错,并且可以通过应用自动化机器学习 (AutoML) 简化。

显示有监督学习算法的绘图,x 轴表示可解释性,y 轴表示预测能力。

几种有监督学习算法的预测能力和可解释性之间的权衡。

为什么有监督学习如此重要

有监督学习是机器学习人工智能的一个重要领域。工程师和科学家使用有监督学习构建 AI 模型以解决实际问题。例如,在虚拟传感器建模中,使用有监督学习算法训练用于开发这些传感器的 AI 模型。有监督学习的一些应用领域是:

  • 生物信息学和医疗设备:有监督学习方法广泛用于医疗保健中的医学成像、肿瘤检测和药品发现。有监督学习也可用于基于信号的任务,例如对 ECG 数据进行分类以区分心律失常、充血性心力衰竭和正常窦性心律
  • 能源生产:通过使用有监督学习执行回归任务,工程师可以预测能源价格、预测电力负荷并为各种可再生能源应用创建模型。
  • 工业自动化:有监督学习可用于开发异常检测、故障检测和诊断的预测模型。
  • 量化金融和风险评估:有监督学习算法可用于信用评分、算法交易、股价预测和债券分类。

有监督学习的真实示例

电池荷电状态 (SOC) 是指电池相对于其容量的充电水平,以百分比表示。SOC 在许多应用中的估计必须准确,例如在电动汽车中。由于不断变化的工况和显著的器件差异性,即使使用同一制造商的电池,基于物理建模方法的锂离子 SOC 估计也非常复杂。

使用有监督学习创建一个用于 SOC 估计的预测模型是一种数据驱动方法,可以帮助应对上述挑战。该模型可以根据表示各种电池测量值(如电压、电流和温度)以及衍生特征(如平均电压和电流)的时间序列数据来预测车辆锂离子电池的荷电状态。了解有关此示例的更多信息。

五个线图,显示使用有监督学习的真实和预测 SOC;第一个线图显示训练数据,其他四个显示在不同温度下绘制的测试数据。

在 Statistics and Machine Learning Toolbox 中使用高斯过程回归模型的真实和预测 SOC。(请参阅代码。)

使用 MATLAB 进行有监督学习

MATLAB® 使您能够应用有监督学习和构建预测模型。您可以使用 Statistics and Machine Learning ToolboxDeep Learning Toolbox 训练、验证和调节有监督学习模型。您可以将机器学习和深度学习工具与其他 MATLAB 工具箱结合使用以执行行业特定工作流。使用内置函数和交互式 App,您可以处理和标注数据、训练模型、可视化模型性能以及调节超参数来提高模型性能。

数据准备

MATLAB 支持信号、视觉和文本数据。您可以在命令行中或以交互方式使用低代码 App 访问和探索数据:

数据清洗器的截图,用于有监督学习中的处理离群值步骤。

在 MATLAB 中使用数据清洗器应用数据预处理步骤。(请参阅文档。)

对于特征工程,MATLAB 为大多数特征提取特征选择方法提供内置工具。

使用低代码 App 进行 AI 建模

分类学习器回归学习器帮助您将有监督学习分别应用于分类和回归的机器学习模型的设计、调节、评估和优化。使用这些机器学习 App,您可以:

  • 基于不同机器学习算法训练模型。
  • 可视化结果并评估模型性能。
  • 比较多个模型的性能。
  • 自动为训练模型生成代码。
  • 将训练模型导出到工作区、Simulink® 和 MATLAB Production Server™。

分类学习器

在分类学习器中可视化的有监督学习模型的截图。

回归学习器

在回归学习器中可视化的有监督学习模型的截图。

使用深度网络设计器,您可以通过交互方式设计、分析和修改深度学习网络。您也可以加载预训练网络或从 PyTorch® 和 TensorFlow 导入网络。

在 MATLAB 中为有监督学习创建的深度神经网络的截图。

在 MATLAB 中使用深度网络设计器设计深度神经网络。(请参阅文档。)

除了 AI 建模,您还可以使用试验管理器导入和管理多个机器学习和深度学习试验、跟踪训练参数、调整超参数、分析结果和比较不同试验的代码。

有监督学习和嵌入式 AI

使用 MATLAB 和 Simulink,您可以设计、仿真、测试、验证并部署基于有监督学习构建的 AI 模型,以提升复杂嵌入式系统的性能和功能。使用专用 Simulink 模块对 AI 模型与复杂系统的集成进行仿真和测试。自动生成针对部署到资源受限目标优化的代码。