主要内容

预测

从朴素贝叶斯预测反应的新观察增量学习分类模型

自从R2021a

描述

例子

标签=预测(Mdl,X)返回预测反应(或标签)标签观察的预测数据X朴素贝叶斯分类模型的增量学习Mdl

例子

标签=预测(Mdl,X,名称,值)使用一个或多个名称参数指定附加选项。例如,您可以指定一个自定义的误分类代价矩阵(换句话说,覆盖值Mdl.Cost通过指定)进行计算预测成本论点。

例子

(标签,,成本)=预测(___)还返回后验概率(),并预测(预计)误分类代价(成本)对应于观测(行)X使用任何输入参数组合在前面的语法。为每一个观察X,预测类标签对应的最低预期分类成本在所有类。

例子

全部折叠

载入人类活动数据集。

负载humanactivity

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

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

actid TTMdl = fitcnb(专长)
TTMdl = ClassificationNaiveBayes ResponseName:‘Y’CategoricalPredictors::[]类名(1 2 3 4 5)ScoreTransform:“没有一个”NumObservations: 24075 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细胞属性,方法

IncrementalMdl是一个incrementalClassificationNaiveBayes模型对象准备增量学习。

incrementalLearner函数初始化增量学习者通过学习条件预测分布参数,以及其他信息TTMdl从训练数据。IncrementalMdl是温暖的IsWarm1),这意味着可以开始跟踪性能指标增量学习功能。

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

所有观测使用这两种模型预测类标签。

ttlabels =预测(TTMdl壮举);illables =预测(IncrementalMdl壮举);sameLabels =总和(ttlabels ~ = illables) = = 0
sameLabels =逻辑1

为每个观察两个模型预测相同的标签。

这个例子展示了如何应用错误分类标签的成本预测传入的数据块,同时保持一个平衡的误分类代价进行训练。

载入人类活动数据集。随机洗牌数据。

负载humanactivityn =元素个数(actid);rng (10);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);

创建一个朴素贝叶斯分类模型的增量学习。指定类名。模型的准备预测通过拟合模型前10的观察。

Mdl = incrementalClassificationNaiveBayes(类名=惟一(Y));initobs = 10;Mdl =适合(Mdl X (1: initobs,:), Y (1: initobs));canPredict =大小(Mdl.DistributionParameters 1) = =元素个数(Mdl.ClassNames)
canPredict =逻辑1

考虑严重惩罚模型分类“运行”(第4类)。创建一个成本矩阵,应用100倍处罚分类分类相比其他类运行。行对应于真实的类,和列对应于预测类。

k =元素个数(Mdl.ClassNames);成本= 1 (k) -眼(k);成本(4:)=成本(4:)* 100;%的处罚分类“运行”成本
成本=5×50 1 1 1 1 1 0 1 1 1 1 1 0 1 1 100 100 100 0 100年1 1 1 1 0

模拟数据流,并执行以下行动在100年每个传入的观察。

  1. 调用预测预测标签为每个传入的块的观察数据。

  2. 调用预测再一次,但是通过使用指定错误分类的成本成本论点。

  3. 调用适合以适应模型的一部分。覆盖前面的增量式模型与一个新安装的观察。

numObsPerChunk = 100;nchunk =装天花板((n - initobs) / numObsPerChunk);标签= 0 (n, 1);cslabels = 0 (n, 1);中科= 0 (n, 5);cscst = 0 (n, 5);%增量学习j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1 + initobs);iend = min (n, numObsPerChunk * j + initobs);idx = ibegin: iend;[标签(idx), ~,春秋国旅(idx:)] =预测(Mdl X (idx:));[cslabels idx), ~, cscst (idx:)] =预测(Mdl X (idx:),成本=成本);Mdl =适合(Mdl X (idx:), Y (idx));结束标签标签= ((initobs + 1):结束);cslabels = cslabels ((initobs + 1):结束);

比较预测类之间的分布预测方法通过绘制直方图。

图;直方图(标签);持有直方图(cslabels);传奇([“违约成本预测”厂商“预测”])

图包含一个坐标轴对象。坐标轴对象包含2直方图类型的对象。这些对象代表违约成本预测,降低成本的预测方案。

因为厂商预测方法惩罚将第4类划分那么严重,更多的预测到第4类结果相比,使用默认的预测方法,平衡的成本。

载入人类活动数据集。随机洗牌数据。

负载humanactivityn =元素个数(actid);rng (10)%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);

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

创建一个朴素贝叶斯分类模型的增量学习。指定类名。模型的准备预测通过拟合模型前10的观察。

Mdl = incrementalClassificationNaiveBayes (“类名”,独特的(Y));initobs = 10;Mdl =适合(Mdl X (1: initobs,:), Y (1: initobs));canPredict =大小(Mdl.DistributionParameters 1) = =元素个数(Mdl.ClassNames)
canPredict =逻辑1

Mdl是一个incrementalClassificationNaiveBayes模型。所有的属性是只读的。模型配置为生成预测。

模拟数据流,并执行以下行动在100年每个传入的观察。

  1. 调用预测计算类的后验概率为每个传入的块的观察数据。

  2. 调用rocmetrics计算ROC曲线下的面积(AUC)使用类的后验概率,并存储AUC值,平均超过所有类。这AUC是一个增量测量的模型平均预测的活动。

  3. 调用适合以适应模型的一部分。覆盖前面的增量式模型与一个新安装的观察。

