matlab - 使用“carsmall”示例数据的朴素贝叶斯模型
问题描述
我想在 Matlab 中用carsmall
数据制作一个朴素贝叶斯模型。
这是我的代码:
load carsmall
car = table(Model_Year, Weight);
naive_model = fitcnb(car, Origin)
但我得到这个错误,我不知道为什么。谁能说出错误在哪里?
使用 ClassificationNaiveBayes/findNoDataCombos 时出错(第 256 行)
正态分布不能适合意大利类和预测变量 Model_Year 的组合。数据方差为零。
解决方案
由于“意大利”的情况只出现一次,没有方差,正态分布对这种情况没有意义。这会导致 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'});
推荐阅读
- python - 定义一个函数来过滤另一个数据帧的数据帧
- python - 通过 Django 的 StreamingHttpResponse 下载的 Excel 文件在打开时显示“格式无效”
- python - 如何解决“输入形状的预期轴 -1 的值为 1,但接收到的输入形状为 [None, 256, 256, 3]'”错误?
- matlab - MATLAB中系统的零极点图和频率响应
- azure-application-insights - 应用程序洞察无法下载 nuget 包
- jdbc - 使用 tableau 的 JDBC 连接是否需要用户名和密码?
- mysql - 如何在 vb.net 中按数据视图分组
- java - 如何在java中按对象值对JsonNode进行排序
- reactjs - 使用 react-chartjs-2 增加图例和图表之间的填充
- python - Pycharm 在不同的控制台中运行