主要内容

预测

预测基于增量学习的朴素贝叶斯分类模型对新观测值的响应

描述

例子

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

例子

标签=预测(MdlX名称、值使用一个或多个名称-值参数指定选项。例如,您可以指定一个自定义错误分类代价矩阵(换句话说,重写该值)Mdl.成本)用于通过指定成本论点。

例子

标签成本) =预测(___还返回后验概率)和预测(预期)误分类费用成本)与中的观察值(行)相对应X使用前面语法中的任何输入参数组合。对于X,预测类标签对应于所有类中的最小预期分类成本。

例子

全部崩溃

加载人类活动数据集。

负载人类活动

有关数据集的详细信息,请输入描述在命令行。

将朴素贝叶斯分类模型拟合到整个数据集。

TTMdl=fitcnb(专长,活动)
TTMdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' NumObservations: 24075 DistributionNames: {1×60 cell} DistributionParameters: {5×60 cell}属性,方法

TTMdl是一个分类朴素贝叶斯表示传统训练模型的模型对象。

将传统的训练模型转换为朴素贝叶斯分类模型进行增量学习。

IncrementalMdl=incrementalLearner(TTMdl)
IncrementalMdl=incrementalClassificationNaiveBayes IsWarm:1度量:[1×2表]类名:[1 2 3 4 5]ScoreTransform:'none'分布名称:{1×60单元格}分布参数:{5×60单元格}属性、方法

IncrementalMdl是一个增量分类NaiveBayes为增量学习准备的模型对象。

  • 递增学习器函数通过将学到的条件预测器分布参数以及其他信息传递给增量学习器来初始化增量学习器TTMdl从训练数据中学习。

  • IncrementalMdl天气暖和(是温暖的1),这意味着增量学习功能可以开始跟踪性能指标。

通过转换传统训练模型创建的增量学习者可以生成预测,而无需进一步处理。

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

ttlabels=predict(TTMdl,专长);illables=predict(IncrementalMdl,专长);sameLabels=sum(ttlabels~=illables)==0
萨米拉贝尔斯=逻辑1

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

这个例子展示了如何在输入数据块上应用错误分类成本进行标签预测,同时在训练中保持均衡的错误分类成本。

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

负载人类活动n=努美尔(活动);rng(10);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);

为增量学习创建朴素贝叶斯分类模型;指定类名。为预测通过将模型与前10个观测值进行拟合。

Mdl=incrementalClassificationNaiveBayes(ClassNames=unique(Y));initobs=10;Mdl=fit(Mdl,X(1:initobs,:),Y(1:initobs));canPredict=size(Mdl.DistributionParameters,1)==numel(Mdl.ClassNames)
canPredict =逻辑1

考虑严重惩罚错误分类“运行”(第4类)的模型。创建一个成本矩阵,应用于错误分类运行100次,与错误分类任何一个类相比。行对应于真实类,并且列对应于预测类。

k =元素个数(Mdl.ClassNames);Cost = ones(k) - eye(k);成本(4:)=成本(4:)* 100;%错误分类“跑步”的处罚成本
成本=5×50 1 1 1 1 10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 100 100 0 100 1 1 1 1 1 10

模拟一个数据流,并对每个传入的100个观察数据块执行以下操作。

  1. 呼叫预测预测传入数据块中每个观察值的标签。

  2. 呼叫预测同样,但是通过使用成本论点。

  3. 呼叫适合使模型与传入的数据块相匹配。用一个适合传入观测的新模型覆盖先前的增量模型。

numObsPerChunk=100;nchunk=ceil((n-initobs)/numObsPerChunk);labels=0(n,1);cslabels=0(n,1);cst=0(n,5);cscscst=0(n,5);%增量学习n = 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):end);

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

图;直方图(标签);持有在…上直方图(CSL标签);图例([“默认成本预测”“成本敏感预测”])

图中包含一个轴对象。坐标轴对象包含两个直方图类型的对象。这些对象表示默认成本预测,成本敏感预测。

由于成本敏感预测方法对第4类错误分类的惩罚非常严重,与使用默认均衡成本的预测方法相比,更多的预测结果进入第4类。

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

负载人类活动n=努美尔(活动);rng(10);%的再现性idx = randsample (n, n);X =壮举(idx:);Y = actid (idx);

有关数据集的详细信息,请输入描述在命令行。

为增量学习创建朴素贝叶斯分类模型;指定类名。为预测通过将模型与前10个观测值进行拟合。

Mdl=递增分类NaiveBayes(“类名”,独特的(Y));initobs = 10;Mdl =适合(Mdl X (1: initobs,:), Y (1: initobs));Mdl.DistributionParameters == numel(Mdl.ClassNames)
canPredict =逻辑1

Mdl是一个增量分类NaiveBayes模型。其所有属性都是只读的。该模型配置为生成预测。

模拟一个数据流,并对每个传入的100个观察数据块执行以下操作。

  1. 呼叫预测计算传入数据块中每个观测值的类后验概率。

  2. 考虑递增地测量模型预测一个对象是否正在跳舞(y是5)。你可以通过计算块曲线中的每个观察值所产生的ROC曲线的AUC来实现这一点,即5类的后验概率和其他类之间的最大后验概率之间的差值。perfcurve

  3. 呼叫适合使模型与传入的数据块相匹配。用一个适合传入观测的新模型覆盖先前的增量模型。

