主要内容

incrementallearner.

将Naive Bayes分类模型转换为增量学习者

描述

例子

IncrementalMdl= incrementalLearner (Mdl的朴素贝叶斯分类模型增量学习IncrementalMdl,利用传统训练朴素贝叶斯分类模型的超参数,Mdl。因为它的财产价值反映了所获得的知识MdlIncrementalMdl可以根据新的观测结果预测标签,是吗温暖的,这意味着它的预测性能会被跟踪。

例子

IncrementalMdl= incrementalLearner (Mdl名称,值使用由一个或多个名称-值对参数指定的附加选项。有些选择需要训练IncrementalMdl在它的预测性能被跟踪之前。例如,“MetricsWarmupPeriod”,50岁,“MetricsWindowSize”,100指定在跟踪性能指标之前的50个观察值的初步增量培训期,并指定在更新性能指标之前处理100个观察值。

例子

全部折叠

使用。训练朴素贝叶斯模型fitcnb,然后将其转化为增量式学习者。

加载和预处理数据

加载人类活动数据集。

负载人类活动

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

训练朴素贝叶斯模型

拟合一个朴素贝叶斯分类模型到整个数据集。

TTMdl = fitcnb(壮举,actid);

TTMdl是A.ClassificationniveBayes.代表传统训练的朴素贝叶斯分类模型的模型对象。

转换训练模型

将传统训练的朴素贝叶斯分类模型转化为增量学习。

increntmentalmdl = incrementallearner(ttmdl)
increntmentalmdl = incrementallassificationnaiveBayes isWarm:1度量:[1x2表] ClassNames:scoreTransform:'none'分发Name:{1x60 Cell}分发参数:{5x60 Cell}属性,方法

IncrementalMdl是一个incrementalclassificaiveBayes.模型对象准备的增量学习使用朴素贝叶斯分类。

  • incrementallearner.初始化增量学习器,将学习到的条件预测器分布参数连同其他信息传递给增量学习器TTMdl从训练数据中提取。

  • IncrementalMdl温暖 (IsWarm1),这意味着增量学习函数可以跟踪性能指标并做出预测。

预测回应

从转换传统训练的模型创建的增量学习者可以在不进一步处理的情况下生成预测。

使用这两个模型预测所有观测值的分类分数(类别后验概率)。

[~, ttscores] =预测(TTMdl壮举);[~,简称ilcor] =预测(IncrementalMdl壮举);compareScores = norm(ttscores - ilcores)
compareScores = 0

模型生成的分数之间的差值为0。

使用训练有素的朴素贝叶斯模型初始化增量学习器。通过指定一个指标预热期来为增量学习者做准备,在此期间updateMetricsAndFit功能仅适合模型。指定度量窗口大小为500个观察。

加载人类活动数据集。

负载人类活动

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

随机将数据分成两半:前半部分用于培训一个传统上的型号,而下半部分为增量学习。

n =元素个数(actid);rng (1)%的再现性本量利= cvpartition (n,'坚持',0.5);idxtt =培训(CVP);IDXIL =测试(CVP);%数据的前半部分Xtt =壮举(idxtt:);Ytt = actid (idxtt);数据的%下半部分自=壮举(idxil:);Yil = actid (idxil);

将朴素贝叶斯模型拟合到数据的前半部分。

ttmdl = fitcnb(xtt,ytt);

将传统训练的朴素贝叶斯模型转换为朴素贝叶斯分类模型进行增量学习。指定以下:

  • 2000个观察数据的性能指标热身期

  • 500个观察值的指标窗口大小

  • 利用分类误差和最小代价来衡量模型的性能

increntmentalmdl = increntmentallerner(ttmdl,“MetricsWarmupPeriod”, 2000,“MetricsWindowSize”500,......“指标”, (“classiferror”“枢纽”]);

将增量模型拟合到数据的后半部分updateMetricsAndfit函数。在每一次迭代:

  • 通过一次处理20个观察数据来模拟数据流。

  • 用适合传入观察的新一个覆盖以前的增量模型。

  • 将第二个预测器的平均值存储在第一个类中 μ 12. 、累积指标和窗口指标,以查看它们在增量学习过程中如何发展。

%预先配置nil = numel(yil);numobsperchunk = 20;nchunk = ceil(nil / numobsperchunk);CE = Array2table(零(nchunk,2),'variablenames', (“累积”“窗口”]);(nchunk mc = array2table (0, 2),'variablenames', (“累积”“窗口”]);mu12 = 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。指标{“ClassificationError”,:};mc {j ,:} = increntmentalmdl.metrics {“MinimalCost”,:};mu12(j + 1) = incrementalmdd . distributionparameters {1,2}(1);结束

IncrementalMdl是一个incrementalclassificaiveBayes.模型对象对流中的所有数据进行训练。在增量学习过程中以及模型热身后,updateMetricsAndFit检查模型在传入观测中的表现,然后将模型与观测相吻合。

看看性能指标如何和 μ 12. 在训练期间演变,将它们绘制在单独的子尺上。

图;次要情节(1,1)情节(mu12) ylabel ('\ mu_ {12}') xlim ([0 nchunk]);参照线(IncrementalMdl。metricswarmupperiod./numObsPerChunk,r -。);subplot(3,1,2) h = plot(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)参照线(IncrementalMdl。metricswarmupperiod./numObsPerChunk,r -。);传奇(h, ce.Properties.VariableNames“位置”'西北')子图(3,1,3)h = plot(mc.variables);xlim ([0 nchunk]);ylabel ('最小的成本')参照线(IncrementalMdl。metricswarmupperiod./numObsPerChunk,r -。);传奇(h, mc.Properties.VariableNames“位置”'西北')包含(“迭代”

这个情节表明updateMetricsAndFit以下:

  • 适合 μ 12. 在所有的增量学习迭代过程中。

  • 仅在指标预热时间后计算性能指标。

  • 在每次迭代期间计算累积度量。

  • 在处理500个观察(25次迭代)后计算窗口度量。

因为数据是按活动排序的,所以平均值和性能指标会周期性地突然变化。

输入参数

全部折叠

传统上训练的朴素贝叶斯模型,用于多种多组分类,指定为aClassificationniveBayes.返回的模型对象fitcnb。每个预测变量的条件分布,如存储在Mdl。分布Name.,不能是内核发行版。

名称-值参数

指定可选的逗号分隔的对名称,值参数。姓名参数名和价值为对应值。姓名必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“指标”,“classiferror”“mincost”,“MetricsWindowSize”,100年指定跟踪误分类率和最小成本,并指定在更新性能指标之前处理100个观察结果。

模型性能指标在增量学习期间跟踪updateMetricsupdateMetricsAndFit函数,指定为内置丢失函数名称,字符串矢量名称,功能句柄(@metricName)、函数句柄的结构数组,或名称、函数句柄或结构数组的单元向量。

下表列出了内置的loss函数名称。可以使用字符串向量指定多个。

姓名 描述
“binodeviance” 二项异常
“classiferror” 分类错误
“指数” 幂数
“枢纽” 铰链
“分对数” 物流
“Mincost” 最小预期的错误分类成本(用于后验概率的分类分数)
“二次” 二次

关于内置丢失函数的详细信息,请参见损失

例子:'metrics',[“classiferror”“mincost”]

要指定返回性能度量标准的自定义函数,请使用函数句柄表示法。该函数必须具有此表单:

度量= customMetric (C、S、成本)

  • 输出参数公制是一个n-1个数字向量,其中每个元素是在学习周期期间由增量学习功能处理的数据中的相应观察的丢失。

  • 您选择函数名称(customMetric).

  • C是一个n——- - - - - -K具有行的逻辑矩阵,指示相应观察所属的类,其中K为类数。中的列顺序对应于类的顺序一会财产。创建C通过设置C (p1,如果观察p是在课堂上,用于指定数据中的每一个观测。设置行中的其他元素p0

  • 年代是一个n——- - - - - -K预测分类分数的数值矩阵。年代类似于分数的输出预测,其中行对应于数据中的观察值,列顺序对应于一会财产。s(p是观察的分类评分p被分类为课堂

  • 成本是A.K——- - - - - -K错误分类成本的数字矩阵。看看“成本”名称-值参数。

若要指定多个自定义指标并为每个指标分配自定义名称,请使用结构数组。要指定内置指标和自定义指标的组合,请使用单元格向量。

例子:'指标',struct('metric1',@ custommetric1,'metric2',@ custommetric2)

例子:'Metrics',{@customMetric1 @ custommetric2 'logit' struct('Metric3',@customMetric3)}

updateMetricsupdateMetricsAndFit存储属性中的表中的指定指标IncrementalMdl。指标。数据类型指标确定表的行名。

“指标”值数据类型 描述指标属性行名称 例子
字符串或字符向量 相应的内置度量的名称 行名称“classiferror”“ClassificationError”
结构阵列 字段名 行名称结构(Metric1, @customMetric1)“Metric1”
存储在程序文件中的函数句柄 功能名称 行名称@customMetric“customMetric”
匿名函数 定制_j, 在哪里j是度量j指标 行名称@(c,s,成本)定制(C,S,成本)......CustomMetric_1.

有关性能指标选项的详细信息,请参见性能指标

数据类型:字符|细绳|结构体|细胞|function_handle

此属性是只读的。

增量模型在跟踪其性能指标之前必须适合的观察数指标属性,指定为非负整数。

有关更多详细信息,请参阅性能指标

数据类型:单身的|双倍的

此属性是只读的。

用于计算窗口性能度量的观察次数指定为正整数。

有关性能指标选项的详细信息,请参见性能指标

数据类型:单身的|双倍的

输出参数

全部折叠

用于增量学习的朴素贝叶斯分类模型,返回为incrementalclassificaiveBayes.模型对象。IncrementalMdl也配置为生成给定新数据的预测(见预测).

初始化IncrementalMdl为了增量学习,incrementallearner.的属性的值Mdl在这张表中是一致的财产IncrementalMdl

财产 描述
CategoricalLevels

多元多项式预测水平,细胞阵列长度等于numpredictors.

CategoricalPredictors 分类预测指标,一个正整数向量
一会 用于二进制分类的类标签,一个名称列表
成本 错误分类成本,数字矩阵
分布Name. 预测变量的条件分布的名称,可以是每个单元格中包含的单元格数组'普通的“mvmn”,或价值“锰”
分发参数 预测变量的条件分布的参数值,长度为2个数字向量的单元格数组(详细信息,请参见分发参数
numpredictors. 预测器数量,正整数。
事先的 先验类标号分布,一个数值向量
ScoreTransform 分数转换函数,一个名称或函数句柄。
Y 提供给fitcnb为递增学习计算每个类别的权重,存储为标签数组(参见Y

更多关于

全部折叠

增量学习

增量学习, 或者在线学习,是机器学习的一个分支,涉及处理来自数据流的传入数据,可能对预测变量的分布、预测或目标函数的方面(包括调优参数值)或观察值是否被标记的知识很少或没有。增量学习与传统机器学习不同,传统机器学习有足够的标记数据来适应模型,执行交叉验证来调整超参数,并推断预测器分布。

给定传入的观察,增量学习模型以下列任何一种方式处理数据,但通常按以下顺序:

  • 预测标签。

  • 测量预测性能。

  • 检查模型中的结构中断或漂移。

  • 使模型与传入的观测值相符。

算法

全部折叠

性能指标

  • updateMetricsupdateMetricsAndFit功能跟踪模型性能指标(“指标”)从新数据中获取温暖的IsWarm财产)。增量模型是温暖的适合updateMetricsAndFit执行以下两个操作:

    • 适合增量模型metricswarmupperiod.观察结果,即度量预热期

    • 过程MaxNumClasses属性指定的所有类名一会名称-值参数。

  • 指标增量模型的属性将每个性能指标的两种形式存储为表的变量(列),累积窗户,带有行中的个人度量。当增量模型温暖时,updateMetricsupdateMetricsAndFit以下列频率更新度量标准:

    • 累积-这些函数计算自模型性能跟踪开始以来的累积度量。每次调用函数时,函数都会更新指标,并基于所提供的整个数据集进行计算。

    • 窗户-函数根据窗口内的所有观察值计算度量值MetricsWindowsize.名称-值对的论点。MetricsWindowsize.还确定软件更新的频率窗户指标。例如,如果MetricsWindowsize.为20时,函数根据所提供数据中的最近20个观察值计算度量值(X((end - 20 + 1):end,:)Y((结束 - 20 + 1):结束)).

      跟踪窗口内性能指标的增量函数使用以下过程:

      1. 对于每个指定的度量,存储一个长度的缓冲区MetricsWindowsize.以及观察权值的缓冲。

      2. 使用基于批量传入观察数据的模型性能填充指标缓冲区的元素,并将相应的观察权重存储在权重缓冲区中。

      3. 当缓冲区被填满时,覆盖mdl.metrics.window.在指标窗口中使用加权平均性能。如果在函数处理一批观察值时缓冲区被填满,则最新传入的MetricsWindowsize.观测数据进入缓冲区,最早的观测数据从缓冲区中删除。例如,假设MetricsWindowsize.为20时,指标缓冲区有10个来自先前处理的批处理的值,15个值是传入的。为了组成长度为20的窗口,函数使用了来自15个传入观测的测量值和来自前一批的最新5个测量值。

介绍了R2021a