updateMetricsAndFit
描述
例子
计算性能指标和监控概念漂移
创建随机概念和概念漂移数据生成器使用辅助函数,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,“上”,“迭代”,“漂移”状态,“填充”)
输入参数
Mdl
- - - - - -drift-aware增量学习模型
incrementalDriftAwareLearner
模型对象
drift-aware增量学习模型适合流媒体数据,指定为一个incrementalDriftAwareLearner
模型对象。您可以创建Mdl
使用incrementalDriftAwareLearner
函数。更多细节,请参见页面对象引用。
X
- - - - - -块的预测数据
浮点矩阵
块的预测数据模型是合适的,指定为一个浮点矩阵n观察和Mdl.BaseLearner.NumPredictors
预测变量。
当Mdl.BaseLearner
接受了ObservationsIn
名称-值参数的值ObservationsIn
确定变量和观测的方向。默认的ObservationsIn
值是“行”
,这表明观察预测数据是面向的行X
。
观察反应的长度(或标签)Y
和观察的数量X
必须是相等的;Y (
是观察的响应(或标签)j(行或列)j
)X
。
请注意
数据类型:单
|双
Y
- - - - - -块观察到的反应(或标签)
浮点矢量|分类数组|字符数组|字符串数组|逻辑向量|单元阵列的特征向量
块的反应(或标签)的模型是合适的,指定为以下之一:
浮点矢量的n回归模型的元素,n的行数在吗
X
。分类、字符或字符串数组,逻辑向量,或单元阵列的特征向量分类模型。如果
Y
是一个字符数组,它必须有一个类标签每一行。否则,Y
必须是一个向量n元素。
的长度Y
和观察的数量X
必须是相等的;Y (
是观察的响应(或标签)j(行或列)j
)X
。
对于分类问题:
当
Mdl.BaseLearner.ClassNames
非空的,适用下列条件:如果
Y
包含一个标签,它不是一个成员Mdl.BaseLearner.ClassNames
,updateMetricsAndFit
一个错误的问题。的数据类型
Y
和Mdl.BaseLearner.ClassNames
必须相同。
当
Mdl.BaseLearner.ClassNames
是空的,updateMetricsAndFit
推断Mdl.BaseLearner.ClassNames
从数据。
数据类型:单
|双
|分类
|字符
|字符串
|逻辑
|细胞
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:ObservationsIn = "列",权重= W
指定的列预测矩阵对应于观测,和向量W
在增量学习包含观察权重应用。
ObservationsIn
- - - - - -定位数据X
“行”
(默认)|“列”
预测数据观察维度,指定为“列”
或“行”
。
updateMetricsAndFit
万博1manbetx支持ObservationsIn
只有在Mdl.BaseLearner
万博1manbetx支持ObservationsIn
名称-值参数。
例子:ObservationsIn = "列"
数据类型:字符
|字符串
权重
- - - - - -块的观察权重
浮点矢量的积极的价值观
块的观察重量、指定为一个浮点向量的积极的价值观。updateMetricsAndFit
重的观察X
与相应的值权重
。的大小权重
必须等于n,这是观察的数量X
。
默认情况下,权重
是(
。n
,1)
例子:重量= w
数据类型:双
|单
输出参数
Mdl
——更新drift-aware增量学习模型
incrementalDriftAwareLearner
模型对象
更新drift-aware增量学习模型,作为增量学习模型对象返回相同的数据类型作为输入模型Mdl
,incrementalDriftAwareLearner
。
算法
增量Drift-Aware学习
增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。更多细节,请参阅增量学习概述。
不像其他的增量学习统计和机器学习的工具箱™所提供的功能updateMetricsAndFit
模型对象结合增量学习和概念漂移检测。
在创建一个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国家网站不优化的访问你的位置。