朴素贝叶斯增量学习的分类模型
incrementalclassificanivebayes.
创建一个incrementalclassificanivebayes.
模型对象,代表了一个天真的贝母用于增量学习的多款分类模型。incrementalclassificanivebayes.
万博1manbetx支持正态分布的预测变量。
与其他统计和机器学习工具箱™模型对象不同,incrementalclassificanivebayes.
可以直接调用。此外,在将模型与数据拟合之前,您可以指定学习选项,如性能指标配置和先验类概率。在创建incrementalclassificanivebayes.
对象,它为之准备增量学习.
incrementalclassificanivebayes.
最适合于增量学习。对于一个传统的方法来训练朴素贝叶斯模型多类分类(例如,通过其拟合到数据,执行交叉验证,调谐超参数,等等创建模型),见fitcnb
.
你可以创建一个incrementalclassificanivebayes.
通过多种方式模型对象:
直接调用函数- 通过调用来配置增量学习选项或指定特定于学习者的选项incrementalclassificanivebayes.
直接。这种方法是最好的,当你没有数据还没有,或者你想立即启动增量学习。您必须指定的类或有望在增量学习过程中的响应数据的所有类名的最大数量。
转换传统训练模式—使用训练过的朴素贝叶斯模型对象的模型参数初始化朴素贝叶斯分类模型进行增量学习,可以将传统训练过的模型转换为incrementalclassificanivebayes.
模型对象,将其传递给incrementalLearner
函数。
调用增量学习函数- - - - - -适合
,updateMetrics
,updateMetricsAndFit
接受一个配置incrementalclassificanivebayes.
模型对象和数据作为输入,并返回一个incrementalclassificanivebayes.
使用从输入模型和数据学到的信息更新模型对象。
为增量学习返回默认朴素贝叶斯分类模型对象,Mdl
= incrementalclassificaiveBayes('maxnumclasses',MaxNumClasses
)Mdl
,在哪里MaxNumClasses
为增量学习过程中响应数据中期望的最大班级数。默认模型的属性包含未知模型参数的占位符。您必须训练一个默认模型,然后才能跟踪它的性能或从它生成预测。
MaxNumClasses
- - - - - -最大类数的预期中增量学习期间的响应数据类最大数,指定为一个正整数。
如果没有指定MaxNumClasses
,则必须指定一会
论点。在这种情况下,MaxNumClasses
类名的数量在吗一会
.
示例:'maxnumclasses',5
数据类型:单
|双人间
一会
- - - - - -所有独特的类标签增量学习过程中响应数据中所期望的所有唯一类标签,指定为类别数组或字符数组;逻辑、数字或字符串向量,或字符向量的单元格数组。一会
响应数据必须具有相同的数据类型。一会
设置一会
财产。
一会
指定与类顺序相对应的任何输入或输出参数维度的顺序。例如,设置“类名”
指定的维度的顺序成本
或分类分值的列顺序返回由预测
如果没有指定一会
,则必须指定MaxNumClasses
论点。在这种情况下,软件会推断MaxNumClasses
一会
从增量学习的数据。
示例:“类名”,“virginica”“setosa”“癣”}
数据类型:单
|双人间
|逻辑
|串
|字符
|细胞
|明确的
指定可选的逗号分隔的对名称,值
论点。的名字
参数名和价值
为对应值。的名字
必须出现在引号内。可以以任意顺序指定多个名称和值对参数name1,value1,...,namen,valuen
.
“NumPredictors”4“之前”,(0.3 0.3 0.4)
指定4
变量在预测数据和先验类概率分布(0.3 0.3 0.4)
.
“成本”
- - - - - -对观察结果分类错误的代价将一个观察错误分类的代价,在本表中指定为值,其中为MaxNumClasses
是课程的数量一会
属性:
价值 | 描述 |
---|---|
MaxNumClasses ——- - - - - -MaxNumClasses 数字矩阵 |
|
结构数组 | 有两个字段的结构数组:
|
如果您指定成本
,你还必须指定一会
论点。成本
设置成本
财产。
默认为MaxNumClasses
——- - - - - -MaxNumClasses
矩阵,成本(
为所有人我
,j
)= 1
≠我
,j
成本(
为所有人我
,j
)= 0.
=我
.j
示例:“成本”,结构(“类名”,{' b ', ' g '},“ClassificationCosts”,[0 2;1 0])
数据类型:单
|双人间
|结构体
“指标”
- - - - - -模型性能指标在增量学习期间跟踪“麦克塞特”
(默认)|“classiferror”
|字符串向量|函数处理|细胞向量|结构阵列|“binodeviance”
|“指数”
|“枢纽”
|“分对数”
|“二次”
|……模型性能指标在增量学习期间跟踪,除了最小预期的错误分类成本之外,指定为内置丢失函数名称,名称字符串矢量,功能句柄(@metricName
)、函数句柄的结构数组,或名称、函数句柄或结构数组的单元向量。
什么时候Mdl
是温暖(参见IsWarm),updateMetrics
和updateMetricsAndFit
跟踪性能指标指标的属性Mdl
.
下表列出了内置的loss函数名称。可以使用字符串向量指定多个。
的名字 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
错误分类错误率 |
“指数” |
幂数 |
“枢纽” |
铰链 |
“分对数” |
物流 |
'“麦克塞特” |
最小的预期误分类代价(后验概率分类分数)。 |
“二次” |
二次 |
有关内置损耗功能的更多详细信息,请参阅损失
.
示例:'METRICS',[“ClassifError”“Logit”]
若要指定返回性能指标的自定义函数,请使用函数句柄表示法。函数必须是这样的形式:
度量= customMetric (C、S、成本)
输出参数公制
是一个n×1数值向量,其中每个元素是在由增量学习功能所处理的数据对应的观察的学习周期期间的损失。
你选择的函数名(customMetric
).
C
是一个n——- - - - - -K逻辑矩阵,其行表示相应的观测所属的类,其中K为类数。中的列顺序对应于类的顺序一会
财产。创建C
通过设置C (
=p
,问
)1
,如果观察
是在课堂上p
,用于指定数据中的每一个观测。设置行中的其他元素问
来p
0
.
年代
是一个n——- - - - - -K预测分类分数的数值矩阵。年代
类似于后
的输出预测
,其中行对应于数据中的观察值,列顺序对应于一会
财产。S (
是观察的分类评分p
,问
)
被分类p
.问
成本
是一个K——- - - - - -K误分类代价的数值矩阵。看到“成本”
名称-值参数。
若要指定多个自定义指标并为每个指标分配自定义名称,请使用结构数组。要指定内置指标和自定义指标的组合,请使用单元格向量。
示例:'指标',struct('metric1',@ custommetric1,'metric2',@ custommetric2)
示例:'Metrics',{@customMetric1 @ custommetric2 'logit' struct('Metric3',@customMetric3)}
updateMetrics
和updateMetricsAndFit
的表中存储指定的指标指标
财产。数据类型指标
确定表的行名。
“指标” 值数据类型 |
描述指标 属性行名称 |
例子 |
---|---|---|
字符串或字符向量 | 相应的内置度量的名称 | 行名称“classiferror” 是“ClassificationError” |
结构数组 | 字段名称 | 行名称结构(Metric1, @customMetric1) 是“Metric1” |
功能手柄功能存储在程序文件 | 功能名称 | 行名称@customMetric 是“customMetric” |
匿名函数 | CustomMetric_ ,在哪里 是度量 在指标 |
行名称@(c,s,成本)定制(c,s,成本)...... 是CustomMetric_1. |
有关性能指标选项的详细信息,请参见性能指标.
数据类型:字符
|串
|结构体
|细胞
|function_handle
您可以仅在调用时使用名称-值对参数语法设置大多数属性incrementalclassificanivebayes.
直接。您可以在调用时设置一些属性incrementalLearner
转变传统的训练模式。您无法设置属性DistributionParameters
,IsWarm
,NumTrainingObservations
.
成本
- - - - - -对观察结果分类错误的代价此属性是只读的。
将观察结果错误分类的成本,指定为MaxNumClasses
——- - - - - -MaxNumClasses
数字矩阵。
如果指定“成本”
名称-值参数,它的值设置成本
.如果你指定一个结构数组,成本
价值是多少ClassificationCosts
领域。
如果你转换传统训练的模型来创建Mdl
,成本
是成本
传统训练模型的性质。
数据类型:单
|双人间
一会
- - - - - -所有独特的类标签此属性是只读的。
增量学习期间响应数据中所期望的所有唯一类标签,指定为类别或字符数组、逻辑或数字向量,或字符向量的单元数组。
如果指定MaxNumClasses
参数,软件推断一会
在增量学习。
如果指定一会
的说法,incrementalclassificanivebayes.
将您的规范存储在一会
.如果你指定一个字符串向量,incrementalclassificanivebayes.
将其存储为字符向量的单元格数组。
如果你转换传统训练的模型来创建Mdl
,一会
是一会
传统训练模型的性质。
数据类型:单
|双人间
|逻辑
|字符
|细胞
|明确的
NumPredictors
- - - - - -预测变量数0
(默认)|非负数字标量此属性是只读的。
预测器变量的数量,指定为非负数值标量。
如果你转换传统训练的模型来创建Mdl
,NumPredictors
由传统训练模型的同余性来确定。否则,增量拟合函数推断NumPredictors
从训练期间的预测数据。
数据类型:双人间
NumTrainingObservations
- - - - - -观测值符合增量模型0
(默认)|非负数字标量此属性是只读的。
观测值的数量符合增量模型Mdl
,指定为非负数值标量。NumTrainingObservations
通过时增加Mdl
和培训数据适合
或updateMetricsAndFit
.
请注意
如果你转换传统训练的模型来创建Mdl
,incrementalclassificanivebayes.
不添加适合传统培训的模型的观察数NumTrainingObservations
.
数据类型:双人间
之前
- - - - - -前类概率'经验性'
|'制服'
此属性是只读的。
先验类概率,在该表中指定为一个值。您可以使用名称-值对参数语法设置此属性,但是incrementalclassificanivebayes.
始终存储数字矢量。
价值 | 描述 |
---|---|
'经验性' |
增量学习功能在增量训练期间从观察到的类相对频率推断出从观察到的类相对频率的先前概率。 |
'制服' |
对于每个类,先前概率是1 /K,在哪里K为类数。 |
数值向量 | 自定义,标准化先验概率。的元素的顺序之前 对应于的元素一会 财产。 |
如果你转换传统训练的模型来创建Mdl
,incrementalclassificanivebayes.
使用之前
传统训练模型的性质。
否则,之前
是'经验性'
.
数据类型:单
|双人间
ScoreTransform
- - - - - -分数转换函数“没有”
(默认)|字符串标量|字符向量|函数处理此属性是只读的。
分数转换函数,描述增量学习函数如何转换原始响应值(指定为字符向量、字符串标量或函数句柄)。incrementalclassificanivebayes.
将指定的值存储为字符向量或函数句柄。
该表描述用于分数转换的可用内置函数。
价值 | 描述 |
---|---|
“doublelogit” |
1 /(1 +e-2x) |
'invlogit' |
日志(x/ (1 -x)) |
“ismax” |
将分数最大的班级的分数设置为1,并将所有其他班级的分数设置为0 |
分对数的 |
1 /(1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
'签名' |
-1 for.x< 0 0x= 0 1x> 0 |
'对称' |
2x- 1 |
'ymmetricismax' |
设置得分与得分最高的类1,并设置分数为所有其他类-1 |
'symmetriclogit' |
2 / (1 +e- - - - - -x) - 1 |
对于一个MATLAB®函数或定义的函数输入其功能句柄;例如,'scoretransform',@函数
,地点:
函数
接受A.n——- - - - - -K矩阵(原始分数),并返回相同大小的矩阵(转换后的分数)。
n是观察的次数,和行数j矩阵中包含观察的类分数j.
K是类数,和列数吗k是类类名(
.k
)
如果你转换传统训练的模型来创建Mdl
,ScoreTransform
由传统训练模型的同余性来确定。
默认的“没有”
指定返回后验类概率。
数据类型:字符
|function_handle
DistributionNames
- - - - - -预测分布“正常”
(默认)|字符向量的单元格阵列此属性是只读的。
预测器分布,指定为“正常”
或者一个1-by-NumPredictors
包含所有单元格的单元格数组“正常”
.条件分布P(xj|ck)为正态(高斯态),为j= 1,...,NumPredictors
和每个k∈一会
.
数据类型:字符
|串
|细胞
DistributionParameters
- - - - - -分布参数估计此属性是只读的。
分布参数估计,指定为单元阵列。DistributionParameters
是一个K——- - - - - -NumPredictors
单元格阵列,其中K是类和单元格的数量(k
,j
)包含预测器实例的分布参数估计j
在课堂上k
.行的顺序与属性中类的顺序相对应一会
,列的顺序与预测器数据中预测器的顺序相对应。
如果类k
没有对预测器的观察吗j
,然后DistributionParameters {
是空的(k
,j
}[]
).
因为所有的预测器分布,由DistributionNames
财产,是“正常”
,每个细胞DistributionParameters
是一个2 × 1的数字向量,其中第一个元素是样本均值,第二个元素是样本标准差。
数据类型:细胞
IsWarm
- - - - - -标志表示模型是否跟踪性能指标假
|真正的
标志,指示增量模型是否跟踪性能指标,指定为假
或真正的
.
增量模型Mdl
是温暖(IsWarm
就变成了真正的
)时,增量拟合函数同时执行以下两种操作:
适合增量模型MetricsWarmupPeriod
观察。
过程MaxNumClasses
班,或在指定的所有类名一会
名称-值参数。
价值 | 描述 |
---|---|
真正的 |
增量模型Mdl 是温暖的。因此,updateMetrics 和updateMetricsAndFit 跟踪性能指标指标 的属性Mdl . |
假 |
updateMetrics 和updateMetricsAndFit 不要跟踪性能指标。 |
数据类型:逻辑
MetricsWarmupPeriod
- - - - - -在跟踪性能指标之前,需要进行大量的观察1000
(默认)|非负整数MetricsWindowSize
- - - - - -用于计算窗口性能指标的观察次数200
(默认)|正整数适合 |
培训天真贝叶斯增量学习的分类模型 |
updateMetricsAndFit |
在给定新数据和训练模型的情况下,更新朴素贝叶斯分类模型的增量学习性能指标 |
updateMetrics |
更新朴素贝叶斯分类模型的性能指标,用于给定新数据的增量学习 |
logp |
幼稚贝叶斯分类模型的日志无条件概率密度递增学习 |
损失 |
批数据增量学习中朴素贝叶斯分类模型的损失 |
预测 |
预测基于增量学习的朴素贝叶斯分类模型对新观测值的响应 |
要创建用于增量学习的朴素贝叶斯分类模型,您必须指定的最少信息量就是您希望模型能够经历的最大类数('maxnumclasses'
名称-值参数)。当您使用增量拟合函数将模型与传入的数据批进行拟合时,模型将在其中收集新经历的类一会
财产。如果指定的预期最大类数不准确,则会出现以下选项之一:
在增量拟合函数达到预期的最大类数之前,模型是冷的。因此,updateMetrics
和updateMetricsAndFit
功能不测量性能指标。
如果类的数量超过最大预期,则增量拟合函数会发出错误。
这个例子展示了当您只知道数据中期望的最大类数时,如何创建用于增量学习的朴素贝叶斯分类模型。此外,该示例还说明了在示例中,增量拟合函数在早期和晚期经历所有预期类时的结果。
在这个例子中,考虑培训设备,以预测受试者无论是坐着,站立,行走,跑步,或者是基于对受试者测定生物特征数据跳舞。因此,该装置具有最大5类,从中选择。
样本早期的期望最大类数
创建一个用于多类学习的增量朴素贝叶斯学习器。指定数据的最大5类。
MdlEarly = incrementalClassificationNaiveBayes('maxnumclasses'5)
MdlEarly = incrementalClassificationNaiveBayes IsWarm: 0 Metrics: [1×2 table] ClassNames: [1×0 double] ScoreTransform: 'none' DistributionNames: 'normal' DistributionParameters:{}属性,方法
MdlEarly
是一个incrementalclassificanivebayes.
模型对象。它的所有属性都是只读的。
MdlEarly
必须符合数据,然后才能使用它来执行任何其他操作。
加载人类活动数据集。随机播放数据。
负载humanactivityn =元素个数(actid);rng (1);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
关于数据集的详细信息,请输入描述
在命令行。
通过使用适合的增量模型训练数据updateMetricsAndfit
函数。通过一次处理50个观察的大块来模拟数据流。在每一次迭代:
过程50观察。
用拟合传入观察的新一个覆盖以前的增量模型。
商店 (第一堂课中第一个预测变量的平均值)、累积指标和窗口指标,以查看它们在增量学习过程中是如何发展的。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);MC = Array2table(零(nchunk,2),'variablenames', (“累积”“窗口”]);mu1 = zeros(nchunk,1);%渐进学习为n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;MdlEarly = updateMetricsAndFit (MdlEarly X (idx:), Y (idx));mc {j:} = MdlEarly。指标{“MinimalCost”,:};MU1(J + 1)= {MdlEarly.DistributionParameters 1,1}(1);结束
MdlEarly
是一个incrementalclassificanivebayes.
模型对象对流中的所有数据进行训练。在增量学习过程中以及模型热身后,updateMetricsAndFit
检查模型在传入观测中的表现,然后将模型与观测相吻合。
看看绩效指标和 在训练中进化,把它们放在不同的次要情节上。
图;次要情节(2,1,1)情节(mu1) ylabel (“\ mu_{11}”) xlim ([0 nchunk]);副区(2,1,2)H =情节(mc.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)参照线(MdlEarly。指标WarmupPeriod/numObsPerChunk,'R-'。);传奇(h, mc.Properties.VariableNames)包含(“迭代”)
这个情节表明updateMetricsAndFit
以下:
适合 在所有增量学习迭代
只有指标预热期后,计算性能指标。
在每次迭代期间计算累积度量。
处理500周的观察之后计算所述窗口的指标。
在样本中,预期的最大类数
创建于增量学习的目的不同的朴素贝叶斯模型。
MdlLate = incrementalClassificationNaiveBayes('maxnumclasses'5)
MdlLate = incrementalClassificationNaiveBayes IsWarm: 0 Metrics: [1×2 table] ClassNames: [1×0 double] ScoreTransform: 'none' DistributionNames: 'normal' DistributionParameters:{}属性,方法
将所有标记为第5类的观察结果移到样本的末尾。
idx5 = Y == 5;Xnew = [X (~ idx5,:);X (idx5:)];Ynew = [Y(~idx5);Y(idx5)];
如前所述,拟合增量模型并绘制结果。
(nchunk mcnew = array2table (0, 2),'variablenames', (“累积”“窗口”]);mu1new = zeros(nchunk,1);为n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;MdlLate = updateMetricsAndFit (MdlLate Xnew (idx:), Ynew (idx));mcnew {j:} = MdlLate。指标{“MinimalCost”,:};mu1new(j + 1) = MdlLate.DistributionParameters{1,1}(1);结束图;子图(2,1,1)绘图(mu1new)ylabel(“\ mu_{11}”) xlim ([0 nchunk]);subplot(2,1,2) h = plot(mcnew.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)参照线(MdlLate。指标WarmupPeriod/numObsPerChunk,'R-'。);XLINE(SUM(〜IDX5)/ numobsperchunk,'G-'。);传奇(h, mcnew.Properties.VariableNames“位置”,“最佳”)包含(“迭代”)
的updateMetricsAndFit
函数在增量学习过程中进行训练,但是函数在模型符合所有期望的类数量之后(底部子图中的绿色垂线)开始跟踪性能指标。
这个示例展示了如何在知道数据中所有类名的情况下创建增量朴素贝叶斯学习器。
考虑培训设备以预测基于在主题上测量的生物识别数据坐,站立,行走,运行或跳舞,并且您知道类名称将1到5映射到活动。
创建一个用于多类学习的增量朴素贝叶斯学习器。指定类名。
一会= 1:5;Mdl = incrementalClassificationNaiveBayes (“类名”类名)
Mdl = incrementalClassificationNaiveBayes IsWarm: 0 Metrics: [1x2 table] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' DistributionNames: 'normal' DistributionParameters: {5x0 cell}属性,方法
Mdl
是一个incrementalclassificanivebayes.
模型对象。它的所有属性都是只读的。
Mdl
必须符合数据,然后才能使用它来执行任何其他操作。
加载人类活动数据集。随机播放数据。
负载humanactivityn =元素个数(actid);rng (1);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
关于数据集的详细信息,请输入描述
在命令行。
通过使用适合的增量模型训练数据updateMetricsAndfit
函数。通过一次处理50个观察的大块来模拟数据流。在每一次迭代:
过程50观察。
用拟合传入观察的新一个覆盖以前的增量模型。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);%渐进学习为n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetricsAndFit (Mdl X (idx:), Y (idx));结束
除了指定类名的最大数目外,还可以通过指定一个指标预热期来准备一个增量朴素贝叶斯学习器,在此期间updateMetricsAndFit
功能仅适合模型。指定度量窗口大小为500个观察。
加载人类活动数据集。随机播放数据。
负载humanactivityn =元素个数(actid);idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
关于数据集的详细信息,请输入描述
在命令行。
为二元分类创建一个增量线性模型。模型配置如下:
指定5000个观察值的指标预热周期。
指定度量窗口大小为500个观察。
跟踪误差分类和最小的成本来衡量模型的性能。
Mdl = incrementalClassificationNaiveBayes ('maxnumclasses'5,'MetricsWarmupPeriod',5000,......“MetricsWindowSize”, 500,“指标”, (“classiferror”“麦克塞特”])
Mdl = incrementalClassificationNaiveBayes IsWarm: 0 Metrics: [2x2 table] ClassNames: [1x0 double] ScoreTransform: 'none' DistributionNames: 'normal' DistributionParameters:{}属性,方法
Mdl
是一个incrementalclassificanivebayes.
配置为增量学习模型对象。
将增量模型与其余数据进行拟合updateMetricsAndfit
函数。在每一次迭代:
通过处理50个观察数据块来模拟数据流。
用拟合传入观察的新一个覆盖以前的增量模型。
商店 (第一堂课中第一个预测变量的标准偏差)、累积指标和窗口指标,以查看它们在增量学习中如何发展。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),'variablenames', (“累积”“窗口”]);MC = Array2table(零(nchunk,2),'variablenames', (“累积”“窗口”]);sigma11 = 0 (nchunk, 1);%增量式拟合为n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetricsAndFit (Mdl X (idx:), Y (idx));ce {j:} = Mdl。指标{“ClassificationError”,:};mc {j:} = Mdl。指标{“MinimalCost”,:};sigma11(j + 1) = Mdl.DistributionParameters{1,1}(2);结束
IncrementalMdl
是一个incrementalclassificanivebayes.
模型对象对流中的所有数据进行训练。在增量学习过程中以及模型热身后,updateMetricsAndFit
检查模型在传入观测中的表现,然后将模型与观测相吻合。
看看绩效指标和 在训练中进化,把它们放在不同的次要情节上。
图;子图(2,2,1)绘图(Sigma11)Ylabel(“\ sigma_{11}”) xlim ([0 nchunk]);xline(mdl.metricswarmupperiod / numobsperchunk,'R-'。);包含(“迭代”) subplot(2,2,2) h = plot(ce.Variables);xlim ([0 nchunk]);ylabel (分类错误的)xline(mdl.metricswarmupperiod / numobsperchunk,'R-'。);传奇(h, ce.Properties.VariableNames)包含(“迭代”) subplot(2,2,3) h = plot(mc.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)xline(mdl.metricswarmupperiod / numobsperchunk,'R-'。);传奇(h, mc.Properties.VariableNames)包含(“迭代”)
这个情节表明updateMetricsAndFit
以下:
适合 在所有增量学习迭代
只有指标预热期后,计算性能指标。
在每次迭代期间计算累积度量。
处理500周的观察(10次迭代)后计算该窗口的指标。
通过使用培训一个天真的贝母模型进行多牌分类fitcnb
,将其转换为一个增量学习,跟踪它的性能,它适合流数据。延续传统的培训方式,以增量学习。
加载和预处理数据
加载人类活动数据集。随机播放数据。
负载humanactivityrng (1);%的再现性n =元素个数(actid);idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
关于数据集的详细信息,请输入描述
在命令行。
假设受试者空闲时收集的数据(Y
>2
)的质量是物体移动时的两倍。创建一个权重变量,2表示从空闲对象收集的观察数据,1表示移动对象。
W = ones(n,1) + (Y < 3);
训练朴素贝叶斯模型
将多类分类的朴素贝叶斯模型拟合到一半数据的随机样本中。
idxtt = randsample([true false],n,true);ttmdl = fitcnb(x(idxtt,:),y(idxtt),“重量”,W(idxtt))
TTMdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' NumObservations: 12053 DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell}属性,方法
TTMdl
是一个ClassificationNaiveBayes
模型对象表示传统训练的朴素贝叶斯模型。
转换受训模型
将传统训练的朴素贝叶斯模型转换为朴素贝叶斯分类模型进行增量学习。
IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1 Metrics: [1x2 table] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell}属性,方法
单独跟踪性能指标和拟合模型
通过对数据的其余部分进行增量学习updateMetrics
和适合
功能。一次处理50个观测数据,模拟一个数据流。在每一次迭代:
调用updateMetrics
更新给予意见的传入块模型的累积和窗口分类错误。覆盖以前的增量模型,以更新的损失指标
财产。注意,该函数并不使模型适合数据块——数据块是模型的“新”数据。设置观测权值。
调用适合
使模型与观测数据相吻合。覆盖之前的增量模型以更新模型参数。设置观测权值。
存储第一类的第一个预测变量的最小代价和均值 .
%预先配置idxil =〜idxtt;零=总和(idxil);numObsPerChunk = 50;nchunk =地板(NIL / numObsPerChunk);MC = Array2table(零(nchunk,2),'variablenames', (“累积”“窗口”]);mu11 = [IncrementalMdl.DistributionParameters {1} (1);0 (nchunk 1)];自= X (idxil:);Yil = Y (idxil);会= W (idxil);%增量式拟合为J = 1:nchunk ibegin =分钟(零,numObsPerChunk *(J-1)+ 1);IEND =分钟(零,numObsPerChunk * j)的;idx = ibegin: iend;IncrementalMdl = updateMetrics(IncrementalMdl,可可西里(IDX,:),YIL(IDX),......“重量”会(idx));mc {j:} = IncrementalMdl。指标{“MinimalCost”,:};IncrementalMdl =拟合(IncrementalMdl,可可西里(IDX,:),YIL(IDX),“重量”会(idx));mu11(j + 1)= increntmentalmdl.distributionParameters {1,1}(1);结束
IncrementalMdl
是一个incrementalclassificanivebayes.
模型对象对流中的所有数据进行训练。
或者,您可以使用updateMetricsAndFit
更新给定新数据块的模型的性能指标,然后使模型适合于数据。
绘制性能指标和估计系数的跟踪图 .
图;子图(2,1,1)H = Plot(MC.Variables);xlim ([0 nchunk]);ylabel (“最小成本”) legend(h,mc.Properties.VariableNames) subplot(2,1,2) plot(mu11) ylabel(“\ mu_11”) xlim ([0 nchunk]);包含(“迭代”)
累积损失稳定并逐渐降低,而窗户损耗跳跃。
开始突然变化,然后逐渐平稳适合
流程更块。
增量学习,或在线学习,是机器学习的一个分支,涉及处理来自数据流的传入数据,可能对预测变量的分布、预测或目标函数的方面(包括调优参数值)或观察值是否被标记的知识很少或没有。增量学习与传统机器学习不同,传统机器学习有足够的标记数据来适应模型,执行交叉验证来调整超参数,并推断预测器分布。
给定传入的观察,增量学习模型以下列任何一种方式处理数据,但通常按以下顺序:
预测标签。
测量预测性能。
检查模型中的结构中断或漂移。
使模型与传入的观测值相符。
的updateMetrics
和updateMetricsAndFit
功能跟踪模型性能指标(“指标”
)的新数据时,增量模型温暖(IsWarm
属性)。增量模型是暖时适合
或updateMetricsAndFit
执行以下两个操作:
适合增量模型MetricsWarmupPeriod观察结果,即度量预热期.
过程MaxNumClasses
班,或在指定的所有类名一会
名称-值参数。
的指标
增量模型的属性将每个性能指标的两种形式存储为表的变量(列),累积
和窗
,每行都有单独的指标。当增量模型为暖时,updateMetrics
和updateMetricsAndFit
以下列频率更新度量标准:
累积
-这些函数计算自模型性能跟踪开始以来的累积度量。每次调用函数时,函数都会更新指标,并基于所提供的整个数据集进行计算。
窗
-函数根据窗口内的所有观察值计算度量值MetricsWindowSize名称-值对的论点。MetricsWindowSize
还确定软件更新的频率窗
指标。例如,如果MetricsWindowSize
为20时,函数根据所提供数据中的最近20个观察值计算度量值(X((end - 20 + 1):end,:)
和Y((结束 - 20 + 1):结束)
).
跟踪窗口内性能指标的增量函数使用以下过程:
对于每个指定的度量,存储一个长度的缓冲区MetricsWindowSize
以及观察权值的缓冲。
使用基于批量传入观察数据的模型性能填充指标缓冲区的元素,并将相应的观察权重存储在权重缓冲区中。
当缓冲区被填满时,覆盖Mdl.Metrics.Window
在指标窗口中使用加权平均性能。如果在函数处理一批观察值时缓冲区被填满,则最新传入的MetricsWindowSize
观测数据进入缓冲区,最早的观测数据从缓冲区中删除。例如,假设MetricsWindowSize
为20时,指标缓冲区有10个来自先前处理的批处理的值,15个值是传入的。为了组成长度为20的窗口,函数使用了来自15个传入观测的测量值和来自前一批的最新5个测量值。
你点击一个链接对应于这个MATLAB命令:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。