incrementalDriftAwareLearner
描述
incrementalDriftAwareLearner
创建一个incrementalDriftAwareLearner
模型对象,它包含一个增量分类或回归学习者和增量概念漂移探测器提供一个自动调节的增量的机器学习模型。incrementalDriftAwareLearner
万博1manbetx支持所有增量学习的分类和回归模型和概念漂移检测方法支持的统计和机器学习的工具箱™。
与大多数统计和机器学习工具箱模型对象,incrementalDriftAwareLearner
可以直接调用。当你创建一个incrementalDriftAwareLearner
对象,它是准备增量drift-aware学习。
incrementalDriftAwareLearner
最适合增量学习,适应概念漂移。传统方式批量漂移检测,看看detectdrift
。
创建
您可以创建一个incrementalDriftAwareLearner
模型对象在以下方式:
发起一个增量分类或回归学习者使用任何增量学习。通过增量学习模型作为输入调用
incrementalDriftAwareLearner
。例如,BaseLearner = incrementalClassificationLinear ();Mdl = incrementalDriftAwareLearner (BaseLearner);
发起一个增量分类或回归学习者使用任何增量学习。发起一个增量的概念漂移探测器使用
incrementalConceptDriftDetector
。通过增量学习模型和概念漂移探测器作为输入调用incrementalDriftAwareLearner
。例如,BaseLearner = incrementalRegressionKernel ();DDM = incrementalConceptDriftDetector (“ddm”);Mdl = incrementalDriftAwareLearner (BaseLearner DriftDetector = DDM);
语法
描述
返回一个drift-aware模型Mdl
= incrementalDriftAwareLearner (BaseLearner
)Mdl
与默认增量学习模型参数和默认漂移探测器。
使用名称-值参数设置附加选项。例如,Mdl
= incrementalDriftAwareLearner (BaseLearner
,名称=值
)incrementalDriftAwareLearner (BaseLearner DriftDetector = CDDetector TrainingPeriod = 1000)
指定了概念漂移探测器作为一个预定义的CDDetector
并设置培训期间1000观察。
输入参数
BaseLearner
- - - - - -潜在的增量分类或回归模型
incrementalClassificationKernel
对象|incrementalClassificationLinear
对象|incrementalClassificationECOC
对象|incrementalClassificationNaiveBayes
对象|incrementalRegressionKernel
对象|incrementalRegressionLinear
对象
潜在的增量分类或回归模型,指定为以下之一。
分类 | 回归 |
incrementalClassificationKernel |
incrementalRegressionKernel |
incrementalClassificationLinear |
incrementalRegressionLinear |
incrementalClassificationECOC |
|
incrementalClassificationNaiveBayes |
学习如何创建这些学习者,请参考相应的引用页面。
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:BufferSize = 5000, TrainingPeriod = 8000, StableCountLimit = 6000
指定缓冲区大小为5000,培训期间的8000年,连续稳定的极限状态重置前6000的观察。
BufferSize
- - - - - -缓冲存储损失值的大小
7000年(默认)|标量整数
缓冲区的大小商店的损失值BaseLearner
对于每一个训练观察,指定为一个标量整数。
例子:BufferSize = 5000
数据类型:单
|双
DriftDetector
- - - - - -增量概念漂移探测器
HoeffdingDriftDetectionMethod
对象|DriftDetectionMethod
对象
增量概念漂移探测器用于监测和检测漂移,指定为一个HoeffdingDriftDetectionMethod
或DriftDetectionMethod
对象。
如果
BaseLearner
增量分类对象,那么默认的探测器是吗HoeffdingDriftDetectionMethod
使用移动平均法。也就是说,incrementalDriftAwareLearner
创建漂移探测器使用incrementalConceptDriftDetector (“hddma”)
。如果
BaseLearner
增量回归对象,那么默认的是什么HoeffdingDriftDetectionMethod
使用移动平均法连续变量。也就是说,incrementalDriftAwareLearner
创建漂移探测器使用incrementalConceptDriftDetector (hddma InputType =“连续”)
。
指定一个增量的概念漂移探测器,使用不同的方法,看到incrementalConceptDriftDetector
参考页面。
例子:DriftDetector = dd
TrainingPeriod
- - - - - -使用的观测数量进行训练
10000年(默认)|标量整数
数量的观察用于培训,指定为一个标量整数。
如果你指定TrainingPeriod
值作为正
与传入的数据,那么软件总是火车。
如果TrainingPeriod
值是小于BaseLearner.MetricsWarmupPeriod
值,然后incrementalDriftAwareLearner
设置TrainingPeriod
值作为BaseLearner.MetricsWarmupPeriod
。
例子:TrainingPeriod = 7000
数据类型:单
|双
StableCountLimit
- - - - - -最大数量的连续“稳定”
观察前软复位
40000年(默认)|标量整数
最大数量的连续“稳定”
观察软复位之前,指定为一个标量整数。
例子:StableCountLimit = 35000
数据类型:单
|双
WarningCountLimit
- - - - - -最大数量的连续“警告”
观察之前重置
1400年(默认)|标量整数
最大数量的连续“警告”
观察复位之前,指定为一个标量整数。
例子:WarningCountLimit = 1000
数据类型:单
|双
属性
BaseLearner
- - - - - -潜在的增量分类或回归模型
incrementalClassificationKernel
对象|incrementalClassificationLinear
对象|incrementalClassificationECOC
对象|incrementalClassificationNaiveBayes
对象|incrementalRegressionKernel
对象|incrementalRegressionLinear
对象
这个属性是只读的。
潜在的增量分类或回归模型,指定为下列模型对象之一。
分类 | 回归 |
incrementalClassificationKernel |
incrementalRegressionKernel |
incrementalClassificationLinear |
incrementalRegressionLinear |
incrementalClassificationECOC |
|
incrementalClassificationNaiveBayes |
这个属性设置的BaseLearner
输入参数。
访问的属性BaseLearner
例如,使用点操作符Mdl.BaseLearner.Solver
。
DriftDetector
- - - - - -潜在的增量概念漂移探测器
HoeffdingDriftDetectionMethod
对象|DriftDetectionMethod
对象
这个属性是只读的。
潜在的增量概念漂移探测器,指定为一个HoeffdingDriftDetectionMethod
或DriftDetectionMethod
对象。
这个属性设置的DriftDetector
名称-值参数。
访问的属性DriftDetector
例如,使用点操作符Mdl.DriftDetector.WarningThreshold
。
TrainingPeriod
- - - - - -使用的观测数量进行训练
标量整数
这个属性是只读的。
数量的观察用于培训之前,软件开始监测潜在的漂移,指定为一个标量整数。
这个属性设置的TrainingPeriod
名称-值参数。
数据类型:双
StableCountLimit
- - - - - -最大数量的连续“稳定”
观察前软复位
标量整数
这个属性是只读的。
最大数量的连续“稳定”
观察软复位之前,指定为一个标量整数。
这个属性设置的StableCountLimit
名称-值参数。
数据类型:双
PreviousDriftStatus
- - - - - -的状态DriftDetector
前培训最新数据
“稳定”
|“警告”
|“漂移”
这个属性是只读的。
的状态DriftDetector
前培训最新数据,指定为“稳定”
,“警告”
,或“漂移”
。
数据类型:字符
DriftStatus
- - - - - -当前状态的DriftDetector
“稳定”
|“警告”
|“漂移”
这个属性是只读的。
当前状态的DriftDetector
训练后的最新数据,指定为“稳定”
,“警告”
,或“漂移”
。
数据类型:字符
DriftDetected
- - - - - -标志指示是否DriftStatus
是“漂移”
假
或0
|真正的
或1
这个属性是只读的。
标志指示是否DriftStatus
是“漂移”
,指定为逻辑0
(假
)或1
(真正的
)。
数据类型:逻辑
WarningCountLimit
- - - - - -最大数量的连续“警告”
观察之前重置
标量整数
这个属性是只读的。
最大数量的连续“警告”
观察复位之前,指定为一个标量整数。
数据类型:双
WarningDetected
- - - - - -标志指示是否DriftStatus
是“警告”
假
或0
|真正的
或1
这个属性是只读的。
标志指示是否DriftStatus
是“警告”
,指定为逻辑0
(假
)或1
(真正的
)。
数据类型:逻辑
IsTraining
- - - - - -标志指示是否BaseLearner
继续训练输入数据
假
或0
|真正的
或1
这个属性是只读的。
标志指示是否BaseLearner
继续训练输入数据,指定为逻辑0
(假
)或1
(真正的
)。
数据类型:逻辑
IsWarm
- - - - - -标志指示是否模型跟踪性能指标
假
或0
|真正的
或1
这个属性是只读的。
标志指示是否跟踪性能指标增量模型,指定为逻辑0
(假
)或1
(真正的
)。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。
增量模型Mdl
是温暖的(IsWarm
就变成了真正的
增量式拟合函数符合(后)Mdl.BaseLearner.EstimationPeriod
+MetricsWarmupPeriod
增量式模型)的观察。
价值 | 描述 |
---|---|
真正的 或1 |
增量模型Mdl 是温暖的。因此,updateMetrics 和updateMetricsAndFit 跟踪的性能指标指标 的属性Mdl 。 |
假 或0 |
增量模型Mdl 没有温暖。updateMetrics 和updateMetricsAndFit 不跟踪性能指标。 |
数据类型:逻辑
NumPredictors
- - - - - -数量的预测变量
非负数字标量
这个属性是只读的。
指定数量的预测变量,作为一个非负数字标量。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。您可以指定数量的预测变量的起始BaseLearner
。
数据类型:双
NumTrainingObservations
- - - - - -观察适合增量式模型
0
(默认)|非负数字标量
这个属性是只读的。
观察适合增量模型的数量Mdl
指定为一个非负数字标量。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。
NumTrainingObservations
当你通过增加Mdl
和训练数据适合
或updateMetricsAndFit
。
请注意
如果你把一个传统训练模型创建Mdl.BaseLearner
,incrementalDriftAwareLearner
不会增加观测的数量符合传统的训练模式NumTrainingObservations
。
数据类型:双
指标
- - - - - -模型的性能指标
表
这个属性是只读的。
在增量学习模型更新的性能指标updateMetrics
或updateMetricsAndFit
,指定为一个表有两列和米行,米是指定的指标的数量吗指标
名称-值参数的起始BaseLearner
。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。
的列指标
标记累积
和窗口
。
累积
——元素j
模型的性能,以度量j
模型,从时间变得温暖(IsWarm
是1
)。窗口
——元素j
模型的性能,以度量j
评估在所有指定的窗口内观察MetricsWindowSize
财产。软件更新窗口
后流程MetricsWindowSize
观察。
行标记指定的指标。
数据类型:表
MetricsWarmupPeriod
- - - - - -数量的观测符合之前跟踪性能指标
非负整数
这个属性是只读的。
数量的观察的增量式模型之前必须符合其跟踪性能指标指标
属性,指定为一个非负整数。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。您可以指定指标热身期间的起始BaseLearner
。
数据类型:双
MetricsWindowSize
- - - - - -数量的观察使用性能指标计算窗口
正整数
这个属性是只读的。
数量的观察使用性能指标计算窗口,指定为一个正整数。
incrementalDriftAwareLearner
将这个属性从Mdl.BaseLearner
。您可以指定在启动的窗口大小的指标BaseLearner
。
数据类型:双
对象的功能
适合 |
火车drift-aware学习者与新数据增量学习 |
损失 |
回归或分类错误的增量drift-aware学习者 |
perObservationLoss |
每观察回归或分类错误的增量drift-aware学习者 |
预测 |
从增量drift-aware学习模型预测反应的新观察 |
重置 |
重置增量drift-aware学习者 |
updateMetrics |
更新性能指标增量drift-aware学习模型得到新的数据 |
updateMetricsAndFit |
更新性能指标增量drift-aware学习模型给出新的数据和训练模式 |
例子
创建增量Drift-Aware学习者没有任何先验信息
加载数据集人类活动。随机洗牌数据。
负载humanactivity;n =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);
细节的数据集,输入描述
在命令行中。
定义预测和响应变量。
X =壮举(idx:);Y = actid (idx);
响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid > 2)。
Y = Y > 2;
下半年翻转标签的数据集来模拟漂移。
Y(地板(元素个数(Y) / 2):,:) = ~ Y(地板(元素个数(Y) / 2):,:);
启动一个默认增量drift-aware模型分类如下:
创建一个默认为二进制增量线性支持向量机模型的分类。
启动一个默认增量drift-aware模型使用增量线性支持向量机模型。
incMdl = incrementalClassificationLinear ();idaMdl = incrementalDriftAwareLearner (incMdl);
idaMdl
是一个incrementalDriftAwareLearner
模型。所有的属性是只读的。
Preallocate变量的数量在每个块创建一个流数据和变量来存储分类错误。
numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);
Preallocate变量跟踪漂移状态。
状态= 0 (nchunk, 1);statusname =字符串(nchunk, 1);
模拟数据流与传入的50块的观察。在每一次迭代:
调用
updateMetricsAndFit
更新的性能指标和适应drift-aware模型输入数据。覆盖前面的增量式模型与新的。存储和每个迭代分类累积误差
ce
。的指标
的属性idaMdl
存储和窗口分类累积误差,在每次迭代更新。
为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;idaMdl = updateMetricsAndFit (idaMdl X (idx:), Y (idx));statusname (j) =字符串(idaMdl.DriftStatus);如果idaMdl。漂移Detected status(j) = 2;elseifidaMdl。警告Detected status(j) = 1;其他的状态(j) = 0;结束ce {j:} = idaMdl.Metrics {“ClassificationError”,:};结束
的updateMetricsAndFit
函数首先评估模型的性能通过调用updateMetrics
输入数据,然后通过调用数据模型相吻合适合
:
的updateMetrics
功能评估模型的性能处理传入的观察。函数写入指定的指标,测量累计和在指定窗口的观察,处理的指标
模型属性。
的适合
功能符合模型通过更新基础学习者和监测漂移传入批数据。当你打电话适合
,软件执行以下程序:
火车模型
NumTrainingObservations
观察。训练后,软件开始跟踪模型损失是否发生任何概念漂移,并相应地更新漂移状态。
当漂移状态
警告
,软件列车临时模型来代替BaseLearner
在准备即将到来的漂移。当漂移状态
漂移
、临时模型取代了BaseLearner
。当漂移状态
稳定的
,暂时丢弃的软件模型。
有关更多信息,请参见算法部分。
情节的累积和每个窗口分类错误。标志着热身和训练时间,介绍了漂移。
h =情节(ce.Variables);xlim ([0 nchunk]) ylabel (“分类错误”)包含(“迭代”)参照线(idaMdl.MetricsWarmupPeriod / numObsPerChunk,“g -。”,“热身期”线宽= 1.5)参照线(idaMdl.TrainingPeriod / numObsPerChunk,“b -。”,“培训”LabelVerticalAlignment =“中间”、线宽= 1.5)参照线(地板(元素个数(Y) / 2) / numObsPerChunk,“m——”,“漂移”LabelVerticalAlignment =“中间”传说,线宽= 1.5)(h, ce.Properties.VariableNames)传说(h,位置=“最佳”)
情节漂移状态和迭代数。
图()gscatter (1: nchunk,状态、statusname“巨磁电阻”,“*牛”(4 5 5),“上”,“迭代”,“漂移”状态,“填充”)
计算性能指标和监控概念漂移
创建随机概念和概念漂移数据生成器使用辅助函数,HelperSineGenerator
和HelperConceptDriftGenerator
,分别。
concept1 = HelperSineGenerator (ClassificationFunction = 1, IrrelevantFeatures = true, TableOutput = false);concept2 = HelperSineGenerator (ClassificationFunction = 3, IrrelevantFeatures = true, TableOutput = false);driftGenerator = HelperConceptDriftGenerator (concept1 concept2, 15000, 1000);
当ClassificationFunction
是1,HelperSineGenerator
标签所有点满足x1<sin (x2)1,否则函数标签为0。当ClassificationFunction
3,这是逆转。也就是说,HelperSineGenerato
所有的点以满足r标签x1> =sin (x2)1,否则函数标签0 [2]。使用的软件返回矩阵中的数据增量的学习者。
HelperConceptDriftGenerator
建立了概念漂移。对象使用一个s形的函数1. / (1 + exp (4 * (numobservations-position)。/宽度))
决定选择第一个流的概率在生成数据[3]。在这种情况下,位置参数是15000,宽度参数是1000。随着观测超过数量的位置值减去一半的宽度,从第一个流的概率抽样生成数据时减少。乙状结肠函数允许从一个流平稳过渡到另一个。更大的宽度值表明一个更大的过渡时期,流大约同样有可能被选中。
发起一个增量drift-aware模型分类如下:
创建一个二进制增量朴素贝叶斯分类模型的分类。
发起一个增量的概念漂移探测器使用霍夫丁范围漂移的检测方法与移动平均线(HDDMA)。
使用增量线性模型和概念漂移探测器,启动增量drift-aware模型。指定培训期间为5000年观测。
BaseLearner = incrementalClassificationNaiveBayes (MaxNumClasses = 2,指标=“classiferror”);dd = incrementalConceptDriftDetector (“hddma”);理想= incrementalDriftAwareLearner (BaseLearner DriftDetector = dd, TrainingPeriod = 5000);
Preallocate每个块中的变量和用于创建数据流的迭代次数。
numObsPerChunk = 10;numIterations = 4000;
Preallocate跟踪漂移状态变量和漂移时间,和存储分类错误。
dstatus = 0 (numIterations, 1);statusname =字符串(numIterations, 1);driftTimes = [];ce = array2table (0 (numIterations, 2), VariableNames = [“累积”“窗口”]);
模拟数据流与传入的10块观察每执行增量drift-aware学习。在每一次迭代:
模拟预测数据和标签和更新
driftGenerator
使用辅助函数hgenerate
。调用
updateMetricsAndFit
更新性能指标和适应增量drift-aware模型传入的数据。跟踪和记录漂移状态和分类误差可视化的目的。
rng (12);%的再现性为j = 1: numIterations%生成数据(driftGenerator, X, Y) = hgenerate (driftGenerator numObsPerChunk);%更新性能指标和健康理想= updateMetricsAndFit(理想,X, Y);%记录漂移状态和分类错误statusname (j) =字符串(idal.DriftStatus);ce {j:} = idal.Metrics {“ClassificationError”,:};如果的理想。漂移Detected dstatus(j) = 2;elseif的理想。WarningDetected dstatus (j) = 1;其他的dstatus (j) = 0;结束如果的理想。漂移Detected driftTimes(end+1) = j;结束结束
情节的累积和每个窗口分类错误。标志着热身和训练时间,介绍了漂移。
h =情节(ce.Variables);numIterations xlim ([0]) ylim (0.22 [0]) ylabel (“分类错误”)包含(“迭代”)参照线(idal.MetricsWarmupPeriod / numObsPerChunk,“g -。”,“热身期”线宽= 1.5)参照线(idal.MetricsWarmupPeriod / numObsPerChunk + driftTimes,“g -。”,“热身期”线宽= 1.5)参照线(idal.TrainingPeriod / numObsPerChunk,“b -。”,“培训”LabelVerticalAlignment =“中间”线宽= 1.5)参照线(driftTimes“m——”,“漂移”LabelVerticalAlignment =“中间”传说,线宽= 1.5)(h, ce.Properties.VariableNames)传说(h,位置=“最佳”)
的updateMetricsAndFit
函数首先评估模型的性能通过调用updateMetrics
输入数据,然后通过调用数据模型相吻合适合
:
的updateMetrics
功能评估模型的性能处理传入的观察。函数写入指定的指标,测量累计和在指定窗口的观察,处理的指标
模型属性。
的适合
功能符合模型通过更新基础学习者和监测漂移传入批数据。当你打电话适合
,软件执行以下程序:
火车模型
NumTrainingObservations
观察。训练后,软件开始跟踪模型损失是否发生任何概念漂移,并相应地更新漂移状态。
当漂移状态
警告
,软件列车临时模型来代替BaseLearner
在准备即将到来的漂移。当漂移状态
漂移
、临时模型取代了BaseLearner
。当漂移状态
稳定的
,暂时丢弃的软件模型。
有关更多信息,请参见算法部分。
情节漂移状态和迭代数。
gscatter (1: numIterations dstatus statusname,“巨磁电阻”,“o”5,“上”,“迭代”,“漂移”状态,“填充”)
监测回归模型的概念漂移
创建随机概念数据和概念漂移生成器使用辅助函数HelperRegrGenerator
和HelperConceptDriftGenerator
,分别。
concept1 = HelperRegrGenerator (NumFeatures = 100, NonZeroFeatures =[1、20、40、50, 55岁),…FeatureCoefficients = (4、5、10、2、6], NoiseStd = 1.1, TableOutput = false);concept2 = HelperRegrGenerator (NumFeatures = 100, NonZeroFeatures =[10年,20年,45岁,56岁,80),…FeatureCoefficients = (4、5、10、2、6], NoiseStd = 1.1, TableOutput = false);driftGenerator = HelperConceptDriftGenerator (concept1 concept2, 15000, 1000);
HelperRegrGenerator
生成流数据使用的特性和功能对回归系数在调用函数中指定。在每个步骤中,函数样本来自正态分布的预测。然后,使用功能的函数计算响应系数和预测价值和添加一个正态分布的随机噪声平均值为零且指定噪声标准差。使用的软件返回矩阵中的数据增量的学习者。
HelperConceptDriftGenerator
建立了概念漂移。对象使用一个s形的函数1. / (1 + exp (4 * (numobservations-position)。/宽度))
决定选择第一个流的概率在生成数据[3]。在这种情况下,位置参数是15000,宽度参数是1000。随着观测超过数量的位置值减去一半的宽度,从第一个流的概率抽样生成数据时减少。乙状结肠函数允许从一个流平稳过渡到另一个。更大的宽度值表明一个更大的过渡时期,流大约同样有可能被选中。
发起一个增量drift-aware回归模型如下:
创建一个增量的线性回归模型。指定线性回归模型类型和解决者类型。
发起一个增量的概念漂移探测器使用霍夫丁范围漂移的检测方法与移动平均线(HDDMA)。
使用增量线性模型和概念漂移探测器,实例化一个增量drift-aware模型。指定培训期间为6000年观测。
baseMdl = incrementalRegressionLinear(学习者=“leastsquares”解算器=“sgd”EstimationPeriod = 1000,标准化= false);dd = incrementalConceptDriftDetector (“hddma”选择=“更大的”InputType =“连续”WarmupPeriod = 1000);理想= incrementalDriftAwareLearner (baseMdl DriftDetector = dd, TrainingPeriod = 6000);
Preallocate每个块中的变量和用于创建数据流的迭代次数。
numObsPerChunk = 10;numIterations = 4000;
Preallocate跟踪漂移状态变量和漂移时间,和储存回归错误。
dstatus = 0 (numIterations, 1);statusname =字符串(numIterations, 1);driftTimes = [];ce = array2table (0 (numIterations, 2), VariableNames = [“累积”“窗口”]);
模拟数据流与传入的10块观察每执行增量drift-aware学习。在每一次迭代:
模拟预测数据和标签,并更新漂移发生器使用helper函数
hgenerate
。调用
updateMetricsAndFit
更新性能指标和适应增量drift-aware模型传入的数据。跟踪和记录漂移状态和回归误差可视化的目的。
rng (12);%的再现性为j = 1: numIterations%生成数据(driftGenerator, X, Y) = hgenerate (driftGenerator numObsPerChunk);%更新性能指标和健康理想= updateMetricsAndFit(理想,X, Y);%漂移状态和回归错误记录statusname (j) =字符串(idal.DriftStatus);ce {j:} = idal.Metrics {“MeanSquaredError”,:};如果的理想。漂移Detected dstatus(j) = 2;elseif的理想。WarningDetected dstatus (j) = 1;其他的dstatus (j) = 0;结束如果的理想。漂移Detected driftTimes(end+1) = j;结束结束
绘制和每个窗口回归累积误差。标志着热身和训练时间,介绍了漂移。
h =情节(ce.Variables);xlim ([0 numIterations]) ylabel (“均方误差”)包含(“迭代”)参照线((idal.MetricsWarmupPeriod + idal.BaseLearner.EstimationPeriod) / numObsPerChunk,“g -。”,“热身期”线宽= 1.5)参照线(idal.TrainingPeriod / numObsPerChunk,“b -。”,“培训”LabelVerticalAlignment =“中间”线宽= 1.5)参照线(driftTimes“m——”,“漂移”LabelVerticalAlignment =“中间”传说,线宽= 1.5)(h, ce.Properties.VariableNames)传说(h,位置=“最佳”)
情节漂移状态和迭代数。
gscatter (1: numIterations dstatus statusname,“巨磁电阻”,“o”5,“上”,“迭代”,“漂移”状态,“填充”)
算法
增量Drift-Aware学习
增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。更多细节,请参阅增量学习概述。
不像其他的增量学习统计和机器学习工具所提供的功能incrementalDriftAwareLearner
模型对象结合增量学习和概念漂移检测。
在创建一个incrementalDriftAwareLearner
对象,使用updateMetrics
性能指标和更新模型适合
以适应传入的数据基本模型,检查潜在的漂移模型性能(概念漂移),和更新或重置增量drift-aware学习者,如果必要的。您还可以使用updateMetricsAndFit
。的适合
函数实现活性漂移检测方法(RDDM)[1]如下:
后
Mdl.BaseLearner.EstimationPeriod
(如果需要)MetricsWarmupPeriod
,函数增量drift-aware模型火车NumTrainingObservations
观察,直到达到TrainingPeriod
。(如果TrainingPeriod
值是小于Mdl.BaseLearner.MetricsWarmupPeriod
值,然后incrementalDriftAwareLearner
设置TrainingPeriod
值作为Mdl.BaseLearner.MetricsWarmupPeriod
。)当
NumTrainingObservations > TrainingPeriod
,软件开始跟踪模型的损失。使用软件计算每个观测损失perObservationLoss
函数。而每观察损失计算,软件使用“classiferror”
指标分类模型和损失“squarederror”
回归模型。然后附加损失函数值计算使用的最后一块数据对现有缓冲损失值。接下来,软件检查任何概念漂移发生使用
detectdrift
功能和更新DriftStatus
相应的行动。
基于漂移状态,适合
执行以下程序:
DriftStatus
是“警告”
- - - - - -软件第一次连续增加“警告”
状态数1。如果连续
“警告”
状态数小于WarningCountLimit
价值和PreviousDriftStatus
值是稳定的
,那么软件列车临时增量学习者(如果不存在的话),并设置它(或现有的一个)BaseLearner
。然后软件重置临时增量使用学习者的学习者
重置
函数。如果连续
“警告”
状态数小于WarningCountLimit
价值和PreviousDriftStatus
值是“警告”
,那么软件列车现有临时增量式模型使用最新的数据块。如果连续
“警告”
状态数多WarningCountLimit
值,那么软件设置DriftStatus
价值“漂移”
。
DriftStatus
是“漂移”
- - - - - -软件执行以下步骤。设置连续
“警告”
状态数到0。重置
DriftDetector
使用重置
函数。清空缓冲区损失值和附加损耗值的最新的数据缓冲损失值。
如果临时增量式模型不是空的,那么当前软件集
BaseLearner
值到临时增量模型和清空临时增量模型。如果临时增量模型是空的,然后软件重置
BaseLearner
利用学习者的价值重置
函数。
DriftStatus
是“稳定”
- - - - - -软件第一次连续增加“稳定”
状态数1。如果连续
“稳定”
状态数小于StableCountLimit
和PreviousDriftStatus
值是“警告”
,那么软件警告的数量设置为零,清空临时模型。如果连续
“稳定”
状态数多StableCountLimit
值,然后软件重置DriftDetector
使用重置
函数。然后保存的软件测试所有损失值的缓冲区使用的概念漂移detectdrift
函数。
一次DriftStatus
被设置为“漂移”
,BaseLearner
和DriftDetector
等到重置,软件Mdl.BaseLearner.EstimationPeriod
+Mdl.BaseLearner.MetricsWarmupPeriod
在它开始之前计算性能指标。
性能指标
的
updateMetrics
和updateMetricsAndFit
函数跟踪模型性能指标(指标
从新的数据增量式模型时)温暖的(Mdl.BaseLearner.IsWarm
属性)。增量模型后变得温暖适合
或updateMetricsAndFit
适合增量模型MetricsWarmupPeriod
观察,这是度量预热期。如果
Mdl.BaseLearner.EstimationPeriod
> 0,hyperparameters估计函数拟合模型的数据。因此,必须处理一个额外的功能EstimationPeriod
观察模型开始前预热期的指标。的
指标
增量模型的属性存储两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,updateMetrics
和updateMetricsAndFit
更新后频率的指标:累积
——函数计算累积度量模型以来的跟踪性能。功能更新指标每次调用函数,并计算基于整个提供数据集,直到模型重置。窗口
——函数计算基于一个窗口内的所有观测指标决定的MetricsWindowSize
名称-值参数。MetricsWindowSize
也决定了软件更新的频率窗口
指标。例如,如果MetricsWindowSize
是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)
和Y((- 20 + 1)结束:结束)
)。增量跟踪性能指标的函数在一个窗口中使用以下过程:
商店
MetricsWindowSize
为每个指定的度量值,并存储相同数量的观察权重。填充元素指标的值与模型基于批次的观测性能,并存储相应的观察权重。
当观察的窗口,覆盖
Mdl.Metrics.Window
窗口的加权平均性能指标。如果窗口时满满的函数处理一批观察,最新的传入MetricsWindowSize
观察存储,最早的观察从窗口中删除。例如,假设MetricsWindowSize
是20,有10之前存储值从一个批处理,和15值传入的。组成20窗口长度的函数使用15传入的观察和测量的最新5测量前一批。
省略了一个观察的软件
南
分数计算时累积
和窗口
性能度量值。
引用
[1]Barros罗伯托•克里等。“RDDM:活性检测方法。”专家系统与应用程序。90卷,2017年12月,344 - 55页。https://doi.org/10.1016/j.eswa.2017.08.023。
[2]Bifet,艾伯特,et al。“新乐团演化数据流的方法。”第十五届ACM SIGKDD国际会议程序知识发现和数据挖掘。ACM出版社,2009,第139页。https://doi.org/10.1145/1557019.1557041。
[3]伽马,若昂,et al。“学习与漂移检测”。先进的人工智能- SBIA 2004、编辑安娜·l·c·Bazzan Sofiane Labidi, 3171卷,激飞柏林海德堡,2004年,页286 - 95。https://doi.org/10.1007/978 - 3 - 540 - 28645 - 5 - _29。
版本历史
介绍了R2022b
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。