主要内容

初始化增量学习模型从逻辑回归模型在分类学习者训练

这个例子展示了如何训练使用逻辑回归模型分类学习者应用程序,然后在命令行中,初始化和火车二进制增量模型分类使用信息从培训中获得应用。

加载和数据预处理

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

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

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

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

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

考虑培训一个逻辑回归模型来约1%的数据,并保留其余数据增量学习。

随机数据分割成子集通过调用1%和99%cvpartition并指定一个抵抗(测试)样本的比例0.99。为1%和99%分区创建变量。

本量利= cvpartition (n,“坚持”,0.99);idxtt = cvp.training;idxil = cvp.test;Xtt = X (idxtt:);自= X (idxil:);Ytt = Y (idxtt);Yil = Y (idxil);

使用分类学习者训练模型

开放分类学习者通过输入classificationLearner在命令行中。

classificationLearner

另外,在应用程序选项卡上,单击显示更多画廊箭头打开应用程序。下机器学习和深度的学习,点击应用程序图标。

选择训练数据集和变量。

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

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

  3. 响应,点击从工作空间;请注意,Ytt自动选择。

  4. 验证,点击Resubstitution验证

  5. 点击开始会议

火车一个逻辑回归模型。

  1. 分类学习者选项卡,模型类型部分,单击显示更多箭头打开画廊的模型。在逻辑回归分类器部分中,点击逻辑回归

  2. 分类学习者选项卡,培训部分中,点击火车

  3. 当应用程序完成训练模型,图一个混淆矩阵。在分类学习者选项卡,情节部分中,点击混淆矩阵并选择验证数据

    混淆矩阵

    混淆矩阵表明,模型分类样本观察。

出口训练逻辑回归模型。

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

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

应用程序通过训练模型,在其他变量,数组结构trainedModel工作区。关闭分类学习者

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

在命令行中,提取训练逻辑回归模型和类名trainedModel。该模型是一个GeneralizedLinearModel对象。因为类名称必须匹配的响应变量的数据类型,转换存储价值分类

Mdl = trainedModel.GeneralizedLinearModel;一会=分类(trainedModel.ClassNames);

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

偏见= Mdl.Coefficients.Estimate (1);β= Mdl.Coefficients.Estimate(2:结束);

你不能把GeneralizedLinearModel对象直接增量模型。然而,您可以初始化一个二进制增量模型分类通过从应用程序的信息,如估计系数和类名。

直接创建一个二进制增量式模型分类。指定学习者、拦截系数估计,从和类的名字分类学习者。因为良好的初始值系数存在已知类名称,指定一个度量预热期的长度0

IncrementalMdl = incrementalClassificationLinear (“学习者”,“物流”,“β”,β,“偏见”偏见,“类名”一会,“MetricsWarmupPeriod”,0)
IncrementalMdl = incrementalClassificationLinear IsWarm: 0指标:[1×2表]一会:[移动NotMoving] ScoreTransform:分对数的β:[60×1双)偏见:-471.7873学习者:“物流”属性,方法

IncrementalMdl是一个incrementalClassificationLinear使用逻辑回归模型对象的增量学习模型。因为系数和所有指定类名,您可以通过预测响应IncrementalMdl和数据预测

实现增量学习

99%的数据分区上执行增量学习使用updateMetricsAndFit函数。模拟数据流处理50观测一次。在每一次迭代:

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

  2. 商店的损失估计系数β14

%预先配置nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);beta14 = [IncrementalMdl.Beta (14);0 (nchunk 1)];%增量学习j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl = updateMetricsAndFit (IncrementalMdl自(idx:), Yil (idx));ce {j:} = IncrementalMdl.Metrics {“ClassificationError”,:};beta14 (j + 1) = IncrementalMdl.Beta (14);结束

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

跟踪性能指标的情节和情节β14

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

跟踪块epsilon-insensitive最后损失系数

每次迭代的累计损失逐渐变化(50块的观察),而跳窗的损失。因为指标窗口默认是200,updateMetricsAndFit每四迭代测量性能。

β14适应的数据updateMetricsAndFit过程的观察。

另请参阅

应用程序

对象

功能

相关的话题