将Naive Bayes分类模型转换为增量学习者
返回一个天真的贝叶斯分类模型增量学习那increntmentalmdl.
= incrementallearner(MDL.
的)increntmentalmdl.
,使用传统训练的朴素贝叶斯分类模型的封锁,MDL.
。因为它的财产价值反映了从中获得的知识MDL.
那increntmentalmdl.
可以预测标签给出新的观察,它是温暖的,这意味着跟踪其预测性能。
使用由一个或多个名称值对参数指定的其他选项。有些选择要求你训练increntmentalmdl.
= incrementallearner(MDL.
那名称,价值
的)increntmentalmdl.
在跟踪预测性能之前。例如,'metricswarmupperiod',50,'metricswindowsize',100
在跟踪性能度量之前,指定50个观测的初步增量训练期,并在更新性能度量之前指定处理100观察。
用使用训练天真的贝母模型fitcnb.
,然后将其转换为增量学习者。
加载和预处理数据
加载人类活动数据集。
加载人类活动
有关数据集的详细信息,请输入描述
在命令行。
火车天真贝叶斯模型
将天真的贝母分类模型适合整个数据集。
ttmdl = fitcnb(feat,actid);
TTMDL.
是A.ClassificationniveBayes.
代表传统训练的朴素贝叶斯分类模型的模型对象。
转换训练的模型
转换传统训练的朴素贝叶斯分类模型,以获得增量学习。
increntmentalmdl = incrementallearner(ttmdl)
increntmentalmdl = incrementallassificationnaiveBayes isWarm:1度量:[1x2表] ClassNames:scoreTransform:'none'分发Name:{1x60 Cell}分发参数:{5x60 Cell}属性,方法
increntmentalmdl.
是一个incrementalclassificaiveBayes.
使用Naive Bayes分类为增量学习准备的模型对象。
这incrementallearner.
函数通过将学习的条件预测器分发参数与其他信息传递给它来初始化增量学习者TTMDL.
从训练数据中提取。
increntmentalmdl.
温暖 (温暖
是1
),这意味着增量学习功能可以跟踪性能指标并进行预测。
预测回应
从转换传统训练的模型创建的增量学习者可以在不进一步处理的情况下生成预测。
预测使用两种模型的所有观察分类评分(类后验概率)。
[〜,ttscores] =预测(ttmdl,feat);[〜,Ilcores] =预测(increntmentalmdl,feat);比较=常态(TTScores - ILCores)
比较= 0.
模型生成的分数之间的差异为0。
使用训练有素的朴素贝叶斯模型来初始化增量学习者。通过指定度量预热期,准备增量学习者,在此期间updatemetricsandfit.
功能仅适合模型。指定度量窗口大小为500个观察。
加载人类活动数据集。
加载人类活动
有关数据集的详细信息,请输入描述
在命令行
随机将数据分成两半:前半部分用于培训一个传统上的型号,而下半部分为增量学习。
n = numel(actid);RNG(1)再现性的百分比cvp = cvpartition(n,'坚持',0.5);idxtt =培训(CVP);IDXIL =测试(CVP);数据的%上半年xtt = feat(idxtt,:);ytt = actid(idxtt);数据的%下半部分xil = feat(idxil,:);是= actid(idxil);
将天真的贝母模型适合于数据的上半年。
ttmdl = fitcnb(xtt,ytt);
将传统培训的朴素贝叶斯模型转换为Naive Bayes分类模型,用于增量学习。指定以下内容:
2000年观测的绩效度量预热期
度量窗口大小为500观察
使用分类误差和最小成本来测量模型的性能
increntmentalmdl = increntmentallerner(ttmdl,'metricswarmupperiod',2000年,'metricswindowsize'500,......'指标',[“classiferror”“合页”]);
将增量模型适合使用数据的下半部分updatemetricsandfit.
功能。在每次迭代时:
一次通过处理20观察来模拟数据流。
用适合传入观察的新一个覆盖以前的增量模型。
将第二个预测器的平均值存储在第一类内 ,累积度量和窗口指标,以了解它们在增量学习期间的发展方式。
%prelocation.nil = numel(yil);numobsperchunk = 20;nchunk = ceil(nil / numobsperchunk);CE = Array2table(零(nchunk,2),'variablenames',[“累积”“窗户”]);MC = Array2table(零(nchunk,2),'variablenames',[“累积”“窗户”]);mu12 =零(nchunk,1);%增量拟合为了j = 1:nchunk ibegin = min(nil,numobsperchunk *(j-1)+ 1);IEND = min(nil,numobsperchunk * j);IDX = IBEGIN:IEND;increntmentalmdl = updatemetricsandfit(increntmentalmdl,xil(idx,:),是(idx));ce {j ,:} = increntmentalmdl.metrics {“ClassificationError”,:};mc {j ,:} = increntmentalmdl.metrics {“很小”,:};mu12(j + 1)= increntmentalmdl.distributionParameters {1,2}(1);结尾
increntmentalmdl.
是一个incrementalclassificaiveBayes.
模型对象在流中的所有数据上培训。在增量学习期间和模型预热后,updatemetricsandfit.
检查模型对传入观察的性能,然后将模型适合该观察。
看看性能指标如何和 在训练期间演变,将它们绘制在单独的子尺上。
数字;子图(3,1,1)绘图(MU12)YLABEL('\ mu_ {12}')XLIM([0 nchunk]);Xline(increntmentalmdl.metricswarmupperiod / numobsperchunk,'r-。');子图(3,1,2)h = plot(ce.variables);XLIM([0 nchunk]);ylabel('分类错误')Xline(increntmentalmdl.metricswarmupperiod / numobsperchunk,'r-。');传奇(h,ce.properties.variablenames,'地点'那'西北')子图(3,1,3)h = plot(mc.variables);XLIM([0 nchunk]);ylabel('最小的成本')Xline(increntmentalmdl.metricswarmupperiod / numobsperchunk,'r-。');图例(h,mc.properties.variablenames,'地点'那'西北')Xlabel('迭代'的)
情节表明updatemetricsandfit.
是否有以下操作:
合身 在所有增量学习迭代期间。
仅计算度量预热期后计算性能指标。
在每次迭代期间计算累积度量。
处理500观察(25次迭代)后计算窗口指标。
因为数据由活动排序,所以平均值和性能度量定期突然地更改。
MDL.
-传统训练的幼稚贝叶斯模型,用于多款分类ClassificationniveBayes.
模型对象传统上训练的朴素贝叶斯模型,用于多种多组分类,指定为aClassificationniveBayes.
返回的模型对象fitcnb.
。存储在中的每个预测器变量的条件分布mdl.distributionnames.
,不能成为内核分布。
指定可选的逗号分离对名称,价值
论点。姓名
是参数名称和价值
是相应的价值。姓名
必须出现在引号内。您可以以任何顺序指定多个名称和值对参数name1,value1,...,namen,valuen
。
'metrics',[“classiferror”“mincost”,'metricswindowsize',100
指定跟踪错误分类率和最小成本,并在更新性能度量之前指定处理100观察。
指标
-在增量学习期间追踪模型性能指标“Mincost”
(默认)|“classiferror”
|弦矢量|功能手柄|细胞矢量|结构阵列|“binodeviance”
|“指数”
|“合页”
|“Logit”
|“二次”
|......模型性能指标在增量学习期间跟踪UpdateMetrics.
或者updatemetricsandfit.
函数,指定为内置丢失函数名称,字符串矢量名称,功能句柄(@metricname.
),功能阵列的函数处理阵列,或名称,功能处理或结构阵列的单元格矢量。
下表列出了内置丢失函数名称。您可以使用字符串向量指定多个。
姓名 | 描述 |
---|---|
“binodeviance” |
二项式偏差 |
“classiferror” |
分类错误 |
“指数” |
幂数 |
“合页” |
合页 |
“Logit” |
物流 |
'“Mincost” |
最小预期的错误分类成本(用于后验概率的分类分数) |
“二次” |
二次 |
有关内置损耗功能的更多详细信息,请参阅损失
。
例子:'metrics',[“classiferror”“mincost”]
要指定返回性能度量标准的自定义函数,请使用函数句柄表示法。该函数必须具有此表单:
度量= CustomMetric(C,S,成本)
输出参数公制
是一个N.-1个数字向量,其中每个元素是在学习周期期间由增量学习功能处理的数据中的相应观察的丢失。
您选择函数名称(定制
)。
C
是一个N.-经过-K.具有行的逻辑矩阵,指示相应观察所属的类,其中K.是课程的数量。列顺序对应于类顺序Classnames.
财产。创建C
通过设置C(
=P.
那问:
的)1
,如果观察
在课堂上P.
,对于指定数据中的每个观察。在行中设置其他元素问:
到P.
0.
。
S.
是一个N.-经过-K.预测分类分数的数字矩阵。S.
类似于分数
输出预测
,其中行对应于数据中的观察,并且列顺序对应于类顺序Classnames.
财产。s(
是观察的分类评分P.
那问:
的)
被分类为课堂P.
。问:
成本
是A.K.-经过-K.错误分类成本的数字矩阵。看看'成本'
名称值参数。
要指定多个自定义度量标准并为每个定义自定义名称,请使用结构阵列。要指定内置和自定义度量标准的组合,请使用单元格向量。
例子:'指标',struct('metric1',@ custommetric1,'metric2',@ custommetric2)
例子:'metrics',{@ custommetric1 @ compoemetric2'logit' struct('metric3',@ custommetric3)}
UpdateMetrics.
和updatemetricsandfit.
存储属性中的表中的指定指标increntmentalmdl.metrics.
。数据类型指标
确定表的行名称。
'指标' 价值数据类型 |
描述指标 属性行名称 |
例子 |
---|---|---|
字符串或字符向量 | 相应内置度量的名称 | 行名称“classiferror” 是“ClassificationError” |
结构阵列 | 字段名称 | 行名称struct('metric1',@ custommetric1) 是“metric1” |
功能句柄到存储在程序文件中的功能 | 功能名称 | 行名称@custommetric. 是“定制” |
匿名功能 | 定制_ , 在哪里 是指标 在指标 |
行名称@(c,s,成本)定制(C,S,成本)...... 是CustomMetric_1. |
有关性能指标选项的更多详细信息,请参阅性能指标。
数据类型:char
|细绳
|塑造
|细胞
|function_handle.
metricswarmupperiod.
-在跟踪性能指标之前的观察数适合1000
(默认)|非负整数MetricsWindowsize.
-用于计算窗口性能指标的观察次数200.
(默认)|正整数increntmentalmdl.
- 天真贝叶斯渐进学习的分类incrementalclassificaiveBayes.
模型对象朴素的贝叶斯渐进学习分类模型,作为一个返回incrementalclassificaiveBayes.
模型对象。increntmentalmdl.
还配置为给定新数据生成预测(请参阅预测
)。
初始化increntmentalmdl.
为了增量学习,incrementallearner.
传递属性的值MDL.
在这张表中是一致的财产increntmentalmdl.
。
财产 | 描述 |
---|---|
类别物质精神 |
多变量多项式预测器水平,长度等于的单元阵列 |
分类预算 |
分类预测索引,正整数的矢量 |
Classnames. |
二进制分类类标签,名称列表 |
成本 |
错误分类成本,数字矩阵 |
分布Name. |
预测器变量的条件分布的名称,每个单元格包含的单元格数组'普通的 或者'mvmn' 或者价值'Mn' |
分发参数 |
预测变量的条件分布的参数值,长度2个数字向量的单元格数组(有关详细信息,请参阅分发参数 的) |
numpredictors. |
预测器数量,正整数。 |
事先的 |
先前的类标签分布,数字矢量 |
scoretransform. |
分数转换函数,名称或功能句柄。 |
y |
提供给的类标签fitcnb. 要计算每个类重量,用于增量学习,存储为标签数组(参见y 的) |
增量学习, 或者在线学习,是有关从数据流处理传入数据的机器学习的分支,可能仅提供了对预测变量的分布,预测或目标函数的方面的知识,或者包括调谐参数值),或者观察是否是观察标签。增量学习与传统机器学习的不同之处,其中有足够的标签数据可适合模型,执行交叉验证以调整超级参数,然后推断预测器分布。
给定进货观察,增量学习模型以以下任何方式处理数据,但通常按此顺序处理数据:
预测标签。
衡量预测性能。
检查模型中的结构中断或漂移。
将模型适合入射观察。
这UpdateMetrics.
和updatemetricsandfit.
功能轨道模型性能指标('指标'
)来自增量模型的新数据温暖的(温暖
财产)。增量模型是温暖的合身
或者updatemetricsandfit.
执行以下两个操作:
适合增量模型metricswarmupperiod.观察结果,即度量预热期。
过程maxnumclasses.
课程或所有类名指定Classnames.
名称值参数。
这指标
增量模型的属性将每个性能度量的两种形式作为表格(列)的变量(列)累积
和窗户
,带有行中的个人度量。当增量模型温暖时,UpdateMetrics.
和updatemetricsandfit.
更新以下频率的指标:
累积
- 自模型性能跟踪开始以来,函数计算累积度量。每次调用函数并基于整个提供的数据集上计算计算时,函数更新指标。
窗户
- 函数基于由窗口内确定的所有观测计算指标MetricsWindowsize.名称值对参数。MetricsWindowsize.
还确定软件更新的频率窗户
指标。例如,如果MetricsWindowsize.
是20,函数基于所提供的数据中的最后20个观察计算度量(x((结束 - 20 + 1):结束,:)
和Y((结束 - 20 + 1):结束)
)。
跟踪窗口中性能指标的增量函数使用以下过程:
对于每个指定的度量标准,存储长度的缓冲区MetricsWindowsize.
和观察权重的缓冲。
基于批量的传入观察,使用模型性能填充度量缓冲区的元素,并在权重缓冲区中存储相应的观察权重。
填充缓冲区时,覆盖mdl.metrics.window.
在度量窗口中加权平均性能。如果在函数处理一批观察时,缓冲区过满,则最新的传入MetricsWindowsize.
观察进入缓冲区,并从缓冲区中删除最早的观察。例如,假设MetricsWindowsize.
为20,度量缓冲区具有来自先前处理的批处理的10个值,并且15个值是传入的。要撰写长度20窗口,该功能使用来自15个来电观测的测量和来自上一个批量的最新5测量。
您单击了与此MATLAB命令对应的链接:
在MATLAB命令窗口中输入它来运行命令。Web浏览器不支持MATLAB命令。金宝app
您还可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获得最佳网站性能。其他MathWorks国家网站未优化您所在地的访问。