配置增量学习模型
增量学习模型对象完全指定了函数如何实现增量拟合和模型性能评估。要配置(或准备)增量学习模型,可以通过直接调用对象或将传统训练的模型转换为其中一个对象来创建一个增量学习模型。下表列出了相应机器学习目标的可用对象、转换函数和支持的学习者。万博1manbetx
客观的 | 创建方法 | 函数 | 万博1manbetx支持学习者 |
---|---|---|---|
二元分类 | 调用对象 | incrementalClassificationLinear |
线性支持向量机 逻辑回归 |
转换模型 |
|
||
多类分类 | 调用对象 | incrementalClassificationNaiveBayes |
具有正态、多项或多元多项预测器分布的朴素贝叶斯分类,以类为条件 |
转换模型 |
|
||
回归 | 调用对象 | incrementalRegressionLinear |
线性支持向量机回归 最小二乘 |
转换模型 |
|
您选择的创建方法取决于您所拥有的信息和您的偏好。
调用对象:通过直接调用对象来创建您的规范的增量模型。这种方法是灵活的,使您能够指定大多数选项以适合您的首选项,并且得到的模型提供了合理的默认值。然而:
对于线性分类或回归模型,您的规范可能需要一个估计周期。
对于朴素贝叶斯分类模型,必须在增量学习期间指定数据中期望的最大类数或所有类名。
有关更多细节,请参见直接调用对象.
转换模型:将传统训练的模型转换为增量学习器,初始化一个用于增量学习的模型。
incrementalLearner
传递传统训练的模型从数据中学到的信息。对于线性模型,传递的信息包括优化系数估计、数据特征和适用的超参数值。对于朴素贝叶斯分类模型,传递的信息包括数据特征,如所有期望的类名和条件预测器分布的拟合参数。然而,要转换传统训练的模型,您必须有一组标记的数据,可以将模型拟合到其中。当你使用
incrementalLearner
,您可以指定所有性能评估选项,并且只指定转换期间未知的训练、模型和数据选项。有关更多细节,请参见转换传统训练模型.
不管您使用的增量模型创建方法是什么,请考虑以下配置:
对性能评估设置建模,例如要度量的性能指标
对于线性模型:
模型类型,如SVM
系数初值
目标函数求解器,如标准随机梯度下降(SGD)
求解器超参数值,如SGD求解器的学习率
对于朴素贝叶斯模型,预测变量的条件分布。在数据集中,可以指定实值预测器是正态分布的,而类别预测器(其中级别是数值标量)是多元多项式的。对于令牌袋模型,其中每个预测器都是一个计数,您可以指定所有预测器都是联合多项的。
直接调用对象
与使用其他机器学习模型对象不同,您可以通过直接调用相应的对象来创建增量学习模型,而不需要了解数据。对于线性模型,直接创建模型所需的唯一信息是机器学习问题,要么是分类,要么是回归,而朴素贝叶斯分类模型需要数据中期望的最大类数或所有类名。例如,以下代码为线性回归创建一个默认的增量模型,并为包含5个类的数据流创建一个朴素贝叶斯分类模型。
MdlLR = incrementalRegressionLinear();MdlNB = incrementalClassificationNaiveBayes(“MaxNumClasses”5)
如果您有关于要指定的数据的信息,或者您想配置模型选项或性能评估设置,请在调用对象时使用名称-值参数。(所有模型属性都是只读的;你不能用点符号来调整它们。)例如,下面的伪代码创建一个用于二进制分类的增量逻辑回归模型,初始化线性模型系数β
和偏见偏见
(从对问题的先验知识中获得),并将性能指标预热期设置为500
观察。
Mdl = incrementalClassificationLinear“学习者”,“物流”,...“β”,β,“偏见”偏见,“MetricsWarmupPeriod”, 500);
下表简要描述了增量学习的主要方面值得注意的选项。有关所有选项的详细信息,请参见incrementalRegressionLinear
,incrementalClassificationLinear
,或incrementalClassificationNaiveBayes
.
模型选项和数据属性
该表包含值得注意的模型选项和数据特征。
模型类型 | 模型选项和数据属性 | 描述 |
---|---|---|
线性分类或回归 | “β” |
线性系数也作为增量拟合的初始值 |
“偏见” |
模型截距,也作为增量拟合的初始值 | |
“学习者” |
模型类型,如线性支持向量机或最小二乘 | |
朴素贝叶斯分类 | “成本” |
错误分类成本矩阵 |
分类 | “类名” |
分类时,观察标签中预期的类名 |
训练和求解选项和属性
该表包含值得注意的训练和求解器选项和属性。
模型类型 | 训练和求解选项和属性 | 描述 |
---|---|---|
线性分类或回归 | “EstimationPeriod” |
培训前评估期 |
“规划求解” |
目标函数优化算法 | |
“标准化” |
标志以标准化预测器数据 | |
“λ” |
脊惩罚,一个模型超参数,需要调整SGD优化 | |
“BatchSize” |
小批大小,SGD超参数 | |
“LearnRate” |
学习率,SGD超参数 | |
“亩” |
包含预测器变量均值的只读属性 | |
“σ” |
只读属性,包含预测器变量标准差 | |
朴素贝叶斯分类 | “DistributionParameters” |
只读属性,包含学习到的分布参数。
|
对于线性分类和回归模型:
估计周期,由在
EstimationPeriod
,发生在训练开始之前(参见增量学习期).在估计期间,增量拟合函数适合
或updateMetricsAndFit
计算训练所需的未知数量。例如,如果你设置“标准化”,真的
,增量学习函数需要预测器均值和标准差来标准化预测器数据。因此,增量模型需要一个正的估计周期(默认为1000
).默认的求解器是自适应比例不变求解器
“扇区”
[2],不受超参数影响,对预测变量尺度不敏感;因此,不需要对预测器数据进行标准化。你可以指定标准或平均SGD,“sgd”
或“asgd”
.然而,SGD对预测器变量尺度很敏感,需要超参数调优,这在增量学习中可能很难或不可能做到。如果你计划使用SGD求解器,请完成以下步骤:获取标记数据。
传统上训练线性分类或回归模型调用
fitclinear
或fitrlinear
,分别。指定计划用于增量学习的SGD求解器,交叉验证以确定一组适当的超参数,并标准化预测器数据。使用指定的超参数集在整个样本上训练模型。
通过使用将结果模型转换为增量学习者
incrementalLearner
.
性能评估选项和属性
性能评估属性和选项使您能够配置增量学习功能测量模型性能的方式和时间updateMetrics
或updateMetricsAndFit
.无论您选择什么选项,首先要熟悉渐进式学习周期.
此表包含所有性能评估选项和属性。
性能评估选项和属性 | 描述 |
---|---|
“指标” |
要增量度量的性能指标或损失函数列表 |
“MetricsWarmupPeiod” |
在跟踪性能指标之前,增量模型必须适应的观察数 |
“MetricsWindowSize” |
用于计算窗口性能指标的观察数 |
“IsWarm” |
指示模型是否温暖的只读属性(测量性能指标) |
“指标” |
只读属性,其中包含跟踪的累积度量和窗口度量的表 |
参数指定的度量“指标”
类中存储的表的名称-值形式指标
模型的属性。例如,如果您指定“指标”,(“Metric1”“Metric2”)
当您创建增量模型时Mdl
,指标
属性是
> > Mdl。Metrics ans = 2×2 table累积窗口__________ ______ Metric1 NaN NaN Metric2 NaN NaN
当您认为模型是低质量的,并且需要在函数之前进行训练时,指定一个积极的度量指标预热期updateMetrics
或updateMetricsAndFit
中跟踪性能指标指标
财产。在这种情况下,IsWarm
属性是假
,并且必须将传入的数据和模型传递给增量拟合函数适合
或updateMetricsAndFit
.
当增量拟合函数处理足够的数据以满足估计(对于线性模型)和度量预热期时,则IsWarm
房地产成为真正的
,您可以在传入数据上度量模型性能,并可选地训练模型。对于朴素贝叶斯分类模型,增量拟合函数必须额外地将模型拟合到所有期望的类变暖。
当模型是温暖的,updateMetrics
或updateMetricsAndFit
方法指定的观察窗口内累计跟踪所有指定的指标(从评估开始)MetricsWindowSize
财产。累积度量反映了整个增量学习历史中的模型性能;绩效评估阶段1开始后,累积指标独立于评估阶段。窗口指标仅反映每个性能评估期间的指定窗口大小上的模型性能。
转换传统训练模型
incrementalLearner
使您能够使用从传统训练的模型中学到的信息初始化增量模型。转换后的模型可以产生预测,它是温暖的,这意味着增量学习函数可以从数据流的开始测量模型性能指标。换句话说,增量学习不需要评估和性能度量预热期。
要将传统训练的模型转换为增量学习器,可以将模型和名称-值参数指定的任何选项传递给incrementalLearner
.例如,下面的伪代码通过使用用于二进制分类的线性支持向量机模型从一批数据中学到的所有信息来初始化增量分类模型。
Mdl = fitcsvm(X,Y);IncrementalMdl = incrementalLearner(Mdl,Name,Value);
IncrementalMdl
是一个与机器学习目标相关的增量学习对象。
增量模型创建和初始化的便捷性被降低的灵活性所抵消。该软件假设在传统训练中学习到的拟合参数、超参数值和数据特征适合增量学习。因此,在调用时不能设置相应的学习或调优选项incrementalLearner
.的重要只读属性IncrementalMdl
那incrementalLearner
转移Mdl
,或者该函数是从其他值推断出来的。
模型类型 | 财产 | 描述 |
---|---|---|
所有 | NumPredictors |
预测变量的数量。对于对分类预测变量进行伪编码的模型,NumPredictors 是元素个数(Mdl.ExpandedPredictorNames) ,增量学习过程中预期的预测变量与名称对应。有关更多细节,请参见虚拟变量. |
分类 | 一会 |
在增量学习中需要所有的类标签 |
之前 |
先验类分布 | |
ScoreTransform |
用于分类分数的函数。例如,如果你配置一个支持向量机模型来计算后验类概率, |
|
回归 | ε |
对于支持向量机学习器,是不敏感频带宽度的一半 |
ResponseTransform |
应用于预测响应的函数 | |
线性分类或回归 | β |
线性模型系数 |
偏见 |
模型的截距 | |
学习者 |
线性模型类型 | |
μ |
对于支持向量机模型对象,预测变量的均值 | |
σ |
对于支持向量机模型对象,预测变量标准差 | |
朴素贝叶斯分类 | DistributionNames |
给定类的预测变量的条件分布,具有以下值之一:
如果将包含至少一个预测器的朴素贝叶斯分类模型与核分布进行转换, |
DistributionParameters |
给定每一类条件预测器分布的拟合分布参数,a |
|
CategoricalPredictors |
类别预测器索引的数字向量 | |
CategoricalLevels |
多元多项式预测水平,一个单元格向量的长度NumPredictors |
请注意
的
NumTrainingObservations
的属性IncrementalMdl
不包括用于训练的观察结果吗Mdl
.如果你指定
“标准化”,真的
当你训练的时候Mdl
,IncrementalMdl
默认情况下配置为在增量学习期间标准化预测器。
转换线性分类或回归模型时,适用以下条件(ClassificationLinear
而且RegressionLinear
分别为):
增量拟合函数只支持脊(L2)正则化。万博1manbetx
增量拟合函数只支持一个正则化值的规范。万博1manbetx因此,如果在调用时指定正则化路径(正则化值的向量)
fitclinear
或fitrlinear
,通过传递给,选择与一个惩罚相关联的模型selectModels
.如果你用标准或平均SGD (
“sgd”
或“asgd”
为“规划求解”
名称-值参数),调用时应用这些条件incrementalLearner
:incrementalLearner
转移用于优化的求解器Mdl
来IncrementalMdl
.可以指定自适应比例不变求解器
“扇区”
相反,但不能指定不同的SGD求解器。如果不指定自适应比例不变求解器,
incrementalLearner
将模型和求解器超参数值传输到增量模型对象,例如学习率LearnRate
,小批量尺寸BatchSize
,以及山脊惩罚λ
.不能修改传输的属性。
如果您在创建增量模型时需要更大的灵活性,您可以这样做直接调用对象并通过使用名称-值参数单独设置学到的信息来初始化模型。下面的伪代码显示了两个示例:
通过拟合用于二进制分类的线性支持向量机模型,从系数和类名中初始化一个增量分类模型
Xc
而且Yc
.从拟合线性模型到一批数据的系数中初始化一个增量回归模型
Xr
而且年
.
%线性分类Mdl = fitcsvm(Xc,Yc);增量mdl =增量分类线性(“β”Mdl。β,...“偏见”Mdl。偏见,“类名”, Mdl.ClassNames);%线性回归Mdl = fitlm(Xr,Yr);偏差= mdl . coefficient . estimate (1);Beta = Mdl.Coefficients.Estimate(2:end);IncrementalMdl = incrementalRegressionLinear(“学习者”,“leastsquares”,...“偏见”偏见,“β”,β);
对于朴素贝叶斯分类模型,不能指定每个预测变量的条件概率分布的参数DistributionParameters
;它们必须与数据相匹配适合
,updateMetricsAndFit
,或fitcnb