updateMetrics
描述
给定的流数据,updateMetrics
措施的性能配置的朴素贝叶斯分类模型的增量学习(incrementalClassificationNaiveBayes
对象)。updateMetrics
存储性能指标的输出模型。
updateMetrics
允许灵活的增量学习。后调用该函数来更新模型性能指标对传入的数据,您可以执行其他操作之前火车模型的数据。例如,您可以决定你是否需要培训模型基于业绩分配一个数据块。或者,您可以更新模型性能指标和训练模型数据到达时,在一个调用中,通过使用updateMetricsAndFit
函数。
测量模型的性能在一个指定的一批数据,调用损失
代替。
例子
增量模型的跟踪性能
火车通过使用朴素贝叶斯分类模型fitcnb
,把它转换成增量学习,然后跟踪流数据的性能。
加载和数据预处理
载入人类活动数据集。随机洗牌数据。
负载humanactivityrng (1)%的再现性n =元素个数(actid);idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
朴素贝叶斯分类模型进行训练
适合朴素贝叶斯分类模型的随机样本数据的一半。
idxtt = randsample((真假),n, true);TTMdl = fitcnb (X (idxtt:), Y (idxtt))
TTMdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors::[]类名(1 2 3 4 5)ScoreTransform:“没有一个”NumObservations: 12053 DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法
TTMdl
是一个ClassificationNaiveBayes
模型对象代表了一个传统的训练模式。
转换训练模型
传统训练分类模型转换为一个朴素贝叶斯分类模型的增量学习。
IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1指标:[1 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法
增量模型是温暖的。因此,updateMetrics
可以跟踪模型给定的性能指标数据。
跟踪性能指标
跟踪模型性能对其余数据使用updateMetrics
函数。模拟数据流处理50观测一次。在每一次迭代:
调用
updateMetrics
更新的累积和窗口最小成本模型的输入块的观察。覆盖前面的增量式模型更新的损失指标
财产。注意,函数不符合模型的一部分数据,大部分是“新”的数据模型。存储的最小成本,意味着在第一节课第一次预测 。
%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu11 = [IncrementalMdl.DistributionParameters {1} (1);0 (nchunk 1)];自= X (idxil:);Yil = Y (idxil);%增量式拟合为j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl = updateMetrics (IncrementalMdl自(idx:), Yil (idx));mc {j:} = IncrementalMdl.Metrics {“MinimalCost”,:};mu11 (j + 1) = IncrementalMdl.DistributionParameters {1 1} (1);结束
IncrementalMdl
是一个incrementalClassificationNaiveBayes
模型对象,追踪观察的数据流模型的性能。
跟踪性能指标的情节和情节 。
t = tiledlayout (2, 1);nexttile h =情节(mc.Variables);xlim ([0 nchunk]) ylabel (“最小成本”传奇(h, mc.Properties.VariableNames) nexttile情节(mu11) ylabel (“\ mu_ {11}”)xlim ([0 nchunk])包含(t)“迭代”)
累计损失是稳定的,而窗口失去跳跃在整个培训。
不会改变,因为updateMetrics
不符合模型的数据。
配置增量式模型跟踪性能指标和指定权重
创建一个朴素贝叶斯分类模型的增量学习通过调用incrementalClassificationNaiveBayes
并指定最多5类的数据。指定跟踪错误分类错误率除了最小的成本。
Mdl = incrementalClassificationNaiveBayes (“MaxNumClasses”5,“指标”,“classiferror”);
Mdl
是一个incrementalClassificationNaiveBayes
模型。所有的属性是只读的。
确定模型是温暖通过查询模型属性。
isWarm = Mdl.IsWarm
isWarm =逻辑0
Mdl.IsWarm
是0
;因此,Mdl
没有温暖。
确定数量的观察增量的拟合函数,如适合
之前,必须处理测量模型的性能通过显示加热时间大小的指标。
numObsBeforeMetrics = Mdl.MetricsWarmupPeriod
numObsBeforeMetrics = 1000
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
假设一个固定的数据主题(Y
< = 2)双数据从一个移动的质量问题。创建一个重量变量分配一个重量2从固定观察主体和1到一个移动的主题。
W = 1 (n, 1) + (Y < = 2);
实现增量学习在每个迭代中执行以下操作:
模拟数据流处理一块50的观察。
测量模型的性能指标的一部分使用
updateMetrics
。指定相应的观察重量和覆盖输入模型。符合模型的一部分。指定相应的观察重量和覆盖输入模型。
商店 和错误分类错误率,看看他们在增量学习发展。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);mu11 = 0 (nchunk, 1);%增量学习为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetrics (Mdl X (idx:), Y (idx),“重量”W (idx));ce {j:} = Mdl.Metrics {“ClassificationError”,:};Mdl =适合(Mdl X (idx:), Y (idx),“重量”W (idx));mu11 (j) = Mdl.DistributionParameters {1} (1);结束
现在,Mdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。
在增量学习看到参数如何演变,把它们在不同的瓷砖。
t = tiledlayout (2, 1);nexttile情节(mu11) ylabel (“\ mu_ {11}”)包含(“迭代”)轴紧nexttile情节(ce.Variables) ylabel (“ClassificationError”)参照线(numObsBeforeMetrics / numObsPerChunk,r -。)xlim ([0 nchunk])传说(ce.Properties.VariableNames)包含(t)“迭代”)
mdlIsWarm = numObsBeforeMetrics / numObsPerChunk
mdlIsWarm = 20
情节表明适合
总是适合模型数据,updateMetrics
没有跟踪指标后的分类错误,直到预热期(20块)。
执行条件的培训
逐步培养朴素贝叶斯分类模型只有当性能就会降低。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
配置一个朴素贝叶斯分类模型的增量学习,以便将类的最大数量是5,跟踪性能指标包括误分类错误率,和指标窗口大小是1000。第一个1000年观测符合配置的模型。
Mdl = incrementalClassificationNaiveBayes (“MaxNumClasses”5,“MetricsWindowSize”,1000,…“指标”,“classiferror”);initobs = 1000;Mdl =适合(Mdl X (1: initobs,:), Y (1: initobs));
Mdl
是一个incrementalClassificationNaiveBayes
模型对象。
执行增量学习,条件合适,每个迭代遵循这个过程:
模拟数据流处理一块100年的观察。
更新模型性能传入的数据块。
符合模型的数据块只有当误分类错误率大于0.05。
当跟踪性能和装配,覆盖前面的增量式模型。
存储错误分类错误率的意思是第二等的预测 看他们如何训练中发展。
跟踪时
适合
火车模型。
%预先配置numObsPerChunk = 100;地板nchunk = ((n - initobs) / numObsPerChunk);mu21 = 0 (nchunk, 1);ce = array2table (nan (nchunk, 2),“VariableNames”,(“累积”“窗口”]);训练= false (nchunk, 1);%增量式拟合为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1 + initobs);iend = min (n, numObsPerChunk * j + initobs);idx = ibegin: iend;Mdl = updateMetrics (Mdl X (idx:), Y (idx));ce {j:} = Mdl.Metrics {“ClassificationError”,:};如果ce {j 2} > 0.05 Mdl =适合(Mdl X (idx:), Y (idx));训练(j) = true;结束mu21 (j) = Mdl.DistributionParameters {1}, (1);结束
Mdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。
模型的性能和 进化在训练,放到单独的瓷砖。
t = tiledlayout (2, 1);nexttile情节(mu21)在情节(找到(训练),mu21(训练),“r”。)xlim ([0 nchunk]) ylabel (“\ mu_ {21}”)传说(“\ mu_ {21}”,培训发生的,“位置”,“最佳”)举行从nexttile情节(ce.Variables) xlim ([0 nchunk]) ylabel (“误分类错误率”)传说(ce.Properties.VariableNames“位置”,“最佳”)包含(t)“迭代”)
跟踪的情节 显示时间的常量值,在此期间,先前的观察窗内的损失最多是0.05。
输入参数
Mdl
- - - - - -朴素贝叶斯分类模型的增量学习
incrementalClassificationNaiveBayes
模型对象
朴素贝叶斯分类模型的增量学习测量的性能,作为指定incrementalClassificationNaiveBayes
模型对象。您可以创建Mdl
直接或通过转换支持,传统上使用训练有素的机器学习模型金宝appincrementalLearner
函数。更多细节,请参阅相应的引用页面。
如果Mdl.IsWarm
是假
,updateMetrics
没有跟踪的性能模型。之前updateMetrics
可以跟踪性能指标,必须执行下列操作:
符合输入模型
Mdl
(参见所有预期的类MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。
X
- - - - - -块的预测数据
浮点矩阵
块的预测数据测量模型的性能,作为指定n——- - - - - -Mdl.NumPredictors
浮点矩阵。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行)j
)X
。
请注意
如果Mdl.NumPredictors
= 0,updateMetrics
推断预测的数量X
,并设置相应的属性的输出模型。否则,如果流数据中预测变量的数量变化Mdl.NumPredictors
,updateMetrics
一个错误的问题。
数据类型:单
|双
Y
- - - - - -块的标签
分类数组|字符数组|字符串数组|逻辑向量|浮点矢量|单元阵列的特征向量
块标签来测量模型的性能,分类,指定字符,或字符串数组;逻辑或浮点矢量;或细胞的特征向量。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行)j
)X
。
updateMetrics
问题时一个错误或满足这两个条件:
Y
包含一个新的标签和类的最大数量已经达到(参见MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。的
一会
输入模型的属性Mdl
非空的,数据类型的Y
和Mdl.ClassNames
是不同的。
数据类型:字符
|字符串
|细胞
|分类
|逻辑
|单
|双
请注意
如果一个观察(预测或标签)或重量包含至少一个失踪(南
)的值,updateMetrics
忽略了观察。因此,updateMetrics
使用不到n性能计算模型,观察n观察的数量吗X
。
输出参数
Mdl
——更新朴素贝叶斯分类模型的增量学习
incrementalClassificationNaiveBayes
模型对象
更新的朴素贝叶斯分类模型的增量学习,作为一个增量学习模型对象返回相同的数据类型作为输入模型Mdl
,一个incrementalClassificationNaiveBayes
对象。
如果模型没有温暖,updateMetrics
不计算性能指标。结果,指标
的属性Mdl
是完全由南
值。如果模型是温暖的,updateMetrics
计算累积和窗口性能指标的新数据X
和Y
,覆盖相应的元素Mdl.Metrics
。所有其他的属性输入模型Mdl
带入输出模型Mdl
。更多细节,请参阅性能指标。
提示
与传统的培训、增量学习可能没有一个单独的测试(抵抗)。因此,将每个传入的数据作为测试集,通过增量式模型和每个传入的块
updateMetrics
在训练模型相同的数据使用适合
。
算法
性能指标
updateMetrics
只跟踪模型性能指标,表的行指定的标签Mdl.Metrics
,从新的数据只有当增量模型温暖的(IsWarm
属性是真正的
)。如果你创建一个增量式模型使用
incrementalLearner
和MetricsWarmupPeriod
是0(默认incrementalLearner
),模型是温暖的在创建。否则,增量模型后变得温暖
适合
函数执行这两种操作:增量模型
Mdl.MetricsWarmupPeriod
观察,这是度量预热期。适合所有预期的增量式模型类(请参阅
MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。
Mdl.Metrics
商店两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,updateMetrics
在以下的频率更新指标:累积
——函数计算累积度量模型以来的跟踪性能。功能更新指标每次你叫它和基地提供的计算对整个数据集。窗口
——函数计算指标基于观测由在一个窗口Mdl.MetricsWindowSize
财产。Mdl.MetricsWindowSize
也决定了软件更新的频率窗口
指标。例如,如果Mdl.MetricsWindowSize
是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)
和Y((- 20 + 1)结束:结束)
)。增量跟踪性能指标的函数在一个窗口中使用以下过程:
存储一个缓冲区的长度
Mdl.MetricsWindowSize
为每个指定的度量,并存储一个缓冲区的观察权重。填充的元素指标基于批次缓冲与模型性能的观察,并存储相应的权重观察权重缓冲区。
当缓冲区满了,覆盖
Mdl.Metrics.Window
窗口的加权平均性能指标。如果缓冲区满溢函数处理一批观测时,最新的传入Mdl.MetricsWindowSize
观察输入缓冲区,和最早的观察从缓冲区中删除。例如,假设Mdl.MetricsWindowSize
是20,缓冲区的指标有10个值从一个以前批处理,和15值传入的。组成20窗口长度,函数使用的测量15传入的观察和最新5测量前一批。
省略了一个观察的软件
南
分数计算时累积
和窗口
性能度量值。
观察权重
为每个条件预测分布,updateMetrics
计算加权平均和标准偏差。
如果之前类概率分布是已知的(换句话说,先验分布不是经验),updateMetrics
规范化观察权重总和之前类概率在各自的类。这个动作意味着默认观察权重前各自类的概率。
如果类概率分布是经验之前,软件可实现指定观察权重之和为1每次调用updateMetrics
。
版本历史
介绍了R2021a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。