微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用“carsmall”示例数据的朴素贝叶斯模型

如何解决使用“carsmall”示例数据的朴素贝叶斯模型

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

这是我的代码

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

但我收到此错误,我不知道为什么。谁能说出错误在哪里?

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

解决方法

由于“Italy”的情况只出现一次就没有方差,正态分布对于这种情况是没有意义的。这会导致 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'});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。