incrementalClassificationNaiveBayes
朴素贝叶斯分类模型的增量学习
描述
的incrementalClassificationNaiveBayes
函数创建一个incrementalClassificationNaiveBayes
模型对象,它代表了一种朴素贝叶斯多类分类模型的增量学习。
不像其他的统计和机器学习工具箱™模型对象,incrementalClassificationNaiveBayes
可以直接调用。此外,您可以指定学习选项,例如性能指标配置和类概率之前,数据拟合模型。当你创建一个incrementalClassificationNaiveBayes
对象,它是准备增量学习。
incrementalClassificationNaiveBayes
最适合增量学习。传统训练方法的朴素贝叶斯模型多类分类(如创建模型通过拟合数据,进行交叉验证,优化hyperparameters,等等),看到的fitcnb
。
创建
您可以创建一个incrementalClassificationNaiveBayes
模型对象在几个方面:
直接调用这个函数——配置增量学习的选项,或指定learner-specific选项,通过调用
incrementalClassificationNaiveBayes
直接。这种方法是最好的,当你没有数据或你想立即开始增量学习。您必须指定的最大数量的类或类名预计在响应数据增量学习。将传统的训练模式——初始化一个增量学习使用朴素贝叶斯分类模型的模型参数训练模型对象(
ClassificationNaiveBayes
),您可以将传统的训练模式incrementalClassificationNaiveBayes
模型对象通过它incrementalLearner
函数。增量学习函数的调用- - - - - -
适合
,updateMetrics
,updateMetricsAndFit
接受一个配置incrementalClassificationNaiveBayes
模型对象和数据作为输入,并返回一个incrementalClassificationNaiveBayes
模型对象更新的信息从输入模型和数据。
语法
描述
返回一个默认增量学习模型对象朴素贝叶斯分类,Mdl
= incrementalClassificationNaiveBayes (“MaxNumClasses”,MaxNumClasses
)Mdl
,在那里MaxNumClasses
类的最大数量预计在响应数据增量学习。属性的默认模型包含未知模型参数占位符。你必须训练一个默认的模型之前,您可以跟踪它的性能或生成预测。
输入参数
一会
- - - - - -所有独特的类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|单元阵列的特征向量
所有独特的类标签在增量学习预期响应数据,分类,指定字符,或字符串数组;逻辑或数值向量;或细胞的特征向量。一会
和响应的数据必须具有相同的数据类型。这个参数设置一会
财产。
一会
指定的顺序的输入或输出参数维度对应于类订单。例如,设置“类名”
指定的尺寸成本
或返回的列的顺序分类的分数预测
如果你不指定一会
,你必须指定MaxNumClasses
论点。在这种情况下,软件推断一会
在增量学习属性的数据。
例子:“类名”,“virginica”“setosa”“癣”)
数据类型:单
|双
|逻辑
|字符串
|字符
|细胞
|分类
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
R2021a之前,用逗号来分隔每一个名称和值,并附上的名字
在报价。
例子:“NumPredictors”4“之前”,(0.3 0.3 0.4)
指定4
变量在预测数据和之前类的概率分布(0.3 0.3 0.4)
。
成本
- - - - - -成本分类的观察
方阵|结构数组
成本分类的观察,在这个表指定为一个值,c类的数量吗一会
属性:
价值 | 描述 |
---|---|
c——- - - - - -c数字矩阵 |
|
结构数组 | 一个结构数组中有两个领域:
|
如果您指定成本
,您还必须指定一会
论点。成本
设置成本
财产。
默认的是以下选择:
一个空数组
[]
当你指定MaxNumClasses
一个c——- - - - - -c当你指定矩阵
一会
,在那里成本(
对所有我
,j
)= 1
≠我
,j
成本(
对所有我
,j
)= 0
=我
j
例子:“成本”,结构(“类名”,{' b ', ' g '},“ClassificationCosts”, [0 2;1 0])
数据类型:单
|双
|结构体
指标
- - - - - -在增量学习模型性能指标来跟踪
“mincost”
(默认)|“classiferror”
|字符串向量|函数处理|细胞向量|结构数组|“binodeviance”
|“指数”
|“枢纽”
|“分对数”
|“二次”
在增量学习模型性能指标跟踪,除了最小的误分类代价,指定为一个内置的损失函数的名字,名字,函数的字符串向量处理(例如,@metricName
)、结构的功能处理或细胞向量的名字,函数处理,或结构数组。
当Mdl
是温暖的(见IsWarm),updateMetrics
和updateMetricsAndFit
跟踪的性能指标指标的属性Mdl
。
下表列出了内置的损失函数的名字。您可以指定多个通过使用一个字符串向量。
的名字 | 描述 |
---|---|
“binodeviance” |
二项异常 |
“classiferror” |
误分类错误率 |
“指数” |
指数 |
“枢纽” |
铰链 |
“分对数” |
物流 |
“mincost” |
最小的预期的误分类代价(后验概率的分类评分)。 |
“二次” |
二次 |
内置的损失函数的更多细节,请参阅损失
。
例子:“指标”,(“classiferror”“分对数”)
指定一个自定义函数,返回一个性能指标,使用函数处理符号。函数必须有这种形式。
度量= customMetric (C、S、成本)
输出参数
度规
是一个n1数字向量,其中每个元素是损失相应的观测数据处理的增量学习函数在一个学习周期。你指定的函数名称(在这里,
customMetric
)。C
是一个n——- - - - - -K逻辑矩阵行指示类对应的观测所属,K类的数量。列顺序对应于类秩序一会
财产。创建C
通过设置C (
=p
,问
)1
,如果观察
是在课堂上p
指定的数据,对于每一个观察。设置行中的其他元素问
来p
0
。年代
是一个n——- - - - - -K数字矩阵的预测分类的分数。年代
类似于后
的输出预测
,行对应于观测数据和列顺序对应于类秩序一会
财产。S (
分类的观察吗p
,问
)
在课堂上被分类p
。问
成本
是一个K——- - - - - -K数字矩阵的误分类代价。看到“成本”
名称-值参数。
指定多个自定义指标和分配自定义名称,使用结构数组。指定一个内置的和自定义指标的组合,使用细胞向量。
例子:“指标”,结构(‘Metric2’,‘Metric1’, @customMetric1 @customMetric2)
例子:“指标”,{@customMetric1 @customMetric2分对数的结构(Metric3, @customMetric3)}
updateMetrics
和updateMetricsAndFit
中的一个表中存储指定的指标指标
财产。的数据类型指标
决定了行表的名称。
“指标” 值数据类型 |
的描述指标 属性行名称 |
例子 |
---|---|---|
字符串或字符向量 | 相应的内置的度量 | 行名称“classiferror” 是“ClassificationError” |
结构数组 | 字段名 | 行名称结构(Metric1, @customMetric1) 是“Metric1” |
函数句柄函数存储在程序文件中 | 函数的名字 | 行名称@customMetric 是“customMetric” |
匿名函数 | CustomMetric_ ,在那里 是度量 在指标 |
行名称@ (C、S、成本)customMetric (C、S、成本)… 是CustomMetric_1 |
性能指标选择的更多细节,请参阅性能指标。
数据类型:字符
|字符串
|结构体
|细胞
|function_handle
属性
你可以通过使用名称-值对设置大多数属性参数语法只有当你调用incrementalClassificationNaiveBayes
直接。你可以设置一些属性,当你调用incrementalLearner
将传统的训练模式。你不能设置属性DistributionParameters
,IsWarm
,NumTrainingObservations
。
分类模型参数
CategoricalPredictors
- - - - - -分类预测列表
向量的正整数|逻辑向量|“所有”
这个属性是只读的。
分类预测表,在这个表指定为一个值。
价值 | 描述 |
---|---|
向量的正整数 | 向量索引值中的每个条目对应的列包含一个分类变量的预测数据。索引值介于1和 |
逻辑向量 | 一个真正的 条目意味着预测数据的对应的列是一个分类变量。向量的长度NumPredictors 。 |
“所有” |
所有预测都直言。 |
确定分类预测,incrementalClassificationNaiveBayes
使用多元多项式分布。更多细节,请参阅DistributionNames
。
默认情况下,如果你指定DistributionNames
选项,所有预测变量对应“mvmn”
是绝对的。否则,所有的分类预测变量。
例子:“CategoricalPredictors”, [1 2 4]
和“CategoricalPredictors”,真的真的假的真
指定第一个、第二个和第四个四个预测变量的分类。
数据类型:单
|双
|逻辑
CategoricalLevels
- - - - - -水平的多元多项式预测变量
细胞向量
水平的多元多项式预测变量指定为一个细胞向量。的长度CategoricalLevels
等于NumPredictors
。
增量式拟合函数适合
和updateMetricsAndFit
填充细胞与学习数字每个分类预测变量的绝对水平,而细胞对应于其他预测变量包含一个空数组[]
。具体来说,如果预测j是多元多项式,CategoricalLevels {
j}
是一个列表的所有不同值的预测j在增量式拟合经验丰富。更多细节,请参阅DistributionNames
财产。
请注意
不像fitcnb
,拟合函数增量订单预测作为函数的水平经验在训练。例如,假设预测j与多元多项式分布分类。水平的顺序CategoricalLevels {j}
因此,订单在每个细胞水平的概率DistributionParameters {: j}
返回的增量式拟合函数可以从返回的顺序不同fitcnb
同样的训练数据集。
成本
- - - - - -成本分类的观察
广场数字矩阵|空数组[]
这个属性是只读的。
成本分类的观察,指定为一个数组。
如果你指定“成本”
名称-值参数,其值集成本
。如果你指定一个结构数组,成本
的价值吗ClassificationCosts
字段。
如果你把一个传统训练模型创建Mdl
,成本
是成本
财产的传统训练模式。
数据类型:单
|双
一会
- - - - - -所有独特的类标签
分类数组|字符数组|字符串数组|逻辑向量|数值向量|单元阵列的特征向量
这个属性是只读的。
所有独特的类标签将在响应数据增量学习期间,指定为一个类别或字符数组,一个逻辑或数值向量,或单元阵列的特征向量。
你可以设置一会
在三种方式之一:
如果你指定
MaxNumClasses
参数,软件推断一会
房地产在增量学习。如果你指定
一会
参数,incrementalClassificationNaiveBayes
存储你的规范一会
财产。(软件对字符串数组作为细胞阵列特征向量)。如果你把一个传统训练模型创建
Mdl
,一会
属性指定相应的属性的传统训练模式。
数据类型:单
|双
|逻辑
|字符
|字符串
|细胞
|分类
NumPredictors
- - - - - -数量的预测变量
非负数字标量
这个属性是只读的。
指定数量的预测变量,作为一个非负数字标量。
默认的NumPredictors
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,NumPredictors
指定相应的属性的传统训练模式。如果您创建
Mdl
通过调用incrementalClassificationNaiveBayes
直接,您可以指定NumPredictors
通过使用名称-值参数的语法。如果你不指定值,那么默认值是0
推断,增量式拟合函数NumPredictors
培训期间的预测数据。
数据类型:双
NumTrainingObservations
- - - - - -观察适合增量式模型
0
(默认)|非负数字标量
这个属性是只读的。
观察适合增量模型的数量Mdl
指定为一个非负数字标量。NumTrainingObservations
当你通过增加Mdl
和训练数据适合
或updateMetricsAndFit
。
请注意
如果你把一个传统训练模型创建Mdl
,incrementalClassificationNaiveBayes
不会增加观测的数量符合传统的训练模式NumTrainingObservations
。
数据类型:双
之前
- - - - - -前类概率
数值向量|“经验”
|“统一”
这个属性是只读的。
类概率之前,指定为“经验”
,“统一”
,或者一个数值向量。incrementalClassificationNaiveBayes
存储之前
值作为一个数值向量。
价值 | 描述 |
---|---|
“经验” |
增量学习函数之前推断从观察类类概率增量训练期间相对频率响应数据。 |
“统一” |
对于每个类,先验概率是1 /K,在那里K类的数量。 |
数值向量 | 习惯,规范化的先验概率。元素的顺序之前 对应的元素一会 财产。 |
默认的之前
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,之前
指定相应的属性的传统训练模式。否则,默认值的
之前
是“经验”
。
数据类型:单
|双
|字符
|字符串
ScoreTransform
- - - - - -分数转换函数
“没有”
(默认)|字符串标量|特征向量|函数处理
这个属性是只读的。
分数转换函数描述如何增量学习函数变换原始响应值,指定为一个特征向量,字符串标量,或函数处理。incrementalClassificationNaiveBayes
存储指定值作为特征向量或函数处理。
这个表得分变换描述可用的内置函数。
价值 | 描述 |
---|---|
“doublelogit” |
1 / (1 +e2x) |
“invlogit” |
日志(x/ (1 -x)) |
“ismax” |
集类的分数最大的分数为1,并设置所有其他类的分数为0 |
“分对数” |
1 / (1 +e- - - - - -x) |
“没有” 或“身份” |
x(转换) |
“标志” |
1x< 0 为0x= 0 1x> 0 |
“对称” |
2x- 1 |
“symmetricismax” |
集合类的分数最大的分数为1,和所有其他类的分数设置为1 |
“symmetriclogit” |
2 / (1 +e- - - - - -x)- 1 |
对于一个MATLAB®函数或你定义一个函数,输入它的功能处理;例如,@函数
,地点:
函数
接受一个n——- - - - - -K矩阵(原来的分数),并返回一个相同大小的矩阵(转换后的分数)。n是观测的数量,和行吗j矩阵包含类的分数的观察j。
K是类的数量,和列k是类
类名(
。k
)
默认的ScoreTransform
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,ScoreTransform
指定相应的属性的传统训练模式。默认的
“没有”
指定返回后类概率。
数据类型:字符
|function_handle
|字符串
训练参数
DistributionNames
- - - - - -预测分布
“锰”
|“mvmn”
|“正常”
|字符串向量|细胞特征向量的向量
预测分布P (x|ck),ck是类类名(
指定为一个特征向量或字符串标量,或1 -k
)NumPredictors
字符串向量或细胞与从表中值特征向量的向量。
价值 | 描述 |
---|---|
“锰” |
多项分布。如果您指定“锰” 多项分布的,那么所有功能组件(例如,一个bag-of-tokens模型)。因此,您不能包含“锰” 作为一个字符串数组的一个元素或者一个单元阵列的特征向量。有关详细信息,请参见估计概率多项式分布。 |
“mvmn” |
多元多项式分布。有关详细信息,请参见多元多项式估计概率分布。 |
“正常” |
正态分布。有关详细信息,请参见正态分布估计 |
如果您指定一个特征向量或字符串标量,那么软件模型使用分配的所有特性。如果你指定一个1 -NumPredictors
字符串向量或细胞特征向量的向量,软件模型特性j使用元素的分布j的向量。
默认情况下,软件集所有预测指定为分类预测(见CategoricalPredictors
财产)“mvmn”
。否则,默认的分布“正常”
。
incrementalClassificationNaiveBayes
存储值作为特征向量或细胞特征向量的向量。
例子:“DistributionNames”、“锰”
指定所有预测变量的共同条件分布多项式。
例子:“DistributionNames”,(“正常”“mvmn”“正常”]
指定第一个和第三个预测变量是正态分布,第二个变量分类与多元多项式分布。
数据类型:字符
|字符串
|细胞
DistributionParameters
- - - - - -分布参数估计
单元阵列
这个属性是只读的。
分布参数的估计,指定为一个单元阵列。DistributionParameters
是一个K——- - - - - -NumPredictors
单元阵列,K类的数量和细胞(k
,j
)包含分布参数估计预测的实例j
在课堂上k
。订单的行对应订单的类属性一会
,列的顺序对应订单预测的预测数据。
如果类k
没有预测的观察j
,然后DistributionParameters {
是空的(k
,j
}[]
)。
的元素DistributionParameters
依赖于分布的预测。此表描述中的值DistributionParameters {
。k
,j
}
分布的预测j | 单元阵列的预测价值j 和类k |
---|---|
“锰” |
一个标量表示令牌的概率j出现在课堂上k。有关详细信息,请参见估计概率多项式分布。 |
“mvmn” |
一个数值向量包含每个可能的概率预测的水平j在课堂上k。软件订单的概率顺序的所有独特的预测水平j(存储在属性中CategoricalLevels )。更多细节,请参阅多元多项式估计概率分布。 |
“正常” |
一个2×1数值向量。第一个元素是加权样本均值和第二个元素是加权样本标准差。更多细节,请参阅正态分布估计。 |
请注意
不像fitcnb
,拟合函数增量订单预测作为函数的水平经验在训练。例如,假设预测j与多元多项式分布分类。水平的顺序CategoricalLevels {j}
因此,订单在每个细胞水平的概率DistributionParameters {: j}
返回的增量式拟合函数可以从返回的顺序不同fitcnb
同样的训练数据集。
数据类型:细胞
性能指标参数
IsWarm
- - - - - -标志指示是否模型跟踪性能指标
假
或0
|真正的
或1
标志指示是否跟踪性能指标增量模型,指定为逻辑0
(假
)或1
(真正的
)。
增量模型Mdl
是温暖的(IsWarm
就变成了真正的
当增量拟合函数执行这两种操作:
增量模型
MetricsWarmupPeriod
观察。过程
MaxNumClasses
类或指定的类名一会
名称-值参数。
价值 | 描述 |
---|---|
真正的 或1 |
增量模型Mdl 是温暖的。因此,updateMetrics 和updateMetricsAndFit 跟踪的性能指标指标 的属性Mdl 。 |
假 或0 |
updateMetrics 和updateMetricsAndFit 不跟踪性能指标。 |
数据类型:逻辑
指标
- - - - - -模型的性能指标
表
这个属性是只读的。
在增量学习模型更新的性能指标updateMetrics
和updateMetricsAndFit
,指定为一个表有两列和米行,米是指定的指标的数量吗指标
名称-值参数。
的列指标
标记累积
和窗口
。
累积
:元素j
模型的性能,以度量j
从模型成为温暖的时间(IsWarm
是1
)。窗口
:元素j
模型的性能,以度量j
评估在所有指定的窗口内观察MetricsWindowSize
财产。软件更新窗口
后流程MetricsWindowSize
观察。
行标记指定的指标。详情,请参阅指标
名称-值参数incrementalLearner
或incrementalClassificationNaiveBayes
。
数据类型:表
MetricsWarmupPeriod
- - - - - -数量的观测符合之前跟踪性能指标
非负整数
这个属性是只读的。
数量的观察增量式模型之前必须适合其跟踪性能指标指标
属性,指定为一个非负整数。
默认的MetricsWarmupPeriod
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,MetricsWarmupPeriod
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值0
。否则,默认值是
1000年
。
更多细节,请参阅性能指标。
数据类型:单
|双
MetricsWindowSize
- - - - - -数量的观察使用性能指标计算窗口
正整数
这个属性是只读的。
数量的观察使用性能指标计算窗口,指定为一个正整数。
默认的MetricsWindowSize
价值取决于你如何创建模型:
如果你把一个传统训练模型创建
Mdl
,MetricsWindowSize
名称-值参数的incrementalLearner
函数设置这个属性。参数的默认值200年
。否则,默认值是
200年
。
性能指标选择的更多细节,请参阅性能指标。
数据类型:单
|双
对象的功能
适合 |
火车朴素贝叶斯分类模型的增量学习 |
updateMetricsAndFit |
在朴素贝叶斯更新性能指标增量学习分类模型给出新的数据和训练模式 |
updateMetrics |
在朴素贝叶斯更新性能指标增量学习分类模型得到新的数据 |
logp |
日志无条件概率密度的朴素贝叶斯分类模型的增量学习 |
损失 |
朴素贝叶斯损失增量学习对批数据分类模型 |
预测 |
从朴素贝叶斯预测反应的新观察增量学习分类模型 |
perObservationLoss |
每观察分类错误的增量学习模型 |
重置 |
重置增量分类模型 |
例子
创建增量学习者没有先验信息
创建一个朴素贝叶斯分类模型的增量学习,您必须指定的最大数量的类你期望模型来处理(“MaxNumClasses”
名称-值参数)。当你适应模型输入批次的数据通过使用增量拟合函数,模型收集的新类一会
财产。如果指定的最大数量的类是不准确的,发生下列之一:
增量函数拟合过程之前预期的最大数量的类,该模型是冷的。因此,
updateMetrics
和updateMetricsAndFit
功能不测量性能指标。如果类的数量超过最大预期,一个错误的增量函数拟合问题。
这个例子展示了如何创建一个朴素贝叶斯分类模型的增量学习当你指定的唯一信息是预期的最大数量的类的数据。同时,示例说明了后果当增量拟合函数处理所有预期类样本的早期和晚期。
对于这个示例,考虑培训设备来预测一个主题是否坐着,站着,散步,跑步,跳舞或基于生物特征数据的测量。因此,该设备有一个最大的5类可供选择。
在样本早期过程预计最大数量的类
创建一个增量为多级学习朴素贝叶斯模型。指定一个最大的5类数据。
MdlEarly = incrementalClassificationNaiveBayes (“MaxNumClasses”5)
MdlEarly = incrementalClassificationNaiveBayes IsWarm: 0指标:[1 x2表]一会:[1 x0双]ScoreTransform:“没有一个”DistributionNames:“正常”DistributionParameters:{}属性,方法
MdlEarly
是一个incrementalClassificationNaiveBayes
模型对象。所有的属性是只读的。
MdlEarly
必须适合数据之前,您可以使用它来执行任何其他操作。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
适应增量式模型通过使用训练数据updateMetricsAndFit
函数。模拟数据流处理的50块一次观察。在每一次迭代:
50的观察过程。
覆盖前面的增量式模型与一个新安装的观察。
存储意味着在第一节课的第一个预测 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu1 = 0 (nchunk, 1);%增量学习为j = 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.Metrics {“MinimalCost”,:};mu1 (j + 1) = MdlEarly.DistributionParameters {1 1} (1);结束
MdlEarly
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合观测模型。
性能指标和 进化在训练,放到单独的瓷砖。
t = tiledlayout (2, 1);nexttile情节(mu1) ylabel (“\ mu_ {11}”)xlim ([0 nchunk]) nexttile h =情节(mc.Variables);xlim ([0 nchunk]) ylabel (“最小成本”)参照线(MdlEarly.MetricsWarmupPeriod / numObsPerChunk,r -。传奇(h, mc.Properties.VariableNames)包含(t)“迭代”)
故事情节表明updateMetricsAndFit
执行以下操作:
适合 在增量学习迭代。
计算后的性能指标度量预热期(红色垂直线)。
在每一次迭代计算累积度量。
计算窗口指标200年处理后观察(4迭代)。
在样品后期过程预计最大数量的类
创建一个不同的朴素贝叶斯模型的增量学习的目标。
MdlLate = incrementalClassificationNaiveBayes (“MaxNumClasses”5)
MdlLate = incrementalClassificationNaiveBayes IsWarm: 0指标:[1 x2表]一会:[1 x0双]ScoreTransform:“没有一个”DistributionNames:“正常”DistributionParameters:{}属性,方法
将所有观测贴上类5月底的示例。
idx5 = Y = = 5;Xnew = [X (~ idx5,:);X (idx5:)];Ynew = [Y (~ idx5); Y (idx5)];
增量模型和阴谋的结果。
(nchunk mcnew = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu1new = 0 (nchunk, 1);为j = 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.Metrics {“MinimalCost”,:};mu1new (j + 1) = MdlLate.DistributionParameters {1 1} (1);结束t = tiledlayout (2, 1);nexttile情节(mu1new) ylabel (“\ mu_ {11}”)xlim ([0 nchunk]) nexttile h =情节(mcnew.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)参照线(MdlLate.MetricsWarmupPeriod / numObsPerChunk,r -。)参照线(和(~ idx5) / numObsPerChunk,“g -”。)传说(h, mcnew.Properties.VariableNames“位置”,“最佳”)包含(t)“迭代”)
的updateMetricsAndFit
功能训练在增量学习模型,但之后才开始跟踪性能指标函数模型是适合所有预期数量的类(在底部瓷砖绿色垂直线)。
指定所有类名
创建一个增量朴素贝叶斯模型当你知道所有的类名的数据。
考虑培训设备来预测一个主题是否坐着,站着,散步,跑步,或者跳舞基于生物特征数据的测量。类名映射1到5的活动。
创建一个增量为多级学习朴素贝叶斯模型。指定类名。
一会= 1:5;Mdl = incrementalClassificationNaiveBayes (“类名”类名)
Mdl = incrementalClassificationNaiveBayes IsWarm: 0指标:[1 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames:“正常”DistributionParameters: {5} x0细胞属性,方法
Mdl
是一个incrementalClassificationNaiveBayes
模型对象。所有的属性是只读的。
Mdl
必须适合数据之前,您可以使用它来执行任何其他操作。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
细节的数据集,输入描述
在命令行中。
适应增量式模型通过使用训练数据updateMetricsAndFit
函数。模拟数据流处理的50块一次观察。在每一次迭代:
50的观察过程。
覆盖前面的增量式模型与一个新安装的观察。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);%增量学习为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));结束
配置增量学习选项
除了指定类名的最大数量,准备增量朴素贝叶斯学习者通过指定指标预热期,在此期间updateMetricsAndFit
功能只适合模型。指定一个指标500观察的窗口大小。
载入人类活动数据集。随机洗牌数据。
负载humanactivityn =元素个数(actid);rng (1);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);
类名映射1到5 activity-sitting,站立,行走,跑步,跳舞,分别以生物特征数据测量。细节的数据集,输入描述
在命令行中。
创建一个增量为多级学习朴素贝叶斯模型。配置模型如下:
指定一个度量预热期5000年的观察。
指定一个指标500观察的窗口大小。
双重处罚分类器时,错误地分类类2。
跟踪分类误差和最小的成本来衡量模型的性能。你不需要指定
“mincost”
为指标
因为incrementalClassificationNaiveBayes
一直跟踪这个指标。
C =的眼睛(5)- (5);C (2, 1 3 4 5) = 2;Mdl = incrementalClassificationNaiveBayes (“类名”1:5,…“MetricsWarmupPeriod”,5000,“MetricsWindowSize”,500,…“成本”C“指标”,“classiferror”)
Mdl = incrementalClassificationNaiveBayes IsWarm: 0指标:[2 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames:“正常”DistributionParameters: {5} x0细胞属性,方法
Mdl
是一个incrementalClassificationNaiveBayes
模型对象配置为增量学习。
适应增量式模型通过使用其余的数据updateMetricsAndFit
函数。在每一次迭代:
模拟数据流处理一块50的观察。
覆盖前面的增量式模型与一个新安装的观察。
商店中的第一个预测变量的标准差头等舱 、累积度量和窗口指标增量学习期间看到他们如何演变。
%预先配置numObsPerChunk = 50;nchunk =地板(n / numObsPerChunk);ce = array2table (0 (nchunk, 2),“VariableNames”,(“累积”“窗口”]);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);sigma11 = 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));ce {j:} = Mdl.Metrics {“ClassificationError”,:};mc {j:} = Mdl.Metrics {“MinimalCost”,:};sigma11 (j + 1) = Mdl.DistributionParameters {1}, (2);结束
Mdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。在增量学习模型是热身之后,updateMetricsAndFit
检查模型的性能的观察,然后符合观测模型。
性能指标和 进化在训练,放到单独的瓷砖。
tiledlayout (2, 2) nexttile情节(sigma11) ylabel (“\ sigma_ {11}”)xlim ([0 nchunk]);参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,r -。)包含(“迭代”)nexttile h =情节(ce.Variables);xlim ([0 nchunk]) ylabel (分类错误的)参照线(Mdl.MetricsWarmupPeriod / numObsPerChunk,r -。传奇(h, ce.Properties.VariableNames)包含(“迭代”)nexttile h =情节(mc.Variables);xlim ([0 nchunk]);ylabel (“最小成本”)参照线(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 = 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)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1指标:[1 x2表]一会:(1 2 3 4 5)ScoreTransform:“没有一个”DistributionNames: {1} x60细胞DistributionParameters: {5} x60细胞属性,方法
分别跟踪性能指标和模型
对其余的数据执行增量学习使用updateMetrics
和适合
功能。模拟数据流处理50观测一次。在每一次迭代:
调用
updateMetrics
更新和窗口分类累积误差模型的输入块的观察。覆盖前面的增量式模型更新的损失指标
财产。注意,函数不符合模型的一部分数据,大部分是“新”的数据模型。指定观察权重。调用
适合
适合的模型输入块的观察。覆盖前面的增量式模型更新模型参数。指定观察权重。存储的最小成本,意味着第一个预测变量的第一个类 。
%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 50;nchunk =地板(nil / numObsPerChunk);(nchunk mc = array2table (0, 2),“VariableNames”,(“累积”“窗口”]);mu11 = [IncrementalMdl.DistributionParameters {1} (1);0 (nchunk 1)];自= 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 = updateMetrics (IncrementalMdl自(idx:), Yil (idx),…“重量”会(idx));mc {j:} = IncrementalMdl.Metrics {“MinimalCost”,:};IncrementalMdl =适合(IncrementalMdl自(idx:), Yil (idx),“重量”会(idx));mu11 (j + 1) = IncrementalMdl.DistributionParameters {1 1} (1);结束
IncrementalMdl
是一个incrementalClassificationNaiveBayes
模型对象培训中的所有数据流。
或者,您可以使用updateMetricsAndFit
更新模型的性能指标给定一个新的数据块,然后适应模型数据。
跟踪性能指标的情节和情节 。
t = tiledlayout (2, 1);nexttile h =情节(mc.Variables);xlim ([0 nchunk]) ylabel (“最小成本”传奇(h, mc.Properties.VariableNames) nexttile情节(mu11) ylabel (“\ mu_ {11}”)xlim ([0 nchunk])包含(t)“迭代”)
累计损失水平迅速和稳定,而窗户损失跳跃在整个培训。
突然发生了变化,然后逐渐平缓适合
流程更块。
更多关于
Bag-of-Tokens模型
在bag-of-tokens模型中,预测的价值j出现次数非负的令牌j在观察。类别的数量(箱)多项式模型是不同的令牌的数量(预测)。
增量学习
增量学习,或在线学习,是机器学习的一个分支关心处理传入的数据从数据流,可能没有知识的预测变量的分布方面的预测或目标函数(包括调优参数值),或者观察是否标示。增量学习有别于传统机器学习,足够的标签数据可用来适应一个模型,优化hyperparameters进行交叉验证,推断预测分布。
鉴于传入的观察,增量学习模型处理数据在下列方面,但通常在这个顺序:
预测标签。
测量预测性能。
检查结构性突变或漂移模型。
符合模型的观测。
更多细节,请参阅增量学习概述。
算法
性能指标
的
updateMetrics
和updateMetricsAndFit
函数跟踪模型性能指标(指标
)新数据只有当增量模型温暖的(IsWarm
属性是真正的
)。如果你创建一个增量式模型使用
incrementalLearner
和MetricsWarmupPeriod
是0(默认incrementalLearner
),模型是温暖的在创建。否则,增量模型后变得温暖
适合
或updateMetricsAndFit
执行这两种操作:增量模型
MetricsWarmupPeriod
观察,这是度量预热期。适合所有预期的增量式模型类(请参阅
MaxNumClasses
和一会
参数的incrementalClassificationNaiveBayes
)。
的
指标
增量模型的属性存储两种形式的各性能指标作为一个表的变量(列),累积
和窗口
行,个别指标。当增量模型是温暖的,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测量前一批。
正态分布估计
如果预测变量j
有条件正态分布(见DistributionNames
属性),软件符合该职业专用分布到数据通过计算加权平均数和偏见(最大似然)估计的加权标准差。为每一个类k:
预测的加权平均数j是
在哪里w我是观察的重量吗我。软件可实现重量在一个类,这样他们的先验概率和类。
加权标准差的无偏估计量的预测j是
估计概率多项式分布
如果所有的预测变量组成一个条件多项式分布(见DistributionNames
属性),软件符合分配使用Bag-of-Tokens模型。软件商店令牌的概率j
出现在课堂上k
在房地产DistributionParameters {
。与添加剂平滑[1],估计概率k
,j
}
地点:
出现次数加权的令牌是什么j在课堂上k。
nk在课堂观察的数量吗k。
是观察的重量吗我。软件可实现重量在一个类,这样他们和这个类的先验概率。
的总加权数在课堂上出现的所有令牌k。
多元多项式估计概率分布
如果预测变量j
有一个有条件的多元多项式分布(见DistributionNames
属性),软件遵循这个过程:
软件收集一系列独特的水平,存储排序列表
CategoricalLevels
,认为每个级别一个本。每个预测和类是一个独立,独立随机变量多项式。为每一个类k,软件计算的实例使用列表存储在每个分类级别
CategoricalLevels {
。j
}软件商店的概率预测
j
在课堂上k
有水平l在房地产DistributionParameters {
所有水平k
,j
}CategoricalLevels {
。与添加剂平滑[1],估计概率j
}地点:
这是预测的加权数量的观察j=l在课堂上k。
nk在课堂观察的数量吗k。
如果xij=l,否则和0。
是观察的重量吗我。软件可实现重量在一个类,这样他们和这个类的先验概率。
米j不同水平预测的数量吗j。
米k加权类的观测数量吗k。
引用
[1]曼宁,克里斯托弗·D。,Prabhakar Raghavan, and Hinrich Schütze.信息检索概论》,纽约:剑桥大学出版社,2008年。
版本历史
介绍了R2021aR2021b:朴素贝叶斯增量拟合函数计算偏差(最大似然)标准差有条件地正常的预测变量
行为改变R2021b
从R2021b,朴素贝叶斯增量拟合函数适合
和updateMetricsAndFit
计算偏差(最大似然)估计的加权标准差在训练条件正常的预测变量。换句话说,对于每个类k,增量功能正常化的总和平方加权偏差的条件正常的预测xj在课堂上通过权重的总和k。R2021b之前,朴素贝叶斯增量计算拟合函数的无偏标准差,fitcnb
。返回当前加权标准差估计不同于R2021b之前计算的一个因素
因子接近1随着样本容量的增加。
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。