主要内容

logp

增量学习的朴素贝叶斯分类模型的对数无条件概率密度

描述

例子

lp= logp (MdlX返回日志无条件概率密度lp对预测数据的观察X采用朴素贝叶斯分类模型进行增量学习Mdl.您可以使用lp识别训练数据中的异常值。

例子

全部折叠

使用。训练朴素贝叶斯分类模型fitcnb,将其转换为增量学习器,然后使用增量模型检测流数据中的异常值。

加载和预处理数据

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

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

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

训练朴素贝叶斯分类模型

将朴素贝叶斯分类模型拟合到约25%的随机样本数据中。

Idxtt = randsample([true false false false],n,true);TTMdl = fitcnb (X (idxtt:), Y (idxtt))
TTMdl = ClassificationNaiveBayes ResponseName: 'Y' CategoricalPredictors: [] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' NumObservations: 6167 DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell}属性,方法

TTMdl是一个ClassificationNaiveBayes表示传统训练模型的模型对象。

转换训练模型

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

IncrementalMdl = incrementalLearner (TTMdl)
IncrementalMdl = incrementalClassificationNaiveBayes IsWarm: 1 Metrics: [1x2 table] ClassNames: [1 2 3 4 5] ScoreTransform: 'none' DistributionNames: {1x60 cell} DistributionParameters: {5x60 cell}属性,方法

IncrementalMdl是一个incrementalClassificationNaiveBayes对象。IncrementalMdl表示一种用于增量学习的朴素贝叶斯分类模型;参数值与中的参数相同TTMdl

检测异常值

利用传统训练模型和训练数据确定异常点的无条件密度阈值。流数据中产生密度低于阈值的观测被认为是异常值。

ttlp = logp (TTMdl X (idxtt:));[~,降低]= isoutlier (ttlp)
低= -336.0424

检测剩余数据中的异常值,相对于学习创建的数据TTMdl.通过一次处理1个观测来模拟数据流。在每次迭代时,调用logp计算观测的对数无条件概率密度,并存储每个值。

%预先配置idxil = ~ idxtt;nil =总和(idxil);numObsPerChunk = 1;nchunk =地板(nil / numObsPerChunk);lp = 0 (nchunk, 1);iso = false (nchunk, 1);自= X (idxil:);Yil = Y (idxil);%增量式拟合j = 1:nchunk ibegin = min(nil,numObsPerChunk*(j-1) + 1);iend = min (nil, numObsPerChunk * j);idx = ibegin: iend;lp (j) = logp (IncrementalMdl自(idx:));Iso (j) = lp(j) < low;结束

绘制流数据的对数无条件概率密度。识别异常值。

图;h1 =情节(lp);持有x = 1: nchunk;h2 =情节(x (iso)、lp (iso),的r *);h3 = yline(低,“g——”);xlim ([0 nchunk]);ylabel (“无条件的密度”)包含(“迭代”)传奇([h1 h2 h3],[“日志无条件概率”“局外人”“阈值”)举行

图中包含一个轴对象。轴对象包含三个对象的类型线,常量线。这些对象表示Log无条件概率,离群值,阈值。

输入参数

全部折叠

用于增量学习的朴素贝叶斯分类模型,指定为incrementalClassificationNaiveBayes模型对象。您可以创建Mdl直接或转换支持的,传统训练的机器学习模型使用金宝appincrementalLearner函数。详细信息请参见对应的参考页面。

您必须配置Mdl计算一批观测数据的对数条件概率密度。

  • 如果Mdl是一个经过转换的、传统训练的模型,您可以无需任何修改就计算日志条件概率。

  • 否则,Mdl。DistributionParameters一定是一个细胞矩阵Mdl。NumPredictors> 0列和至少一行,其中每一行对应于Mdl。一会

用于计算日志条件概率密度的一批预测数据,指定为n——- - - - - -Mdl。NumPredictors浮点矩阵。

为每一个j= 1到n,如果X (j:)包含至少一个lp (j

数据类型:|

输出参数

全部折叠

日志无条件概率密度,返回为n1浮点向量。lp (j预测者的对数无条件概率密度是否在X (j:)

数据类型:|

更多关于

全部折叠

无条件的概率密度

无条件的概率密度预测因素之一是人口密度的分布在不同阶层之间被边缘化了。

也就是说,无条件概率密度是

P X 1 .. X P k 1 K P X 1 .. X P Y k k 1 K P X 1 .. X P | y k π Y k

在哪里πYk)为类先验概率。给定类的数据的条件分布(PX1, . .XP|yk)和类先验概率分布是训练选项(也就是说,在训练分类器时指定它们)。

先验概率

先验概率某一类的相对频率是该一类观察结果在总体中出现的相对频率。

介绍了R2021a