numObsPerChunk = 100;nchunk = floor((n - initobs)/numObsPerChunk) - 1;后= 0 (nchunk元素个数(Mdl.ClassNames));auc = 0 (nchunk, 1);classauc = 5;%增量学习n = 1:nchunk ibegin = min(n,numObsPerChunk*(j-1) + 1 + initobs);iend = min(n,numObsPerChunk*j + initobs);idx = ibegin: iend;[~,后(idx:)] =预测(Mdl X (idx:));diffscore = Posterior(idx,classauc) - max(Posterior(idx,setdiff(mdd . classnames,classauc)),[],2);[~, ~, ~, auc (j)] = perfcurve (Y (idx)、diffscore Mdl.ClassNames (classauc));Mdl =适合(Mdl X (idx:), Y (idx));结束

Mdl是一个增量分类NaiveBayes模型对象对流中的所有数据进行训练。

在传入的数据块上绘制AUC。

情节(auc) ylabel (“AUC”)xlabel(“迭代”

AUC表明,在渐进学习过程中,分类器能够很好地正确预测舞蹈受试者。

输入参数

全部崩溃

用于增量学习的朴素贝叶斯分类模型,指定为增量分类NaiveBayes模型对象。您可以创建Mdl直接或通过使用金宝app递增学习器函数。有关更多详细信息,请参阅相应的参考页。

您必须配置Mdl预测一批观察结果的标签。

  • 如果Mdl是一个经过转换、传统训练的模型,您可以预测标签而无需任何修改。

  • 否则Mdl。DistributionParameters必须是具有Mdl.NumPredictors>0列和至少一行,其中每行对应于中的每个类名Mdl.ClassNames

要为其预测标签的一批预测器数据,指定为n-借-Mdl.NumPredictors浮点矩阵。

观察标签的长度Y以及X必须是相等的;Y(j这是观察的标签j(行或列)在X

数据类型:仅有一个的|双重的

名称-值参数

将可选的参数对指定为名称1=Value1,…,名称n=ValueN哪里名称参数名和价值是对应的值。名称值参数必须出现在其他参数之后,但对的顺序无关紧要。

例子:成本= [0 2;1 0]属性会加倍使用true类对观察值进行错误分类的惩罚Mdl.ClassNames(1),而不是用真类对观察值进行错误分类Mdl.ClassNames(2)

错误分类观测值的成本,在表中指定为值,其中c是中的类数Mdl.ClassNames.的值被指定的值覆盖Mdl.成本

价值 描述
c-借-c数值矩阵

成本(j将观察结果分类的成本是多少j当它真正的等级是类的,Mdl.ClassNames(Mdl.ClassNames(j.换句话说,行对应于真实类,列对应于预测类。例如,成本=[02;10]对错误分类应用双倍的惩罚Mdl.ClassNames(1)比分类Mdl.ClassNames(2)

结构阵列

有两个字段的结构数组:

  • 一会包含类名,值与Mdl.ClassNames

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

例子:Cost=struct('ClassNames',Mdl.ClassNames,'ClassificationCosts',[02;10])

数据类型:仅有一个的|双重的|结构体

先前的类概率,指定为这个数字向量中的值。先前的与中的类数具有相同的长度Mdl.ClassNames,元素的顺序对应于中的类顺序Mdl.ClassNames预测规范化向量,使结果之和为1。

的值被指定的值覆盖Mdl.优先

数据类型:仅有一个的|双重的

分数转换函数,描述增量学习函数如何转换原始响应值(指定为字符向量、字符串标量或函数句柄)。指定的值覆盖Mdl.ScoreTransform

此表描述了用于分数转换的可用内置函数。

价值 描述
“doublelogit” 1 / (1 +e–2x
“invlogit” 日志(x/ (1 –x))
“ismax” 将得分最高的类的分数设置为1,并将所有其他类的分数设置为0
“分对数” 1 / (1 +e- - - - - -x
“没有”“身份” x(无转换)
“标志” –1人x< 0
0代表x= 0
1为x> 0
“对称” 2x– 1
“symmetricismax” 将得分最高的类的分数设置为1,并将所有其他类的分数设置为-1
“symmetriclogit” 2/(1 +e- - - - - -x) - 1

数据类型:烧焦|一串

输出参数

全部崩溃

预测响应(或标签),作为类别或字符数组返回;浮点、逻辑或字符串向量;或带有n排。n观察的次数在吗X标签(j是预测的观察反应j

标签具有与类名相同的数据类型Mdl.ClassNames(该软件将字符串数组视为字符向量的单元格数组。)

后验概率,返回为n2浮点矩阵。后(jk是观察到的后验概率吗j她在上课kMdl.ClassNames指定类的顺序。

预期误分类费用,返回为n-借-numel(Mdl.ClassNames)浮点矩阵。

成本(jk观察的预期误分类成本是否行j属于X预测进入课堂kMdl.ClassNames(k).

更多关于

全部崩溃

误分类代价

一个误分类代价是将观察标记为错误类别的分类器的相对严重性。

错误分类的代价有两种:真实的和预期的。让K是类的数量。

  • 真正的误分类代价-AK-借-K矩阵,其中元素(j)指示将观察结果预测到类中的错误分类成本j如果它的真实类别是.软件将误分类成本储存在物业中Mdl.成本,并在计算中使用它。默认情况下,Mdl.Cost (i, j)= 1,如果jMdl.Cost (i, j)= 0,如果j.换句话说,成本是0正确分类和1任何不正确的分类。

  • 预期误分类成本-AK-维向量,其中元素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存储预测值的分布名称。

  • πYk)为类先验概率分布。Mdl.优先存储先验分布。

  • P X 1 .. X P 是预测器的联合密度。这些类是离散的,所以 P X 1 ... X P k 1 K P X 1 ... X P | y k π Y k

在R2021a中引入