【问题标题】:Naive Bayes model using "carsmall" example data使用“carsmall”示例数据的朴素贝叶斯模型
【发布时间】:2021-08-17 12:03:31
【问题描述】:

我想在 Matlab 中使用 carsmall 数据制作朴素贝叶斯模型。

这是我的代码:

load carsmall
car = table(Model_Year, Weight);
naive_model = fitcnb(car, Origin)

但是我得到了这个错误,我不知道为什么。谁能说出错误在哪里?

使用 ClassificationNaiveBayes/findNoDataCombos 时出错(第 256 行)
正态分布不能适合意大利类和预测变量 Model_Year 的组合。数据方差为零。

【问题讨论】:

    标签: matlab bayesian naivebayes


    【解决方案1】:

    由于“意大利”的情况只出现一次,没有方差,正态分布对这种情况没有意义。这会导致 fitcnb 出现错误,删除此元素可以正常工作。 我建议你组织更多的代码,也许你以后会这样做,但是,这是一个很好的做法。所以,这里是新的更详细的代码。

    clear all
    load carsmall
    X = [Model_Year Weight];
    Y = cellstr(Origin);
    %The next line helps to see how many classnames you have 
    tabulate(Y);
    Y(36)=[]; %removing the only case of italy
    X (36,:)=[];%removing the only case of italy
    %Train a naive Bayes classifier. It is good practice to specify the class order.
    naive_model = fitcnb(X, Y,'ClassNames',{'USA','France','Japan','Germany','Sweden'});
    

    【讨论】:

      猜你喜欢
      • 2013-09-09
      • 2017-07-07
      • 2020-06-28
      • 2019-02-21
      • 2016-08-16
      • 2012-02-21
      • 2011-12-28
      • 2014-01-23
      • 2021-02-09
      相关资源
      最近更新 更多