在增量学习中进行条件训练
这个例子展示了如何在模型性能不理想的情况下训练朴素贝叶斯多类分类模型进行增量学习。
灵活的增量学习工作流允许您仅在需要训练时才对传入的一批数据训练增量模型(请参阅什么是增量学习?).例如,如果模型的性能指标令人满意,那么,为了提高效率,您可以跳过对传入批次的训练,直到指标变得不令人满意为止。
加载数据
加载人类活动数据集。随机打乱数据。
负载humanactivityN = numel(actid);rng (1)%用于再现性Idx = randsample(n,n);X = feat(idx,:);Y = actid(idx);
关于数据集的详细信息,请输入描述
在命令行。
训练朴素贝叶斯分类模型
配置用于增量学习的朴素贝叶斯分类模型:
期望的最大类数为5
对错误分类错误率的跟踪性能度量,其中还包括最小成本
度量窗口大小为1000
参数预热周期为50
Initobs = 50;Mdl = incrementalClassificationNaiveBayes(“MaxNumClasses”5,“MetricsWindowSize”, 1000,...“指标”,“classiferror”,“MetricsWarmupPeriod”, initobs);
将配置的模型拟合到前50个观察值。
Mdl = fit(Mdl,X(1:initobs,:),Y(1:initobs)))
Mdl = incrementalClassificationNaiveBayes IsWarm: 1 Metrics: [2x2 table] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell} Properties, Methods
haveTrainedAllClasses = numel(unique(Y(1:initobs))) == 5
haveTrainedAllClasses =逻辑1
Mdl
是一个incrementalClassificationNaiveBayes
模型对象。模型是温暖的(IsWarm
是1
),因为下列条件均适用:
初始训练数据包含所有预期的类(
haveTrainedAllClasses
是真正的
).Mdl
适合于Mdl。MetricsWarmupPeriod
观察。
因此,该模型准备生成预测,增量学习函数测量模型中的性能指标。
使用条件训练进行增量学习
假设你只想在最近的1000个观察数据的错误分类误差大于5%时训练模型。
执行增量学习,并进行条件训练,每次迭代都遵循以下步骤:
通过一次处理100个观测数据块来模拟数据流。
通过将模型和当前数据块传递给
updateMetrics
.用输出模型覆盖输入模型。将第一个预测器的误分类错误率和平均值存储在第二类中 看看他们在训练中是如何进化的。
只有当错分类错误率大于0.05时,模型才能拟合数据块。当训练发生时,用输出模型覆盖输入模型。
跟踪时
适合
训练模型。
%预先配置numObsPerChunk = 100;nchunk = floor((n - initobs)/numObsPerChunk);Mu21 = 0 (nchunk,1);Ce = array2table(nan(nchunk,2),“VariableNames”,[“累积”“窗口”]);训练= false(nchunk,1);%增量拟合为j = 1: 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。指标{“ClassificationError”,:};如果ce {j,“窗口”} > 0.05 Mdl = fit(Mdl,X(idx,:),Y(idx));训练(j) = true;结束mu21(j) = mld . distributionparameters {2,1}(1);结束
Mdl
是一个incrementalClassificationNaiveBayes
在流中的所有数据上训练的模型对象。
看看模型的性能如何 在训练过程中进化,将它们绘制在单独的瓷砖上。确定训练模型的时间段。
T = tiledlayout(2,1);Nexttile地块(mu21)持有在情节(找到(训练),mu21(训练),“r”。) ylabel (“\ mu_{21}”)传说(“\ mu_{21}”,培训发生的,“位置”,“最佳”)举行从nexttile plot(ce.Variables)“错误分类错误率”)传说(ce.Properties.VariableNames“位置”,“最佳”)包含(t)“迭代”)
的轨迹图 显示常值周期,在此期间,模型在前一个观测窗口内的性能最多为0.05。