numObsPerChunk = 100;地板nchunk = ((n - initobs) / numObsPerChunk);auc = 0 (nchunk, 1);classauc = 5;%增量学习j = 1: nchunk ibegin = min (n, numObsPerChunk * (j - 1) + 1 + initobs);iend = min (n, numObsPerChunk * j + initobs);idx = ibegin: iend;[~,后]=预测(Mdl X (idx:));mdlROC = rocmetrics (Y (idx)后,Mdl.ClassNames);[~,~,~,auc (j)] =平均(mdlROC,“微”);Mdl =适合(Mdl X (idx:), Y (idx));结束

现在,Mdl是一个incrementalClassificationNaiveBayes模型对象培训中的所有数据流。

情节的AUC值每个传入的数据块。

情节(auc) xlim ([0 nchunk]) ylabel (“AUC”)包含(“迭代”)

图包含一个坐标轴对象。坐标轴对象包含迭代,ylabel AUC包含一个类型的对象。

情节表明,该分类器预测在增量学习的活动。

输入参数

全部折叠

朴素贝叶斯分类模型的增量学习,作为一个指定incrementalClassificationNaiveBayes模型对象。您可以创建Mdl直接或通过转换支持,传统上使用训练有素的机器学习模型金宝appincrementalLearner函数。更多细节,请参阅相应的引用页面。

您必须配置Mdl为一批观察预测标签。

  • 如果Mdl是一个转变,传统的训练模式,你可以预测标签没有任何修改。

  • 否则,Mdl.DistributionParameters必须是一个细胞矩阵Mdl.NumPredictors> 0列和至少一行,每一行对应于每个类的名字Mdl.ClassNames

批处理的预测数据来预测标签,指定为一个n——- - - - - -Mdl.NumPredictors浮点矩阵。

数据类型:|

名称-值参数

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

例子:成本= [0 2;1 0]属性翻倍处罚分类观察真正的类Mdl.ClassNames (1),比分类观察真正的类Mdl.ClassNames (2)

成本分类的观察,指定为一个表中的值,c类的数量在吗Mdl.ClassNames。指定的值将覆盖的价值Mdl.Cost

价值 描述
c——- - - - - -c数字矩阵

成本(,j)分类的成本是一个观察到班呢j当它真正的类类的,Mdl.ClassNames ()Mdl.ClassNames (j)。换句话说,行对应于真正的阶级和列对应于预测类。例如,成本= [0 2;1 0]适用于双分类的点球Mdl.ClassNames (1)比分类Mdl.ClassNames (2)

结构数组

一个结构数组中有两个领域:

  • 一会包含类名称,相同的值Mdl.ClassNames

  • ClassificationCosts包含成本矩阵,如前所述。

例子:=结构(“类名”,Mdl成本。一会,'ClassificationCosts',[0 2; 1 0])

数据类型:||结构体

类概率之前,指定为一个值在这个数值向量。之前有相同的长度作为类的数量Mdl.ClassNames和元素的顺序对应于类顺序Mdl.ClassNames预测可实现向量,这样结果的总和是1。

指定的值将覆盖的价值Mdl.Prior

数据类型:|

分数转换函数描述如何增量学习函数变换原始响应值,指定为一个特征向量,字符串标量,或函数处理。指定的值将覆盖的价值Mdl.ScoreTransform

这个表得分变换描述可用的内置函数。

价值 描述
“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

数据类型:字符|字符串

输出参数

全部折叠

预测反应(标签),作为分类或返回字符数组;浮点、逻辑或字符串向量;或细胞阵列的特征向量n行。n观察的数量吗X,标签(j)是观察预期的反应了吗j

标签具有相同的数据类型的类名称存储在吗Mdl.ClassNames(软件对字符串数组作为细胞阵列特征向量)。

后验概率,作为一个返回n——- - - - - -元素个数(Mdl.ClassNames)浮点矩阵。后(j,k)是观察的后验概率j是在课堂上kMdl.ClassNames指定类的顺序。

预期误分类代价,作为一个返回n——- - - - - -元素个数(Mdl.ClassNames)浮点矩阵。

成本(j,k)观察的预期成本行吗jX被分为类k(Mdl.ClassNames (k))。

更多关于

全部折叠

误分类代价

一个误分类代价分类器的相对严重程度标签是一个观察到错误的类。

存在两种类型的误分类代价:真正的和预期。让K类的数量。

  • 真正的误分类代价——一个K——- - - - - -K矩阵,元素(,j)表示一个观察到类分类的成本j如果它真正的类。软件商店的误分类代价的财产Mdl.Cost在计算,并使用它。默认情况下,Mdl.Cost (i, j)= 1,如果j,Mdl.Cost (i, j)= 0,如果=j。换句话说,是成本0正确的分类和1对于任何不正确的分类。

  • 预期的误分类代价——一个K维向量,元素k分类的加权平均成本是一个观察到课吗k,由类的后验概率加权。

    c k = j = 1 K P ^ ( Y = j | x 1 , , x P ) C o 年代 t j k

    换句话说,软件将观察分为类预期最低的误分类代价。

后验概率

后验概率的概率是一个观察属于一个特定的类,考虑到数据。

朴素贝叶斯的分类是后验概率k对于一个给定的观察(x1、……xP)是

P ^ ( Y = k | x 1 , 。。 , x P ) = P ( X 1 , , X P | y = k ) π ( Y = k ) P ( X 1 , , X P ) ,

地点:

  • P ( X 1 , , X P | y = k ) 的条件联合密度预测给他们上课吗kMdl.DistributionNames存储分布预测的名字。

  • π(Y=k)是类的先验概率分布。Mdl.Prior存储先验分布。

  • P ( X 1 , 。。 , X P ) 是联合密度的预测因子。类是离散的,所以 P ( X 1 , , X P ) = k = 1 K P ( X 1 , , X P | y = k ) π ( Y = k )

版本历史

介绍了R2021a