主要内容

从分类学习者训练的Logistic回归模型初始化增量学习模型

此示例显示如何使用分类学习者应用程序。然后,在命令行中,使用从应用程序中的培训中获得的信息初始化并培训二进制分类的增量模型。

加载和预处理数据

加载人类活动数据集。随机洗牌数据。

负载人类活动rng(1);%为了再现性n=努美尔(激活);idx=随机样本(n,n);X=专长(idx,:);actid=actid(idx);

有关数据集的详细信息,请输入描述在命令行。

回答可以是五个类中的一个:坐、站、走、跑或跳舞。通过创建一个分类数组来区分响应,该数组标识对象是否在移动(actid>2).

moveidx=actid>2;Y=repmat(“不移动”,n,1);Y(移动IDX)=“移动”;Y=分类(Y);

考虑将逻辑回归模型训练到大约1%的数据,并保留剩余数据以进行增量学习。

通过调用CVD分区以及规定以下各项的保持(试验)样品比例:0.99. 为1%和99%分区创建变量。

cvp=cvp(n,“坚持”,0.99);idxtt=cvp.training;idxil=cvp.test;Xtt=X(idxtt,:);Xil=X(idxil,:);Ytt=Y(idxtt);Yil=Y(idxil);

基于分类学习器的训练模型

打开分类学习者进入分类学习者在命令行。

分类学习者

或者,在应用程序选项卡,单击显示更多箭头打开应用程序库。在下面机器学习与深度学习,单击应用程序图标。

选择训练数据集和变量。

  1. 分类学习者选项卡,在文件节,选择从工作区新建会话>.

  2. 从工作区新建会话对话框,在数据集变量,选择预测变量Xtt.

  3. 在下面回答点击从工作区;注意Ytt是自动选择的。

  4. 在下面验证点击重新替代验证.

  5. 点击开始会话.

训练logistic回归模型。

  1. 分类学习者选项卡,在模型类型节中,单击显示更多箭头打开模型库。在逻辑回归分类器部分,单击对数几率回归.

  2. 分类学习者选项卡,在训练部分,单击火车.

    训练模型后,应用程序将显示一个混淆矩阵。

    混淆矩阵

    混淆矩阵表明,该模型能够很好地对样本观测值进行分类。

导出经过训练的logistic回归模型。

  1. 分类学习者选项卡,在出口节,选择出口模式>出口模式.

  2. 出口模式对话框中,单击好啊.

应用程序在结构数组中传递经过训练的模型和其他变量训练模型转到工作区。关闭分类学习者.

使用导出的模型初始化增量模型

在命令行中,从中提取经过训练的逻辑回归模型和类名训练模型.这个模型是一个广义线性模型对象因为类名必须与响应变量的数据类型匹配,所以将存储的值转换为明确的.

Mdl=训练模型。广义线性模型;ClassNames=分类(trainedModel.ClassNames);

从模型中提取截距和系数。截距是第一个系数。

偏差=Mdl.系数.估计(1);β=Mdl.系数.估计(2:结束);

您不能转换文件广义线性模型对象直接指向增量模型。但是,您可以通过传递从应用程序学习到的信息(如估计系数和类名)来初始化二进制分类的增量模型。

直接为二进制分类创建增量模型。指定学习者、截距、系数估计和从中学习的类名分类学习者. 因为存在良好的系数初始值,并且所有类名都已知,所以请指定长度为的度量预热期0.

IncrementalMdl=incrementalClassificationLinear(“学习者”,“物流”,...“贝塔”,Beta,“偏见”偏见“类名”,类名,...“MetricsWarmupPeriod”,0)
IncrementalMdl=incrementalClassificationLinear IsWarm:0度量:[1×2表]类名:[移动不移动]分数转换:'logit'测试:[60×1双]偏差:-471.7873学习者:'logistic'属性、方法

递增ALMDL是一个递增分类线性使用逻辑回归模型为增量学习建模对象。因为指定了系数和所有类名,所以可以通过传递递增ALMDL和数据到预测.

实施增量学习

使用updateMetricsAndFit功能。通过一次处理50个观察值来模拟数据流。在每次迭代中:

  1. 呼叫updateMetricsAndFit若要更新给定传入观测数据块的模型的累积和窗口分类错误,请覆盖以前的增量模型以更新模型中的损失韵律学请注意,该函数不适合数据块的模型。数据块是模型的“新”数据。

  2. 存储损失和估计系数β14.

%预分配nil=总和(idxil);numObsPerChunk=50;nchunk=楼层(nil/numObsPerChunk);ce=阵列2表格(零(nchunk,2),“变化无常”,[“累计”“窗口”]);beta14=[增量almdl.Beta(14);零(nchunk,1)];%增量学习对于j=1:nchunk-ibegin=min(nil,numObsPerChunk*(j-1)+1;iend=min(nil,numObsPerChunk*j);idx=ibegin:iend;IncrementalMdl=updateMetricsAndFit(IncrementalMdl,Xil(idx,:),Yil(idx));ce{j,:}=IncrementalMdl.Metrics{“分类错误”,:};beta14(j+1)=增量almdl.Beta(14);终止

递增ALMDL是一个递增分类线性对流中的所有数据进行训练的模型对象。

绘制性能指标的跟踪图,并β14.

图形子地块(2,1,1)h=地块(ce.变量);xlim([0 nchunk]);伊拉贝尔(“分类错误”)图例(h,ce.Properties.VariableNames)子地块(2,1,2)绘图(beta14)ylabel(“\beta_{14}”)xlim([0 nchunk]);xlabel(“迭代”)

ε不敏感损失和last系数的迹线图

累积损失随着每次迭代而逐渐变化(50个观察值的块),而窗口损失则跳跃updateMetricsAndFit每四次迭代测量一次性能。

β14根据需要调整数据updateMetricsAndFit处理大量的观察结果。

另见

应用程序

物体

功能

相关话题