主要内容

递增学习器

将二元分类的线性模型转换为增量学习器

描述

例子

IncrementalMdl=递增学习器(Mdl返回的二进制分类线性模型增量学习IncrementalMdl,使用传统训练的二元分类线性模型的超参数和系数,Mdl.因为其属性值反映了从MdlIncrementalMdl可以根据新的观测结果预测标签,是吗温暖的,这意味着跟踪其预测性能。

例子

IncrementalMdl=递增学习器(Mdl名称,值使用由一个或多个名称-值对参数指定的附加选项。有些选择需要训练IncrementalMdl在它的预测性能被跟踪之前。例如,“MetricsWarmupPeriod”,50岁,“MetricsWindowSize”,100在跟踪性能指标之前,指定50个观察值的初步增量培训周期,并指定在更新性能指标之前处理100个观察值。

例子

全部崩溃

利用遗传算法训练二元学习的线性分类模型fitclinear,然后将其转化为增量式学习者。

加载和预处理数据

加载人类活动数据集。

负载人类活动

有关数据集的详细信息,请输入描述在命令行。

响应可以是以下五个类之一:坐着运行跳舞.通过识别被试是否在移动(actid> 2).

Y=活动>2;

训练线性分类模型

对整个数据集拟合一个线性分类模型。

TTMdl=fitclinear(专长,Y)
TTMdl = classficationlinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [60x1 double] Bias: -0.2005 Lambda: 4.1537e-05 Learner: 'svm'属性,方法

TTMdl是一个ClassificationLinear模型对象表示传统训练的线性分类模型。

转换训练模型

将传统的训练线性分类模型转换为二元线性分类模型进行增量学习。

IncrementalMdl=incrementalLearner(TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1 Metrics: [1x2 table] ClassNames: [0 1] ScoreTransform: 'none' Beta: [60x1 double] Bias: -0.2005 Learner: 'svm'属性,方法

IncrementalMdl是一个incrementalClassificationLinear模型对象准备的增量学习使用支持向量机。

  • 递增学习器初始化增量学习者通过传递学习系数,以及其他信息TTMdl从训练数据中提取。

  • IncrementalMdl天气暖和(IsWarm1),这意味着增量学习功能可以开始跟踪性能指标。

  • 递增学习器函数使用自适应比例不变求解器训练模型,然而fitclinear训练有素的TTMdl使用BFGS解算器。

预测反应

通过转换传统训练模型创建的增量学习者可以生成预测,而无需进一步处理。

使用这两种模型预测所有观测值的分类分数。

[~,ttscores]=预测(TTMdl,feat);[~,ilscores]=预测(IncrementalMdl,feat);比较存储=常模(ttscores(:,1)-ilscores(:,1))
compareScores = 0

模型生成的分数之间的差值为0。

如果使用SGD或ASGD解算器训练线性分类模型,递增学习器在转换线性分类模型时,保留求解器、线性模型类型和相关的超参数值。

加载人类活动数据集。

负载人类活动

有关数据集的详细信息,请输入描述在命令行。

回答可以是五种类型之一:坐姿、站立、行走、跑步或跳舞。通过识别被试是否在移动(actid> 2).

Y=活动>2;

将数据随机分成两半:前半部分用于训练模型,后半部分用于增量学习。

n =元素个数(Y);rng (1)%的再现性本量利= cvpartition (n,“坚持”, 0.5);idxtt =培训(cvp);idxil =测试(cvp);%数据的前半部分Xtt=feat(idxtt,:);Ytt=Y(idxtt);%数据的后半部分自=壮举(idxil:);Yil = Y (idxil);

创建一组11个对数间隔的正则化强度 10 - 6 通过 10 - 0 5

λ=对数空间(-6,-0.5,11);

因为变量在不同的尺度上,所以使用隐式展开来标准化预测数据。

Xtt = (Xtt -均值(Xtt))./std(Xtt);

通过应用5倍交叉验证来调整L2正则化参数。指定标准SGD求解器。

Ytt TTCVMdl = fitclinear (Xtt,“KFold”5,“学习者”“物流”...“解算器”“sgd”“λ”,Lambda);

TTCVMdl是一个ClassificationPartitionedLinear表示交叉验证期间创建的五个模型的模型(请参见经过训练的)交叉验证程序包括使用每个规定的正规化值进行培训。

计算每个模型和正则化的交叉验证分类误差。

cvloss = kfoldLoss (TTCVMdl)
cvloss =1×110.0054 0.0039 0.0034 0.0033 0.0030 0.0027 0.0027 0.0031 0.0036 0.0056 0.0077

cvloss中每个正则化值的测试样本分类损失

选择最小化分类误差的正则化值。使用选定的正则化值再次训练模型。

[~,idxmin]=min(cvloss);TTMdl=fitclinear(Xtt,Ytt,“学习者”“物流”“解算器”“sgd”...“λ”,Lambda(idxmin));

TTMdl是一个ClassificationLinear模型。

将传统的训练线性分类模型转换为二元线性分类模型进行增量学习。指定标准SGD求解器。准备增量学习函数来标准化预测器。这个动作需要一个初始阶段来估计预测器的平均值和标准偏差。指定估算周期2000观察值(默认为1000当需要预测时刻时)。

IncrementalMdl=incrementalLearner(TTMdl,“标准化”符合事实的“EstimationPeriod”,2000);

IncrementalMdl是一个incrementalClassificationLinear模型对象。递增学习器通过求解器和正规化强度,以及从训练中学到的其他信息TTMdlIncrementalMdl

通过使用适合函数。在每一次迭代:

  • 通过一次处理10个观察来模拟数据流。

  • 用一个适合传入观测的新模型覆盖先前的增量模型。

  • 商店 β 1 看看它在训练过程中是如何发展的。

%预先配置nil =元素个数(Yil);numObsPerChunk = 10;nchunk =地板(nil / numObsPerChunk);learnrate = [IncrementalMdl.LearnRate;0 (nchunk 1)];beta1 = [IncrementalMdl.Beta (1);0 (nchunk 1)];%增量式拟合j = 1:nchunk ibegin = min(nil,numObsPerChunk*(j-1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl =适合(IncrementalMdl自(idx:), Yil (idx));(1) = IncrementalMdl.Beta(1);结束

IncrementalMdl是一个incrementalClassificationLinear模型对象对流中的所有数据进行训练。

情节 β 1 看看它是如何进化的。

情节(beta1) ylabel (“\beta_1”)xline(递增almdl.EstimationPeriod/numObsPerChunk,‘r-。’);包含(“迭代”

图中包含一个轴对象。轴对象包含两种类型的线,常量线。

因为适合在估计期间,模型不适合流数据, β 1 在前200次迭代(2000次观察)中是不变的。然后, β 1 增量拟合过程中突然发生变化。

使用训练过的线性分类模型来初始化增量学习者。通过指定一个指标预热期来为增量学习者做准备,在此期间updateMetricsAndFit函数只适合模型。指定一个指标窗口大小为500个观察值。

加载人类活动数据集。

负载人类活动

有关数据集的详细信息,请输入描述在命令行。

回答可以是五种课程之一:坐、站、走、跑和跳舞。通过确定受试者是否在移动来区分反应(actid> 2).

Y=活动>2;

因为数据集是按活动分组的,所以为了简单起见,将其洗牌。然后,将数据随机分成两半:前半部分用于传统的模型训练,后半部分用于增量学习。

n =元素个数(Y);rng (1)%的再现性本量利= cvpartition (n,“坚持”, 0.5);idxtt =培训(cvp);idxil =测试(cvp);shuffidx = randperm (n);X =壮举(shuffidx:);Y = Y (shuffidx);%数据的前半部分Xtt = X (idxtt:);Ytt = Y (idxtt);%数据的后半部分自= X (idxil:);Yil = Y (idxil);

对前半部分数据拟合一个线性分类模型。

TTMdl=fitclinear(Xtt,Ytt);

将传统训练的线性分类模型转换为用于增量学习的二元分类线性模型。指定以下内容:

  • 2000次观察的性能指标预热期

  • 500个观察值的指标窗口大小

  • 使用分类误差和铰链损失来衡量模型的性能

IncrementalMdl=incrementalLearner(TTMdl,“MetricsWarmupPeriod”, 2000,“MetricsWindowSize”,500,...“指标”,[“classiferror”“铰链”]);

通过使用updateMetricsAndFit函数。在每一次迭代:

  • 模拟处理20个观察数据块的数据流。

  • 用一个适合传入观测的新模型覆盖先前的增量模型。

  • 商店 β 1 、累积指标和窗口指标,以查看它们在增量学习过程中如何发展。

%预先配置nil=numel(Yil);numObsPerChunk=20;nchunk=ceil(nil/numObsPerChunk);ce=array2table(零(nchunk,2),“VariableNames”,[“累计”“窗口”]); 铰链=阵列2表(零(nchunk,2),“VariableNames”,[“累计”“窗口”]);beta1 = 0 (nchunk, 1);%增量式拟合j=1:nchunk-ibegin=min(nil,numObsPerChunk*(j-1)+1;iend=min(nil,numObsPerChunk*j);idx=ibegin:iend;IncrementalMdl=updateMetricsAndFit(IncrementalMdl,Xil(idx,:),Yil(idx));ce{j,:}=IncrementalMdl.Metrics{“ClassificationError”,:};铰链{j,:}=IncrementalMdl.Metrics{“HingeLoss”,:};(1) = IncrementalMdl.Beta(1);结束

IncrementalMdl是一个incrementalClassificationLinear模型在流中的所有数据上进行训练。在增量学习过程中以及模型热身后,updateMetricsAndFit检查模型在传入观测中的表现,然后将模型与观测相吻合。

查看性能指标和 β 1 在训练过程中进化,将它们绘制在单独的子地块上。

图;次要情节(1,1)情节(beta1) ylabel (“\beta_1”) xlim ([0 nchunk]);参照线(IncrementalMdl。计量预热/numObsPerChunk,‘r-。’);subplot(3,1,2) h = plot(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)参照线(IncrementalMdl。计量预热/numObsPerChunk,‘r-。’);图例(h、ce.Properties.VariableNames、,“位置”“西北”)子批次(3,1,3)h=绘图(铰链变量);xlim([0 nchunk]);ylabel(“铰链损耗”)参照线(IncrementalMdl。计量预热/numObsPerChunk,‘r-。’); 图例(h,铰链.Properties.VariableNames,“位置”“西北”)xlabel(“迭代”

图中包含3个轴对象。坐标轴对象1包含两个类型为line, constantline的对象。坐标轴对象2包含3个类型为line, constantline的对象。这些对象表示累积、窗口。坐标轴对象3包含3个类型为line, constantline的对象。这些对象表示累积、窗口。

情节表明updateMetricsAndFit以下:

  • 适合 β 1 在所有的增量学习迭代过程中。

  • 仅在指标预热期后计算性能指标。

  • 在每次迭代期间计算累积度量。

  • 在处理500个观察(25次迭代)后计算窗口度量。

输入参数

全部崩溃

传统的二值分类训练线性模型,指定为ClassificationLinear返回的模型对象fitclinear

请注意

  • 如果兰姆达是一个数值向量,您必须通过使用selectModels

  • 增量学习函数仅支持数字输入预测数据。如果金宝appMdl是否适合分类数据,使用dummyvar将每个分类变量转换为虚拟变量的数字矩阵,并将所有虚拟变量矩阵和任何其他数字预测器连接起来。有关详细信息,请参见虚拟变量

名称-值参数

指定可选的逗号分隔的对名称,值论据。名称参数名和价值是对应的值。名称必须出现在引号内。您可以按任意顺序指定多个名称和值对参数,如下所示:名称1,值1,…,名称,值

例子:“规划求解”、“扇区”,“MetricsWindowSize”,100指定用于目标优化的自适应比例不变求解器,并指定在更新性能指标之前处理100个观察值。
一般选择

全部崩溃

目标函数最小化技术,指定为逗号分隔对组成“解算器”和这个表中的值。

价值 描述 笔记
“比例不变量”

增量学习的自适应尺度不变解算器[1]

  • 该算法是无参数的,可以适应预测尺度的差异。在使用SGD或ASGD之前请尝试此算法。

  • 将进货批次在适合功能适合模型,设置洗牌符合事实的

“sgd” 随机梯度下降(SGD)[3][2]

  • 为了有效地培训SGD,标准化数据,并使用列表中列出的选项为超参数指定足够的值SGD和ASGD解决方案选项

  • 适合函数总是在拟合模型之前打乱输入的一批数据。

“asgd” 平均随机梯度下降(ASGD)[4]

  • 为了有效地使用ASGD进行培训,请标准化数据,并使用中列出的选项为超参数指定适当的值SGD和ASGD解决方案选项

  • 适合函数总是在拟合模型之前打乱输入的一批数据。

例子:“规划求解”、“sgd”

数据类型:字符|字符串

在训练或跟踪性能指标之前,增量模型为估计超参数而处理的观察数,指定为逗号分隔对,由“EstimationPeriod”和一个非负整数。

请注意

  • 如果Mdl为增量学习做好准备(指定了培训所需的所有超参数),递增学习器军队“EstimationPeriod”0

  • 如果Mdl没有为增量学习做好准备递增学习器“EstimationPeriod”1000

有关详细信息,请参见估计时间

例子:“EstimationPeriod”,100年

数据类型:仅有一个的|

标志来标准化预测器数据,指定为逗号分隔对,由“标准化”和这个表中的值。

价值 描述
符合事实的 该软件将预测数据标准化。有关详细信息,请参见标准化数据
该软件没有标准化预测数据。

例子:“标准化”,真的

数据类型:逻辑

SGD和ASGD解决方案选项

全部崩溃

最小批量大小,指定为逗号分隔对,由“BatchSize”和一个正整数。在培训期间的每次迭代中,递增学习器使用min (BatchSize numObs)计算次梯度的观测值,其中numObs是否将训练数据中的观测值传递给适合updateMetricsAndFit

  • 如果Mdl.ModelParameters.Solver“sgd”“asgd”,则不能设置“BatchSize”. 相反递增学习器“BatchSize”Mdl.ModelParameters.BatchSize

  • 否则BatchSize10

例子:“BatchSize”,1

数据类型:仅有一个的|

脊(l2)正则化项强度,指定为逗号分隔对组成“λ”一个非负标量。

什么时候正则化“岭(L2)”

  • 如果Mdl.ModelParameters.Solver“sgd”“asgd”,则不能设置“λ”. 相反递增学习器“λ”兰姆达

  • 否则λ1e-5

请注意

递增学习器不支持套索正则化。金宝app如果正则化'套索(L1)'递增学习器改为使用脊线正则化,并设置“解算器”要使用的名称-值对参数“比例不变量”默认情况下。

例子:“λ”,0.01

数据类型:仅有一个的|

学习率,指定为逗号分隔对组成“LearnRate”“汽车”或者一个正标量。LearnRate通过缩放目标次梯度来控制优化步长。

  • 如果Mdl.ModelParameters.Solver“sgd”“asgd”,则不能设置“LearnRate”. 相反递增学习器“LearnRate”Mdl.ModelParameters.LearnRate

  • 否则LearnRate“汽车”

“汽车”

  • 如果估计期0,初始学习率为0.7

  • 如果估计期>0,初始学习率为1/sqrt(1+最大值(总和X^2,obsDim)),在那里obsDim1如果观测值构成预测数据的列,以及2否则。适合updateMetricsAndFit在将模型和训练数据传递给任意一个函数时设置值。

名称-值对参数“LearnRateSchedule”确定后续学习周期的学习速率。

例子:“LearnRate”,0.001

数据类型:仅有一个的||字符|字符串

学习速率计划,指定为逗号分隔对,由“LearnRateSchedule”和这个表中的值LearnRate初始学习率ɣ0

价值 描述
“不变” 学习率很高ɣ0对于所有的学习周期。
“腐朽的”

学习周期中的学习率t

γ t γ 0 1 + λ γ 0 t c

  • λ的价值λ

  • 如果解算器“sgd”,然后c= 1。

  • 如果解算器“asgd”,然后c是0.75[4]

如果Mdl.ModelParameters.Solver“sgd”“asgd”,则不能设置“LearnRateSchedule”

例子:“LearnRateSchedule”,“常数”

数据类型:字符|字符串

自适应比例不变求解器选项

全部崩溃

标记在每次迭代时对批处理中的观察进行变换,指定为逗号分隔的对,由“洗牌”和这个表中的值。

价值 描述
符合事实的 在处理数据集之前,该软件会将每一批传入数据中的观察结果打乱。这个动作减少了抽样方案引起的偏差。
软件按照接收到的顺序处理数据。

例子:“洗牌”,假的

数据类型:逻辑

性能指标选项

全部崩溃

为增量学习期间跟踪的性能度量建模updateMetricsupdateMetricsAndFit函数,指定为内置的损失函数名称,名称的字符串向量,函数句柄(@metricName),函数句柄的结构数组,或名称、函数句柄或结构数组的单元向量。

下表列出了内置的loss函数名称。可以使用字符串向量指定多个。

名称 描述
“binodeviance” 二项异常
“classiferror” 分类错误
“指数” 指数
“铰链” 铰链
“分对数” 物流
“二次” 二次的

关于内置丢失函数的详细信息,请参见丧失

例子:“指标”[“标准”或“铰链”]

若要指定返回性能指标的自定义函数,请使用函数句柄表示法。函数必须是这样的形式:

公制=自定义公制(C,S)

  • 输出参数度规是一个n-by-1数值向量,其中每个元素是通过在学习周期内处理增量学习函数而在数据中丢失的相应观察值。

  • 指定函数名(customMetric).

  • C是一个n-乘2的逻辑矩阵,其中的行表示相应的观测所属的类。中的列顺序对应于类的顺序Mdl。ClassNames. 创造C通过设置C (p1,如果观察p她在上课,用于指定数据中的每个观察值。在第行中设置其他元素p0

  • 年代是一个n预测分类分数的-by-2数字矩阵。年代类似于分数的输出预测,其中行对应于数据中的观察值,列顺序对应于中的类顺序Mdl。ClassNamesS (p是观察的分类评分吗p分类

若要指定多个自定义指标并为每个指标分配自定义名称,请使用结构数组。要指定内置指标和自定义指标的组合,请使用单元格向量。

例子:“指标”,结构(‘Metric2’,‘Metric1’,@customMetric1 @customMetric2)

例子:'度量',{@customMetric1@CustomMetric2'logit'结构('Metric3',@customMetric3)}

updateMetricsupdateMetricsAndFit在属性的表中存储指定的指标IncrementalMdl。指标.的数据类型指标确定表的行名。

“指标”值数据类型 的描述指标属性行名称 实例
字符串或字符向量 相应的内置度量的名称 的行名称“classiferror”“ClassificationError”
结构数组 字段名 的行名称结构(Metric1, @customMetric1)“Metric1”
存储在程序文件中的函数句柄 函数的名字 的行名称@customMetric“自定义度量”
匿名函数 自定义度量_j,在那里j是度量j在里面指标 的行名称@(C,S)自定义公制(C,S)。。。CustomMetric_1

有关性能指标选项的详细信息,请参见性能指标

数据类型:字符|字符串|结构体|细胞|function_handle

增量模型在跟踪其性能指标之前必须适合的观察数指标属性指定为逗号分隔的对,由“MetricsWarmupPeriod”和一个非负整数。增量拟合函数拟合后的增量模型是暖的计量预热对增量模型的观察(估计期+计量预热观察)。

有关性能指标选项的详细信息,请参见性能指标

数据类型:仅有一个的|

用于计算窗口性能指标的观察数,指定为正整数。

有关性能指标选项的详细信息,请参见性能指标

数据类型:仅有一个的|

输出参数

全部崩溃

增量学习的二元分类线性模型,返回为incrementalClassificationLinear模型对象。IncrementalMdl也配置为生成给定新数据的预测(见预测).

初始化IncrementalMdl对于增量学习,递增学习器的值Mdl这个表中的性质等于IncrementalMdl

财产 描述
β 线性模型系数,数值矢量
偏见 模型截距,一个数值标量
一会 用于二进制分类的类标签,一个双元素列表
ModelParameters。FitBias 线性模型截距包含标志
学习者 线性分类模型类型
先前的 先验类标号分布,一个数值向量

更多关于

全部崩溃

增量学习

增量学习在线学习,是机器学习的一个分支,涉及处理来自数据流的传入数据,可能对预测变量的分布、预测或目标函数的方面(包括调优参数值)或观察值是否被标记的知识很少或没有。增量学习与传统机器学习不同,传统机器学习有足够的标记数据来适应模型,执行交叉验证来调整超参数,并推断预测器分布。

给定传入的观察,增量学习模型以下列任何一种方式处理数据,但通常按以下顺序:

  • 预测标签。

  • 测量预测性能。

  • 检查模型中的结构断裂或漂移。

  • 使模型与传入的观测值相符。

增量学习的自适应尺度不变解算器

增量学习的自适应比例不变求解器,介绍了[1],是一种基于梯度下降的目标求解器,用于训练线性预测模型。该求解器是超参数自由的,对预测变量尺度的差异不敏感,并且不需要预先知道预测变量的分布。这些特点使它非常适合增量学习。

标准SGD和ASGD解算器对预测变量之间的不同比例非常敏感,导致模型性能较差。要使用SGD和ASGD实现更高的精度,可以标准化预测数据,调整正则化和学习速率参数可能需要调整。对于传统的机器学习,足够数据可用于通过交叉验证和预测标准化进行超参数调整。但是,对于增量学习,可能没有足够的数据可用(例如,观测值一次可能只有一个)这些特性使得在增量学习过程中,参数整定和预测器标准化变得困难或不可能。

分类的增量拟合函数适合updateMetricsAndFit使用更激进的ScInOL2版本的算法。

算法

全部崩溃

估计时间

在估计期间,采用增量拟合函数适合updateMetricsAndFit使用第一个传入估计期用于估计(调整)增量训练所需的超参数的观察值。此表描述了超参数及其估计或调整时间。

Hyperparameter 模型属性 使用 Hyperparameters估计
预测均值和标准差

μσ

标准化预测数据

当你设定“标准化”,真的(见标准化数据

学习速率 LearnRate 调整求解器步长

当上述两个条件同时适用时:

  • 您可以更改的解算器Mdl至新加坡元或新加坡元(见解算器).

  • 您没有设置“LearnRate”名称-值对的论点。

这些函数只适合增量模型的最后一个估计时期的观测,并且它们不使用任何观测来跟踪模型的性能。在估计周期结束时,函数更新存储超参数的属性。

标准化数据

如果增量学习函数配置为标准化预测变量,则它们使用存储在μσ增量学习模型的性质IncrementalMdl

  • 当你设定“标准化”,真的增量almdl.MuIncrementalMdl。σ为空,则适用以下条件:

    • 如果估计周期是正的(请参阅估计期的属性IncrementalMdl),增量拟合函数利用估计期间的观测值估计均值和标准差。

    • 如果估计周期为0,递增学习器强迫估算周期1000.因此,增量拟合函数在强迫估计期间估计新的预测变量均值和标准差。

  • 当增量拟合函数估计预测平均值和标准偏差时,该函数使用估计期观测值计算加权平均值和加权标准偏差。具体而言,该函数将预测值标准化jxj)使用

    x j x j μ j σ j

    在哪里

    • xj这是一个预测器jxjk是观察k的预测j在估算期内。

    • μ j 1 k w k k w k x j k

    • σ j 2 1 k w k k w k x j k μ j 2

    • w j w j j k w j p k 在哪里

      • pk类的先验概率是多少k先前的增量模型的性质)。

      • wj是观察体重j

性能指标

  • updateMetricsupdateMetricsAndFit函数是跟踪模型性能指标的增量学习函数(“指标”)从新数据中获取温暖的IsWarm属性)。然后是一个增量模型适合updateMetricsAndFit使增量模型适合于“MetricsWarmupPeriod”观察,这是度量预热期

    如果“EstimationPeriod”> 0,函数在将模型与数据拟合之前估计超参数。因此,函数必须处理额外的估计期模型开始度量预热期之前的观察。

  • 指标增量模型的属性将每个性能指标的两种形式存储为表的变量(列),累计的窗口,行中包含单个度量。当增量模型处于温暖状态时,updateMetricsupdateMetricsAndFit以下列频率更新度量标准:

    • 累计的-这些函数计算自模型性能跟踪开始以来的累积度量。每次调用函数时,函数都会更新指标,并基于所提供的整个数据集进行计算。

    • 窗口-函数根据窗口内的所有观察值计算度量值“MetricsWindowSize”名称-值对的论点。“MetricsWindowSize”也决定了软件更新的频率窗口指标。例如,如果度量窗口大小为20时,函数根据所提供数据中的最近20个观察值计算度量值(X((结束–20+1):结束:)Y((end - 20 + 1):结束)).

      跟踪窗口内性能指标的增量函数使用以下过程:

      1. 对于每个指定的度量,存储一个长度的缓冲区度量窗口大小以及观察权值的缓冲。

      2. 使用基于批量传入观察数据的模型性能填充指标缓冲区的元素,并将相应的观察数据权重存储在权重缓冲区中。

      3. 当缓冲区被填满时,覆盖IncrementalMdl.Metrics.Window在指标窗口中使用加权平均性能。如果在函数处理一批观察值时缓冲区被填满,则最新传入的度量窗口大小观察值进入缓冲区,最早的观察值将从缓冲区中删除度量窗口大小为20时,指标缓冲区有10个来自先前处理的批处理的值,15个值是传入的。为了组成长度为20的窗口,函数使用了来自15个传入观测的测量值和来自前一批的最新5个测量值。

参考文献

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

李磊,张涛。“基于截断梯度的稀疏在线学习”。j·马赫。学习。Res。, 2009年第10卷,第777-801页。

谢勒夫-施瓦茨,S. Y.辛格和N.斯雷布罗。Pegasos:支持向量机的原始估计次梯度求解器第24届国际机器学习会议记录,ICML'07, 2007,第807-814页。

[4]徐,魏。“基于平均随机梯度下降的最优一次大规模学习”。相关系数,abs/1107.24902011。

在R2020b中引入