updateMetricsAndFit
在朴素贝叶斯更新性能指标增量学习分类模型给出新的数据和训练模式
描述
给定的流数据,updateMetricsAndFit
第一次评估的性能配置的朴素贝叶斯分类模型的增量学习(incrementalClassificationNaiveBayes
对象)通过调用updateMetrics
在输入数据。然后updateMetricsAndFit
适合的模型,通过调用数据适合
。换句话说,updateMetricsAndFit
执行prequential评价因为它对待每个传入的数据作为测试集,并跟踪性能指标测量累计,在指定的窗口[1]。
updateMetricsAndFit
提供了一个简单的方法来更新模型性能指标和训练模型在每个块的数据。或者,您可以分别通过调用执行的操作updateMetrics
然后适合
允许更大的灵活性(例如,您可以决定你是否需要训练一块的模型根据其性能数据)。
返回一个朴素贝叶斯分类模型的增量学习Mdl
= updateMetricsAndFit (Mdl
,X
,Y
)Mdl
,这是输入增量学习的朴素贝叶斯分类模型Mdl
以下修改:
updateMetricsAndFit
测量模型性能的预测和响应数据,X
和Y
分别。当输入模型温暖的(Mdl.IsWarm
是真正的
),updateMetricsAndFit
覆盖之前的计算指标,存储在指标
财产,用新的价值观。否则,updateMetricsAndFit
商店南
值指标
代替。updateMetricsAndFit
符合修改后的模型输入数据通过更新条件后每个预测变量的平均值和标准偏差,考虑到类,并存储新估计,其他配置,在输出模型Mdl
。
例子
更新性能指标和训练数据流模型
创建一个朴素贝叶斯分类模型的增量学习通过调用incrementalClassificationNaiveBayes
并指定最多5类的数据。
Mdl = incrementalClassificationNaiveBayes (“MaxNumClasses”5)
Mdl = incrementalClassificationNaiveBayes IsWarm: 0指标:[1 x2表]一会:[1 x0双]ScoreTransform:“没有一个”DistributionNames:“正常”DistributionParameters:{}属性,方法
Mdl
是一个incrementalClassificationNaiveBayes
模型对象。所有的属性是只读的。
Mdl
必须适合数据之前,您可以使用它来执行任何其他操作。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
实现增量学习在每个迭代中执行以下操作:
模拟数据流处理一块50的观察。
覆盖前面的增量式模型与一个新安装的观察。
存储条件意味着在第一节课的第一个预测 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu11 = 0 (nchunk, 1);%增量式拟合为j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1);iend = min (n, numObsPerChunk * j);idx = ibegin: iend;Mdl = updateMetricsAndFit (Mdl X (idx:), Y (idx));mc {j:} = Mdl.Metrics {“MinimalCost”,:};mu11 (j + 1) = Mdl.DistributionParameters {1 1} (1);结束
现在,Mdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合观测模型。
性能指标和 进化在训练,放到单独的瓷砖。
t = tiledlayout (2, 1);nexttile情节(mu11) ylabel (“\ mu_ {11}”)xlim ([0 nchunk]) nexttile h =情节(mc.Variables);xlim ([0 nchunk]) ylabel (“最小成本”)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,r -。传奇(h, mc.Properties.VariableNames)包含(t)“迭代”)
情节表明updateMetricsAndFit
执行以下操作:
适合 在增量学习迭代。
计算后的性能指标度量预热期。
在每一次迭代计算累积度量。
计算窗口指标200年处理后观察(4迭代)。
指定观察权重
火车通过使用朴素贝叶斯分类模型fitcnb
,将它转换成一个增量学习,跟踪其性能数据流数据并把它在一个电话。指定观察权重。
加载和数据预处理
载入人类活动数据集。随机洗牌数据。
负载humanactivityrng (1)%的再现性n =元素个数(actid);idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
假设一个固定的数据主题(Y
< = 2)双质量的数据从一个移动的主题。创建一个重量变量分配一个重量2从固定观察主体和1到一个移动的主题。
W = 1 (n, 1) + (Y < = 2);
朴素贝叶斯分类模型进行训练
适合朴素贝叶斯分类模型的随机样本数据的一半。
idxtt = randsample((真假),n, true);TTMdl = fitcnb (X (idxtt:), Y (idxtt),“重量”W (idxtt))
TTMdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors::[]类名(1 2 3 4 5)ScoreTransform:“没有一个”NumObservations: 12053 DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法
TTMdl
是一个ClassificationNaiveBayes
模型对象代表了传统训练朴素贝叶斯分类模型。
转换训练模型
传统训练模型转换为一个朴素贝叶斯分类模型的增量学习。指定跟踪错误分类错误率在增量学习。
IncrementalMdl = incrementalLearner (TTMdl,“指标”,“classiferror”)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1指标:[2 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法
IncrementalMdl
是一个incrementalClassificationNaiveBayes
模型。因为类名称中指定IncrementalMdl.ClassNames
必须的,标签在增量学习中遇到IncrementalMdl.ClassNames
。
跟踪性能指标和模型
对其余的数据执行增量学习使用updateMetricsAndFit
函数。在每一次迭代:
模拟数据流处理50观测一次。
调用
updateMetricsAndFit
更新模型的累积和窗口性能指标的输入块的观察,然后适应模型数据。覆盖前面的增量式模型与一个新的。指定观察权重。存储错误分类错误率。
%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);自= X (idxil:);Yil = Y (idxil);会= W (idxil);%增量式拟合为j = 1: nchunk ibegin = min (nil, numObsPerChunk * (j - 1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;IncrementalMdl = updateMetricsAndFit (IncrementalMdl自(idx:), Yil (idx),…“重量”会(idx));mc {j:} = IncrementalMdl.Metrics {“ClassificationError”,:};结束
现在,IncrementalMdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。
创建一个跟踪错误分类错误率的情节。
h =情节(mc.Variables);xlim ([0 nchunk]) ylabel (分类错误的传奇(h, mc.Properties.VariableNames)包含(“迭代”)
累计损失最初跳跃,但稳定在0.05,而窗口失去跳跃在整个培训。
输入参数
Mdl
- - - - - -朴素贝叶斯分类模型的增量学习
incrementalClassificationNaiveBayes
模型对象
朴素贝叶斯分类模型的增量学习测量的性能适合数据,指定为一个incrementalClassificationNaiveBayes
模型对象。您可以创建Mdl
直接或通过转换支持,传统上使用训练有素的机器学习模型金宝appincrementalLearner
函数。更多细节,请参阅相应的引用页面。
如果Mdl.IsWarm
是假
,updateMetricsAndFit
没有跟踪的性能模型。更多细节,请参阅性能指标。
X
- - - - - -块的预测数据
浮点矩阵
块的测量模型的性能预测数据,然后适应模型,指定为一个n——- - - - - -Mdl.NumPredictors
浮点矩阵。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行)j
)X
。
请注意
如果Mdl.NumPredictors
= 0,updateMetricsAndFit
推断预测的数量X
,并设置相应的属性的输出模型。否则,如果流数据中预测变量的数量变化Mdl.NumPredictors
,updateMetricsAndFit
一个错误的问题。
数据类型:单
|双
Y
- - - - - -块的标签
分类数组|字符数组|字符串数组|逻辑向量|浮点矢量|单元阵列的特征向量
块标签测量模型的性能,然后适应模型,指定分类,字符,或字符串数组;逻辑或浮点矢量;或细胞的特征向量。
观察标签的长度Y
和观察的数量X
必须是相等的;Y (
观察的标签吗j(行)j
)X
。
updateMetricsAndFit
问题时一个错误或满足这两个条件:
Y
包含一个新的标签和类的最大数量已经达到(参见MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。的
一会
输入模型的属性Mdl
非空的,数据类型的Y
和Mdl.ClassNames
是不同的。
数据类型:字符
|字符串
|细胞
|分类
|逻辑
|单
|双
请注意
如果一个观察(预测或标签)或重量包含至少一个失踪(南
)的值,updateMetricsAndFit
忽略了观察。因此,updateMetricsAndFit
使用不到n观察计算模型性能和创建一个更新模型,n观察的数量吗X
。
输出参数
Mdl
——更新朴素贝叶斯分类模型的增量学习
incrementalClassificationNaiveBayes
模型对象
更新的朴素贝叶斯分类模型的增量学习,作为一个增量学习模型对象返回相同的数据类型作为输入模型Mdl
,incrementalClassificationNaiveBayes
。
如果模型没有温暖,updateMetricsAndFit
不计算性能指标。结果,指标
的属性Mdl
是完全由南
值。如果模型是温暖的,updateMetricsAndFit
计算累积和窗口性能指标的新数据X
和Y
,覆盖相应的元素Mdl.Metrics
。更多细节,请参阅性能指标。
除了更新分布模型参数,updateMetricsAndFit
当执行以下操作Y
包含预期,但未经加工的,类:
如果你不指定所有预期通过使用类
一会
名称-值参数当您创建输入模型Mdl
使用incrementalClassificationNaiveBayes
,updateMetricsAndFit
:附加任何新的标签
Y
的尾巴Mdl.ClassNames
。扩展
Mdl.Cost
到一个c——- - - - - -c矩阵,c类的数量在吗Mdl.ClassNames
。由此产生的误分类代价矩阵是平衡的。扩展
Mdl.Prior
一个长度c一个更新的经验类分布的向量。
如果您指定所有预期类当您创建输入模型
Mdl
或将使用传统训练朴素贝叶斯模型incrementalLearner
,但你不指定一个误分类代价矩阵(Mdl.Cost
),updateMetricsAndFit
集误分类代价的类来处理1
和未处理的类南
。例如,如果updateMetricsAndFit
流程的第一个两个类可能的三个类,Mdl.Cost
是[0 1南;1 0南;1 1 0)
。
更多关于
Bag-of-Tokens模型
在bag-of-tokens模型中,预测的价值j出现次数非负的令牌j在观察。类别的数量(箱)多项式模型是不同的令牌的数量(预测)。
算法
正态分布估计
如果预测变量j
有条件正态分布(见DistributionNames
属性),软件符合该职业专用分布到数据通过计算加权平均数和偏见(最大似然)估计的加权标准差。为每一个类k:
预测的加权平均数j是
在哪里w我是观察的重量吗我。软件可实现重量在一个类,这样他们的先验概率和类。
加权标准差的无偏估计量的预测j是
估计概率多项式分布
如果所有的预测变量组成一个条件多项式分布(见DistributionNames
属性),软件符合分配使用Bag-of-Tokens模型。软件商店令牌的概率j
出现在课堂上k
在房地产DistributionParameters {
。与添加剂平滑[2],估计概率k
,j
}
地点:
出现次数加权的令牌是什么j在课堂上k。
nk在课堂观察的数量吗k。
是观察的重量吗我。软件可实现重量在一个类,这样他们和这个类的先验概率。
的总加权数在课堂上出现的所有令牌k。
多元多项式估计概率分布
如果预测变量j
有一个有条件的多元多项式分布(见DistributionNames
属性),软件遵循这个过程:
软件收集一系列独特的水平,存储排序列表
CategoricalLevels
,认为每个级别一个本。每个预测和类是一个独立,独立随机变量多项式。为每一个类k,软件计算的实例使用列表存储在每个分类级别
CategoricalLevels {
。j
}软件商店的概率预测
j
在课堂上k
有水平l在房地产DistributionParameters {
所有水平k
,j
}CategoricalLevels {
。与添加剂平滑[2],估计概率j
}地点:
这是预测的加权数量的观察j=l在课堂上k。
nk在课堂观察的数量吗k。
如果xij=l,否则和0。
是观察的重量吗我。软件可实现重量在一个类,这样他们和这个类的先验概率。
米j不同水平预测的数量吗j。
米k加权类的观测数量吗k。
性能指标
updateMetricsAndFit
跟踪模型性能指标,表的行指定的标签Mdl.Metrics
,从新的数据只有当增量模型温暖的(IsWarm
属性是真正的
)。如果你创建一个增量式模型使用
incrementalLearner
和MetricsWarmupPeriod
是0(默认incrementalLearner
),模型是温暖的在创建。否则,增量模型变得温暖增量后拟合函数,如
updateMetricsAndFit
,执行这两种操作:增量模型
Mdl.MetricsWarmupPeriod
观察,这是度量预热期。适合所有预期的增量式模型类(请参阅
MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。
Mdl.Metrics
商店两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,updateMetricsAndFit
在以下的频率更新指标:累积
——函数计算累积度量模型以来的跟踪性能。功能更新指标每次调用这个函数和基地提供的计算对整个数据集。窗口
——函数计算指标基于观测由在一个窗口Mdl.MetricsWindowSize
财产。Mdl.MetricsWindowSize
也决定了软件更新的频率窗口
指标。例如,如果Mdl.MetricsWindowSize
是20,函数计算指标根据过去的20的观察提供的数据(X((结束- 20 + 1):,:)
和Y((- 20 + 1)结束:结束)
)。增量跟踪性能指标的函数在一个窗口中使用以下过程:
存储一个缓冲区的长度
Mdl.MetricsWindowSize
为每个指定的度量,并存储一个缓冲区的观察权重。填充的元素指标基于批次缓冲与模型性能的观察,并存储相应的权重观察权重缓冲区。
当缓冲区满了,覆盖
Mdl.Metrics.Window
窗口的加权平均性能指标。如果缓冲区满溢函数处理一批观测时,最新的传入Mdl.MetricsWindowSize
观察输入缓冲区,和最早的观察从缓冲区中删除。例如,假设Mdl.MetricsWindowSize
是20,缓冲区的指标有10个值从一个以前批处理,和15值传入的。组成20窗口长度,函数使用的测量15传入的观察和最新5测量前一批。
观察权重
为每个条件预测分布,updateMetricsAndFit
计算加权平均和标准偏差。
如果之前类概率分布是已知的(换句话说,先验分布不是经验),updateMetricsAndFit
规范化观察权重总和之前类概率在各自的类。这个动作意味着默认观察权重前各自类的概率。
如果类概率分布是经验之前,软件可实现指定观察权重之和为1每次调用updateMetricsAndFit
。
引用
[1]Bifet,阿尔伯特·里卡德Gavalda,杰弗里·霍姆斯和Bernhard Pfahringer。机器学习的数据流在农业部实例。剑桥,麻州:麻省理工学院出版社,2007年。
[2]曼宁,克里斯托弗·D。,Prabhakar Raghavan, and Hinrich Schütze.信息检索概论》,纽约:剑桥大学出版社,2008年。
版本历史
介绍了R2021aR2021b:朴素贝叶斯增量拟合函数计算偏差(最大似然)标准差有条件地正常的预测变量
行为改变R2021b
从R2021b,朴素贝叶斯增量拟合函数适合
和updateMetricsAndFit
计算偏差(最大似然)估计的加权标准差在训练条件正常的预测变量。换句话说,对于每个类k,增量功能正常化的总和平方加权偏差的条件正常的预测xj在课堂上通过权重的总和k。R2021b之前,朴素贝叶斯增量计算拟合函数的无偏标准差,fitcnb
。返回当前加权标准差估计不同于R2021b之前计算的一个因素
因子接近1随着样本容量的增加。
MATLAB명령
다음MATLAB명령에해당하는링크를클릭했습니다。
명령을실행하려면MATLAB명령창에입력하십시오。웹브라우저는MATLAB명령을지원하지않습니다。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。