MATLAB 朴素贝叶斯对象存储

Posted

技术标签:

【中文标题】MATLAB 朴素贝叶斯对象存储【英文标题】:MATLAB Naive Bayes object storing 【发布时间】:2015-06-01 23:49:39 【问题描述】:

使用后:

nb = NaiveBayes.fit(training, class)

要创建一个朴素贝叶斯分类器对象,我想将这些对象的 N 乘以 D 保存在一个矩阵中。 我已尝试执行以下操作

ARRAYOFNAIVEBAYES(2,3) = nb;

但我得到:“使用 NaiveBayes/subsasgn 时出错(第 9 行) NaiveBayes 类不支持下标赋值。”

如何在 MATLAB 中填充朴素贝叶斯分类器矩阵?

请注意,使用 fitNaiveBayes 或 fitcnb 会导致相同的问题,因为它们都返回相同类型的对象。

谢谢

【问题讨论】:

尝试使用元胞数组。像这样初始化:ARRAYOFNAIVEBAYES = cell; 然后使用ARRAYOFNAIVEBAYES2,3 = nb; ARRAYOFNAIVEBAYES = 单元格; ARRAYOFNAIVEBAYES(2,3) = 单元格;甚至 ARRAYOFNAIVEBAYES2,3 = 单元格;所有使用单元格都给出错误错误。没有足够的输入参数。有什么想法吗? 对不起,我应该测试我的代码。见答案。 【参考方案1】:

尝试使用元胞数组。

首先,初始化元胞数组。如果您现在要存储的元素数量,例如N x D,使用

ARRAYOFNAIVEBAYES = cell(N,D);

如果您事先不知道大小,您可以简单地从一个空元胞数组开始:

ARRAYOFNAIVEBAYES = ;

然后,如果稍后您生成了分类器对象nb,并且您想将其存储在索引 (2, 3) 下,请使用

ARRAYOFNAIVEBAYES2,3 = nb;

要稍后访问该值,请使用相同的语法ARRAYOFNAIVEBAYES2,3

有关更多信息,请参阅 Matlab 的 cell arrays 文档。

【讨论】:

以上是关于MATLAB 朴素贝叶斯对象存储的主要内容,如果未能解决你的问题,请参考以下文章

Matlab 朴素贝叶斯

MATLAB:具有单变量高斯的朴素贝叶斯

高斯朴素贝叶斯分类

朴素贝叶斯模型(NBM)在Matlab和Python的具体应用

Matlab基于朴素贝叶斯算法实现多分类预测(源码可直接替换数据)

Matlab基于朴素贝叶斯算法实现多分类预测(源码可直接替换数据)