预测
描述
例子
预测类标签
载入人类活动数据集。
负载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
是温暖的IsWarm
是1
),这意味着可以开始跟踪性能指标增量学习功能。
增量学习者从转换创建一个传统训练模型可以生成预测没有进一步处理。
所有观测使用这两种模型预测类标签。
ttlabels =预测(TTMdl壮举);illables =预测(IncrementalMdl壮举);sameLabels =总和(ttlabels ~ = illables) = = 0
sameLabels =逻辑1
为每个观察两个模型预测相同的标签。
预测标签使用Chunk-Specific误分类代价
这个例子展示了如何应用错误分类标签的成本预测传入的数据块,同时保持一个平衡的误分类代价进行训练。
载入人类活动数据集。随机洗牌数据。
负载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年每个传入的观察。
调用
预测
预测标签为每个传入的块的观察数据。调用
预测
再一次,但是通过使用指定错误分类的成本成本
论点。调用
适合
以适应模型的一部分。覆盖前面的增量式模型与一个新安装的观察。
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);传奇([“违约成本预测”厂商“预测”])
因为厂商预测方法惩罚将第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年每个传入的观察。
调用
预测
计算类的后验概率为每个传入的块的观察数据。调用
rocmetrics
计算ROC曲线下的面积(AUC)使用类的后验概率,并存储AUC值,平均超过所有类。这AUC是一个增量测量的模型平均预测的活动。调用
适合
以适应模型的一部分。覆盖前面的增量式模型与一个新安装的观察。
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”)包含(“迭代”)
情节表明,该分类器预测在增量学习的活动。
输入参数
Mdl
- - - - - -朴素贝叶斯分类模型的增量学习
incrementalClassificationNaiveBayes
模型对象
朴素贝叶斯分类模型的增量学习,作为一个指定incrementalClassificationNaiveBayes
模型对象。您可以创建Mdl
直接或通过转换支持,传统上使用训练有素的机器学习模型金宝appincrementalLearner
函数。更多细节,请参阅相应的引用页面。
您必须配置Mdl
为一批观察预测标签。
如果
Mdl
是一个转变,传统的训练模式,你可以预测标签没有任何修改。否则,
Mdl.DistributionParameters
必须是一个细胞矩阵Mdl.NumPredictors
> 0列和至少一行,每一行对应于每个类的名字Mdl.ClassNames
。
X
- - - - - -批预测数据
浮点矩阵
批处理的预测数据来预测标签,指定为一个n——- - - - - -Mdl.NumPredictors
浮点矩阵。
数据类型:单
|双
名称-值参数
指定可选的双参数作为Name1 = Value1,…,以=家
,在那里的名字
参数名称和吗价值
相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。
例子:成本= [0 2;1 0]
属性翻倍处罚分类观察真正的类Mdl.ClassNames (1)
,比分类观察真正的类Mdl.ClassNames (2)
。
成本
- - - - - -成本分类的观察
Mdl.Cost
(默认)|方阵|结构数组
成本分类的观察,指定为一个表中的值,c类的数量在吗Mdl.ClassNames
。指定的值将覆盖的价值Mdl.Cost
。
价值 | 描述 |
---|---|
c——- - - - - -c数字矩阵 |
|
结构数组 | 一个结构数组中有两个领域:
|
例子:=结构(“类名”,Mdl成本。一会,'ClassificationCosts',[0 2; 1 0])
数据类型:单
|双
|结构体
之前
- - - - - -前类概率
Mdl.Prior
(默认)|数值向量
类概率之前,指定为一个值在这个数值向量。之前
有相同的长度作为类的数量Mdl.ClassNames
和元素的顺序对应于类顺序Mdl.ClassNames
。预测
可实现向量,这样结果的总和是1。
指定的值将覆盖的价值Mdl.Prior
。
数据类型:单
|双
ScoreTransform
- - - - - -分数转换函数
Mdl.ScoreTransform
(默认)|字符串标量|特征向量
分数转换函数描述如何增量学习函数变换原始响应值,指定为一个特征向量,字符串标量,或函数处理。指定的值将覆盖的价值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
。k
Mdl.ClassNames
指定类的顺序。
成本
预期的误分类代价
浮点矩阵
预期误分类代价,作为一个返回n——- - - - - -元素个数(Mdl.ClassNames)
浮点矩阵。
成本(
观察的预期成本行吗j
,k
)
的j
X
被分为类
(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,由类的后验概率加权。
换句话说,软件将观察分为类预期最低的误分类代价。
后验概率
的后验概率的概率是一个观察属于一个特定的类,考虑到数据。
朴素贝叶斯的分类是后验概率k对于一个给定的观察(x1、……xP)是
地点:
的条件联合密度预测给他们上课吗k。
Mdl.DistributionNames
存储分布预测的名字。π(Y=k)是类的先验概率分布。
Mdl.Prior
存储先验分布。是联合密度的预测因子。类是离散的,所以
版本历史
介绍了R2021a
MATLAB命令
你点击一个链接对应MATLAB命令:
运行该命令通过输入MATLAB命令窗口。Web浏览器不支持MATLAB命令。金宝app
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。