主要内容

配置增量学习模型

一个增量学习模型对象完全指定了函数如何实现增量拟合和模型性能评价。要配置(或准备)一个增量学习模型,可以通过直接调用对象或将传统训练的模型转换为其中一个对象来创建一个增量学习模型。下表列出了对应机器学习目标的可用对象、转换函数和支持的学习者。金宝app

客观的 创建方法 函数 金宝app支持学习者
二元分类 调用对象 incrementalClassificationLinear

线性支持向量机

逻辑回归

转换模型

incrementalLearner转换线性支持向量机模型(ClassificationSVMCompactClassificationSVM

incrementalLearner转换线性分类模型(ClassificationLinear

多类分类 调用对象 incrementalClassificationNaiveBayes

朴素贝叶斯分类与正规,多项式,或多元多项式预测分布,条件上的类

转换模型

incrementalLearner转换一个完整的朴素贝叶斯分类模型(ClassificationNaiveBayes

回归 调用对象 incrementalRegressionLinear

线性支持向量机回归

最小二乘

转换模型

incrementalLearner转换线性支持向量机回归模型(RegressionSVMCompactRegressionSVM

incrementalLearner转换线性回归模型(RegressionLinear

您选择的创建方法取决于您所拥有的信息和您的偏好。

  • 调用对象:通过直接调用对象,为您的规范创建一个增量模型。这种方法很灵活,允许您指定大多数选项以适合您的首选项,并且生成的模型提供合理的默认值。然而:

    • 对于线性分类或回归模型,您的规范可能需要一个估计周期。

    • 对于朴素贝叶斯分类模型,必须指定增量学习期间数据中期望的最大类数或所有类名。

    有关详细信息,请参见直接调用对象

  • 转换模型:将传统训练模型转换为增量学习者,初始化增量学习模型。incrementalLearner传递传统训练模型从数据中学习到的信息。对于线性模型,传递的信息包括优化的系数估计、数据特征和适用的超参数值。对于朴素贝叶斯分类模型,传递的信息包括数据特征,如所有期望的类名和条件预测器分布的拟合参数。然而,要转换传统训练的模型,您必须有一组标记的数据,以便您能够适合于模型。

    当你使用incrementalLearner,您可以指定所有性能评估选项,只指定转换期间未知的培训、模型和数据选项。有关详细信息,请参见转换传统训练模式

不管您使用的是增量模型创建方法,请考虑以下配置:

  • 对性能评估设置进行建模,例如要度量的性能指标

  • 线性模型:

    • 模型类型,如SVM

    • 系数初始值

    • 目标函数求解器,如标准随机梯度下降(SGD)

    • 解算器超参数值,如SGD解算器的学习率

  • 对于朴素贝叶斯模型,预测变量的条件分布。在数据集中,您可以指定实值预测器是正态分布的,而分类预测器(级别是数字标量)是多元多项式的。对于令牌包模型,其中每个预测器都是一个计数,您可以指定所有预测器都是联合多项式的。

直接调用对象

与使用其他机器学习模型对象不同,您可以通过直接调用相应的对象来创建增量学习模型,而不需要对数据有任何了解。对于线性模型,直接创建模型所需的唯一信息是机器学习问题,无论是分类还是回归,而朴素贝叶斯分类模型需要数据中期望的最大类数或所有类名。例如,以下代码为线性回归创建默认增量模型,为包含5个类的数据流创建朴素贝叶斯分类模型。

MdlLR = incrementalRegressionLinear ();MdlNB = incrementalClassificationNaiveBayes (“MaxNumClasses”5)

如果您有关于要指定的数据的信息,或者您希望配置模型选项或性能评估设置,则在调用对象时使用名称-值参数。(所有模型属性都是只读的;你不能使用点符号来调整它们。)例如,下面的伪代码为二进制分类创建增量逻辑回归模型,初始化线性模型系数β和偏见偏见(从问题的先验知识中获得),并将性能指标的预热期设置为500观察。

Mdl = incrementalClassificationLinear (“学习者”“物流”...“β”,β,“偏见”偏见,“MetricsWarmupPeriod”, 500);

下表简要描述了增量学习的主要方面的值得注意的选项。有关所有选项的详细信息,请参见incrementalRegressionLinearincrementalClassificationLinear,或incrementalClassificationNaiveBayes

模型选项和数据属性

该表包含显著的模型选项和数据特征。

模型类型 模型选项和数据属性 描述
线性分类或回归 “β” 作为增量拟合的初始值的线性系数
“偏见” 模型截距,也作为增量拟合的初始值
“学习者” 模型类型,如线性支持向量机或最小二乘
朴素贝叶斯分类 “成本” 误分类代价矩阵
分类 “类名” 为了分类,期望的类名在观察标签中

训练和求解器选项和属性

该表包含显著的训练和求解器选项和属性。

模型类型 训练和求解器选项和属性 描述
线性分类或回归 “EstimationPeriod” Pretraining估计时间
“规划求解” 目标函数优化算法
“标准化” 标志标准化预测器数据
“λ” Ridge惩罚,一个需要调优SGD优化的模型超参数
“BatchSize” 小批量大小,一个SGD超参数
“LearnRate” 学习率,SGD超参数
“亩” 只读属性,包含预测变量的方法
“σ” 只读属性,包含预测变量标准差
朴素贝叶斯分类 “DistributionParameters”

只读属性,包含学习到的分布参数。

  • 对于给定一类条件正态分布的每个预测器,拟合、加权平均值和标准差。

  • 对于给定的一类有条件联合多项式预测器,预测器所代表的水平的相对频率。

  • 对于每一个有条件的多元多项式给定一类,一个预测器水平的相对频率的向量。

对于线性分类和回归模型:

  • 估计周期,由观测次数确定EstimationPeriod,发生在训练开始前(见增量学习时期).在估计期间,采用增量拟合函数适合updateMetricsAndFit计算未知训练所需的数量。例如,如果你设置“标准化”,真的,增量学习函数需要预测器均值和标准差来标准化预测器数据。因此,增量模型需要一个正的估计周期(默认为1000).

  • 默认解算器是自适应比例不变解算器“扇区”[2],超参数自由,对预测变量尺度不敏感;因此,不需要对预测数据进行标准化。你可以指定标准SGD或平均SGD,“sgd”“asgd”.然而,SGD对预测变量的尺度非常敏感,需要超参数调整,这在增量学习中很难或不可能做到。如果您计划使用SGD求解器,请完成以下步骤:

    1. 获得带安全标签的数据。

    2. 传统上通过调用来训练线性分类或回归模型fitclinearfitrlinear,分别。指定您计划用于增量学习的SGD求解器,交叉验证以确定一组合适的超参数,并标准化预测器数据。

    3. 使用指定的超参数集在整个样本上训练模型。

    4. 将结果模型转换为增量学习者使用incrementalLearner

性能评估选项和属性

性能评估属性和选项使您能够配置增量学习功能如何以及何时测量模型性能updateMetricsupdateMetricsAndFit.不管你选择什么选项,首先要熟悉增量学习时期

该表包含所有性能评估选项和属性。

性能评估选项和属性 描述
“指标” 要增量度量的性能指标或损失函数的列表
“MetricsWarmupPeiod” 增量模型在跟踪性能指标之前必须符合的观察数
“MetricsWindowSize” 用于计算窗口性能指标的观察数
“IsWarm” 只读属性,指示模型是否为热状态(度量性能指标)
“指标” 只读属性,包含跟踪的累积指标和窗口指标的表

指定的度量“指标”属性中存储的名称-值表指标模型的属性。例如,如果指定“指标”,(“Metric1”“Metric2”)当您创建增量模型时Mdl,指标属性是

> > Mdl。Metrics ans = 2×2 table累积窗口__________ ______ Metric1 NaN NaN Metric2 NaN NaN

指定一个积极的度量热身期,当您认为模型是低质量的,需要在功能之前进行训练updateMetricsupdateMetricsAndFit跟踪性能指标指标财产。在这种情况下IsWarm属性是,必须将传入的数据和模型传递给增量拟合函数适合updateMetricsAndFit

当增量拟合函数处理足够的数据以满足估计(对于线性模型)和度量指标的预热期时IsWarm房地产成为真正的,您可以在传入数据上度量模型性能,并可选地训练模型。对于朴素贝叶斯分类模型,增量拟合函数必须额外地将模型拟合到所有期望的类中,才会变得温暖。

当模型变暖时,updateMetricsupdateMetricsAndFit累积地(从评估开始)跟踪所有指定的度量标准,并在指定的观察窗口内MetricsWindowSize财产。累积指标反映了模型在整个渐进学习历史中的表现;绩效评估期1开始后,累计指标独立于评估期。窗口度量仅反映每个性能评估期间指定的窗口大小范围内的模型性能。

转换传统训练模式

incrementalLearner使您能够使用从传统训练的模型中学到的信息初始化增量模型。转换后的模型可以生成预测,它是温暖的,这意味着增量学习函数可以从数据流的一开始就测量模型的性能指标。换句话说,增量学习并不需要评估和性能指标的预热期。

要将传统训练的模型转换为增量学习器,请将模型和由名称-值参数指定的任何选项传递给incrementalLearner.例如,下面的伪代码使用用于二进制分类的线性SVM模型从一批数据中学习到的所有信息初始化增量分类模型。

Mdl = fitcsvm (X, Y);IncrementalMdl = incrementalLearner (Mdl、名称、值);

IncrementalMdl是与机器学习目标相关联的增量学习对象。

增量模型创建和初始化的简单性被降低的灵活性所抵消。软件假设拟合参数、超参数值和传统训练中学习到的数据特征适合增量学习。因此,在调用时无法设置相应的学习或调优选项incrementalLearner.的重要只读属性IncrementalMdlincrementalLearner转移Mdl,或者函数从其他值推断。

模型类型 财产 描述
所有 NumPredictors 预测变量数。对于伪代码分类预测变量的模型,NumPredictors元素个数(Mdl.ExpandedPredictorNames),增量学习中预期的预测变量与名称对应。有关详细信息,请参见虚拟变量
分类 一会 在渐进学习过程中,所有的班级标签都是需要的
之前 前类分布
ScoreTransform

用于分类分数的函数。例如,如果你配置一个支持向量机模型来计算后验类概率,ScoreTransform(包含从数据中学习到的得分-后验概率函数)。

回归 ε 对于支持向量机学习器来说,是不敏感频带宽度的一半
ResponseTransform 用于预测响应的函数
线性分类或回归 β 线性模型系数
偏见 模型的截距
学习者 线性模型类型
μ 对于一个支持向量机模型对象,预测变量的均值
σ 对于一个支持向量机模型对象,预测器变量标准差
朴素贝叶斯分类 DistributionNames

给定类的预测变量的条件分布,具有下列值之一:

  • 一个NumPredictors带条目的长度单元格向量“正常”,当相应的预测器正常时,或“mvmn”,当相应的预测器是多元多项式时。

  • “锰”,当所有预测变量组成一个多项分布时。

如果你转换一个朴素的贝叶斯分类模型,其中至少包含一个具有核分布的预测器,incrementalLearner一个错误的问题。

DistributionParameters

每一类条件预测器分布的拟合分布参数,aNumPredictors——- - - - - -K细胞矩阵。

CategoricalPredictors 分类预测指标的数值向量
CategoricalLevels 多元多项预测水平,一个细胞向量的长度NumPredictors

请注意

  • NumTrainingObservations的属性IncrementalMdl不包括训练时的观察结果吗Mdl

  • 如果您指定“标准化”,真的当你训练MdlIncrementalMdl默认情况下,配置为在增量学习期间标准化预测器。

当您转换线性分类或回归模型(ClassificationLinearRegressionLinear分别为):

  • 增量拟合函数仅支持脊(L2)正则化。金宝app

  • 增量拟合函数只支持指定一个正则化值。金宝app因此,如果您在调用时指定正则化路径(正则化值的向量)fitclinearfitrlinear,选择与一个惩罚相关的模型,将其传递给selectModels

  • 如果你使用标准或平均SGD (“sgd”“asgd”“规划求解”名称-值参数),这些条件在调用时应用incrementalLearner

    • incrementalLearner传递用于优化的求解器MdlIncrementalMdl

    • 您可以指定自适应比例不变求解器“扇区”但您不能指定不同的SGD求解器。

    • 如果您没有指定自适应比例不变求解器,incrementalLearner将模型和求解器超参数值传递到增量模型对象,如学习率LearnRatemini-batch大小BatchSize,和岭罚λ.您不能修改传输的属性。

如果您在创建增量模型时需要更多的灵活性,您可以这样做直接调用对象并通过使用名称-值参数单独设置学到的信息来初始化模型。下面的伪代码显示了两个示例:

  • 通过拟合用于二值分类的线性支持向量机模型,将学习到的系数和类名初始化为增量分类模型XcYc

  • 通过将线性模型拟合到一批数据中,将学习到的系数初始化为增量回归模型Xr

%线性分类Mdl = fitcsvm (Xc、Yc);IncrementalMdl = incrementalClassificationLinear (“β”Mdl。β,...“偏见”Mdl。偏见,“类名”, Mdl.ClassNames);%线性回归Mdl = fitlm (Xr,年);偏见= Mdl.Coefficients.Estimate (1);β= Mdl.Coefficients.Estimate(2:结束);IncrementalMdl = incrementalRegressionLinear (“学习者”“leastsquares”...“偏见”偏见,“β”,β);

对于朴素贝叶斯分类模型,不能指定每个预测变量的条件概率分布参数DistributionParameters;它们必须符合数据,通过适合updateMetricsAndFit,或fitcnb

参考文献

[1] Bifet, Albert, Ricard Gavaldá, Geoffrey Holmes, Bernhard Pfahringer。基于MOA的数据流机器学习及其实例.麻省理工学院出版社,2007年。

[2]肯普卡,Michał,沃伊切赫,Kotłowski,曼弗雷德·k·瓦姆斯。学习线性模型的自适应尺度不变在线算法相关系数(2019年2月)。https://arxiv.org/abs/1902.07528

另请参阅

对象

相关的话题