主要内容

incrementalLearner

朴素贝叶斯分类模型转换为增量学习

自从R2021a

描述

例子

IncrementalMdl= incrementalLearner (Mdl)返回一个朴素贝叶斯分类模型增量学习,IncrementalMdl,使用传统的hyperparameters训练朴素贝叶斯分类模型Mdl。因为它的属性值反映而获得的知识Mdl,IncrementalMdl可以预测标签给新观测,它是什么温暖的,这意味着其预测性能跟踪。

例子

IncrementalMdl= incrementalLearner (Mdl,名称,值)使用附加选项指定一个或多个名称参数。一些选项需要你火车IncrementalMdl之前预测性能跟踪。例如,“MetricsWarmupPeriod”, 50岁,“MetricsWindowSize”, 100指定了一个初步的增量训练时期的前50观测性能指标跟踪,并指定处理100年观测之前更新窗口性能指标。

例子

全部折叠

火车通过使用朴素贝叶斯模型fitcnb,然后把它转换成一个增量学习。

加载和数据预处理

载入人类活动数据集。

负载humanactivity

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

火车朴素贝叶斯模型

适合朴素贝叶斯分类模型对整个数据集。

TTMdl = fitcnb(壮举,actid);

TTMdl是一个ClassificationNaiveBayes模型对象代表了传统训练朴素贝叶斯分类模型。

转换训练模型

传统训练朴素贝叶斯分类模型转换为一个适合增量学习。

IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1指标:[1 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法

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

  • incrementalLearner函数初始化增量学习者通过学习条件预测分布参数,以及其他信息TTMdl从训练数据提取出来的。

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

预测的反应

增量学习者从转换创建一个传统训练模型可以生成预测没有进一步处理。

预测分类评分(类的后验概率)观测使用这两种模型。

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

之间的差异模型产生的分数是0。

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

载入人类活动数据集。

负载humanactivity

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

随机把数据分成两半:上半年培训模式传统,下半年的增量学习。

n =元素个数(actid);rng (1)%的再现性本量利= cvpartition (n,“坚持”,0.5);idxtt =培训(cvp);idxil =测试(cvp);%上半年的数据Xtt =壮举(idxtt:);Ytt = actid (idxtt);%下半年的数据自=壮举(idxil:);Yil = actid (idxil);

朴素贝叶斯模型适合上半年的数据。假设您想加倍处罚分类器时,错误地分类类2。

C =的眼睛(5)- (5);C (2, 1 3 4 5) = 2;Ytt TTMdl = fitcnb (Xtt,“成本”C);

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

  • 一个性能指标预热期2000年的观察。

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

  • 使用分类误差和最小的成本来衡量模型的性能。你不需要指定“mincost”指标因为incrementalClassificationNaiveBayes一直跟踪这个指标。

IncrementalMdl = incrementalLearner (TTMdl,“MetricsWarmupPeriod”,2000,“MetricsWindowSize”,500,“指标”,“classiferror”);

下半年适合增量模型使用的数据updateMetricsAndFit函数。在每一次迭代:

  • 模拟数据流处理20观测一次。

  • 覆盖前面的增量式模型与一个新安装的观察。

  • 商店内的第二个预测均值头等舱 μ 12 、累积度量和窗口指标增量学习期间看到他们如何演变。

%预先配置nil =元素个数(Yil);numObsPerChunk = 20;nchunk =装天花板(nil / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu12 = [IncrementalMdl.DistributionParameters {1,2} (1);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”,:};mc {j:} = IncrementalMdl.Metrics {“MinimalCost”,:};mu12 (j + 1) = IncrementalMdl.DistributionParameters {1,2} (1);结束

IncrementalMdl是一个incrementalClassificationNaiveBayes模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit检查模型的性能的观察,然后符合观测模型。

性能指标和 μ 12 进化在训练,放到单独的瓷砖。

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

图包含3轴对象。坐标轴对象1 ylabel \ mu_{12}包含2线类型的对象,constantline。坐标轴对象2 ylabel分类错误包含3线类型的对象,constantline。这些对象代表累积,窗口。坐标轴对象3 ylabel最小成本包含对象类型的线,constantline。这些对象代表累积,窗口。

故事情节表明updateMetricsAndFit执行以下操作:

  • 适合 μ 12 在增量学习迭代。

  • 计算后的性能指标度量预热期(红色垂直线)。

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

  • 计算窗口指标500年处理后观察迭代(25)。

因为数据是活动,下令均值和性能指标定期突然改变。

输入参数

全部折叠

传统训练朴素贝叶斯模型多级分类,指定为一个ClassificationNaiveBayes模型对象返回的fitcnb。每个预测变量的条件分布,存储在Mdl.DistributionNames不能一个内核分布。

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

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

模型性能指标来跟踪在增量学习的updateMetricsupdateMetricsAndFit函数,指定为一个内置的损失函数的名字,名字,函数的字符串向量处理(例如,@metricName)、结构的功能处理或细胞向量的名字,函数处理,或结构数组。

下表列出了内置的损失函数的名字。您可以指定多个通过使用一个字符串向量。

的名字 描述
“binodeviance” 二项异常
“classiferror” 分类错误
“指数” 指数
“枢纽” 铰链
“分对数” 物流
“mincost” 最小的预期的误分类代价(后验概率的分类评分)
“二次” 二次

内置的损失函数的更多细节,请参阅损失

例子:“指标”,(“classiferror”“mincost”)

指定一个自定义函数,返回一个性能指标,使用函数处理符号。函数必须有这种形式。

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

  • 输出参数度规是一个n1数字向量,其中每个元素是损失相应的观测数据处理的增量学习函数在一个学习周期。

  • 你选择函数名(这里,customMetric)。

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

  • 年代是一个n——- - - - - -K数字矩阵的预测分类的分数。年代类似于分数的输出预测,行对应于观测数据和列顺序对应于类秩序一会财产。S (p,)分类的观察吗p在课堂上被分类

  • 成本是一个K——- - - - - -K数字矩阵的误分类代价。看到“成本”名称-值参数。

指定多个自定义指标和分配自定义名称,使用结构数组。指定一个内置的和自定义指标的组合,使用细胞向量。

例子:“指标”,结构(‘Metric2’,‘Metric1’, @customMetric1 @customMetric2)

例子:“指标”,{@customMetric1 @customMetric2分对数的结构(Metric3, @customMetric3)}

updateMetricsupdateMetricsAndFit在属性存储表中指定的度量IncrementalMdl.Metrics。的数据类型指标决定了行表的名称。

“指标”值数据类型 的描述指标属性行名称 例子
字符串或字符向量 相应的内置的度量 行名称“classiferror”“ClassificationError”
结构数组 字段名 行名称结构(Metric1, @customMetric1)“Metric1”
函数句柄函数存储在程序文件中 函数的名字 行名称@customMetric“customMetric”
匿名函数 CustomMetric_j,在那里j是度量j指标 行名称@ (C、S、成本)customMetric (C、S、成本)…CustomMetric_1

性能指标选择的更多细节,请参阅性能指标

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

数量的观察增量式模型之前必须适合其跟踪性能指标指标属性,指定为一个非负整数。增量模型是适合温暖的增量后拟合函数MetricsWarmupPeriod观察到增量模型。

性能指标选择的更多细节,请参阅性能指标

例子:“MetricsWarmupPeriod”, 50岁

数据类型:|

数量的观察使用性能指标计算窗口,指定为一个正整数。

性能指标选择的更多细节,请参阅性能指标

例子:“MetricsWindowSize”, 100年

数据类型:|

输出参数

全部折叠

朴素贝叶斯分类模型的增量学习,作为一个返回incrementalClassificationNaiveBayes模型对象。IncrementalMdl也配置为生成了新的预测数据(看到了吗预测)。

incrementalLearner初始化IncrementalMdl增量学习使用的模型信息Mdl。下面的表显示了Mdl属性,incrementalLearner通过相应的属性IncrementalMdl。所需的函数也使用其他模型属性初始化IncrementalMdl,如Y(类标签)W(观察权重)。

财产 描述
CategoricalLevels

多元多项式预测水平,与长度等于单元阵列NumPredictors

CategoricalPredictors 分类预测指标,一个向量的正整数
一会 类标签二进制分类、名称的列表
成本 误分类代价,一个数字矩阵
DistributionNames 条件分布的预测变量的名字,一个单元,每个单元格包含数组“正常”“mvmn”,或者是价值“锰”
DistributionParameters 参数值的条件分布的预测变量,一个细胞数组长度2数值向量(详情,请参阅DistributionParameters)
NumPredictors 数量的预测,一个正整数
之前 前类标签分布,数值向量
ScoreTransform 分数转换函数,函数名或函数句柄

更多关于

全部折叠

增量学习

增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。

鉴于传入的观察,增量学习模型处理数据在下列方面,但通常在这个顺序:

  • 预测标签。

  • 测量预测性能。

  • 检查结构性突变或漂移模型。

  • 符合模型的观测。

更多细节,请参阅增量学习概述

算法

全部折叠

性能指标

  • updateMetricsupdateMetricsAndFit函数跟踪模型性能指标(指标)新数据只有当增量模型温暖的(IsWarm属性是真正的)。

    • 如果你创建一个增量式模型使用incrementalLearnerMetricsWarmupPeriod是0(默认incrementalLearner),模型是温暖的在创建。

    • 否则,增量模型后变得温暖适合updateMetricsAndFit执行这两种操作:

  • 指标增量模型的属性存储两种形式的各性能指标作为一个表的变量(列),累积窗口行,个别指标。当增量模型是温暖的,updateMetricsupdateMetricsAndFit更新后频率的指标:

    • 累积——函数计算累积度量模型以来的跟踪性能。更新指标的函数每次调用函数和基地提供的计算对整个数据集。

    • 窗口——函数计算基于一个窗口内的所有观测指标决定的MetricsWindowSize名称-值参数。MetricsWindowSize也决定了软件更新的频率窗口指标。例如,如果MetricsWindowSize是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)Y((- 20 + 1)结束:结束))。

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

      1. 存储一个缓冲区的长度MetricsWindowSize为每个指定的度量,并存储一个缓冲区的观察权重。

      2. 填充的元素指标基于批次缓冲与模型性能的观察,并存储相应的权重观察权重缓冲区。

      3. 当缓冲区满了,覆盖Mdl.Metrics.Window窗口的加权平均性能指标。如果缓冲区满溢,当函数处理一批观察,最新的传入MetricsWindowSize观察输入缓冲区,和最早的观察从缓冲区中删除。例如,假设MetricsWindowSize是20,缓冲区的指标有10个值从一个以前批处理,和15值传入的。组成20窗口长度的函数使用15传入的观察和测量的最新5测量前一批。

  • 省略了一个观察的软件分数计算时累积窗口性能度量值。

版本历史

介绍了R2021a