主要内容

使用灵活的工作流实现增量学习分类

这个例子展示了如何使用灵活的工作流来实现增量学习与prequential二进制分类评价。传统训练模型初始化增量模型。具体地说,这个例子如下:

  1. 火车线性模型对二进制分类数据的一个子集。

  2. 传统训练模型转换为二进制增量学习模型分类。

  3. 模拟数据流使用一个for循环,喂小块观测的增量学习算法。

  4. 对于每个块,使用updateMetrics测量模型的性能考虑到输入数据,然后使用适合适合的模型数据。

尽管这个示例将应用程序作为二元分类问题,您可以实现多级增量学习使用朴素贝叶斯算法而不是遵循同样的工作流。看到incrementalClassificationNaiveBayes对象。

加载和数据预处理

载入人类活动数据集。随机洗牌数据。东方的观测指标数据列。

负载humanactivityrng (1);%的再现性n =元素个数(actid);idx = randsample (n, n);X =壮举(idx:)”;Y = actid (idx);

细节的数据集,输入描述在命令行中。

响应可以是五类:坐着,站着,散步,跑步,或者跳舞。二分响应通过识别主题是否移动(actid> 2)。

Y = Y > 2;

为二进制分类培训线性模型

二进制分类符合线性模型的随机样本数据的一半。指定的观测是面向列的数据。

idxtt = randsample((真假),n, true);TTMdl = fitclinear (X (:, idxtt), Y (idxtt),“ObservationsIn”,“列”)
TTMdl = ClassificationLinear ResponseName:“Y”类名:[0 1]ScoreTransform:“没有一个”测试:[60 x1双]偏见:-0.3965λ:8.2967 e-05学习者:“支持向量机”属性,方法

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

转换训练模型

传统训练分类模型转换为一个二进制分类线性模型的增量学习。

IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationLinear IsWarm: 1指标:[1 x2表]一会:[0 1]ScoreTransform:“没有一个”测试:[60 x1双]偏见:-0.3965学习者:“支持向量机”属性,方法

实现增量学习

使用灵活的工作流更新模型性能指标和适合的增量式模型训练数据通过调用updateMetrics适合单独的功能。模拟数据流处理50观测一次。在每一次迭代:

  1. 调用updateMetrics更新和窗口分类累积误差模型的输入块的观察。覆盖前面的增量式模型更新的损失指标财产。注意,函数不符合模型的一部分数据,大部分是“新”的数据模型。指定列的观测是面向。

  2. 调用适合适合的模型输入块的观察。覆盖前面的增量式模型更新模型参数。指定列的观测是面向。

  3. 存储分类错误,首先估计系数 β 1

%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta1 = [IncrementalMdl.Beta (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),“ObservationsIn”,“列”);ce {j:} = IncrementalMdl.Metrics {“ClassificationError”,:};IncrementalMdl =适合(IncrementalMdl自(:,idx) Yil (idx),“ObservationsIn”,“列”);beta1 (j + 1) = IncrementalMdl.Beta(结束);结束

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

或者,您可以使用updateMetricsAndFit更新模型的性能指标给定一个新的数据块,然后适应模型数据。

检查模型的进化

画一个跟踪性能指标和估计系数的情节 β 1

图;次要情节(2,1,1)h =情节(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的传奇(h, ce.Properties.VariableNames)次要情节(2,1,2)情节(beta1) ylabel (“\ beta_1”)xlim ([0 nchunk]);包含(“迭代”)

图包含2轴对象。坐标轴对象1包含2线类型的对象。这些对象代表累积,窗口。坐标轴对象2包含一个类型的对象。

累计损失稳定和逐渐减少,而跳窗的损失。

β 1 突然发生了变化,然后逐渐平缓适合流程更大块的观察。

另请参阅

对象

功能

相关的话题