首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用klaR NaiveBayes时出错

使用klaR NaiveBayes时出错
EN

Stack Overflow用户
提问于 2016-01-09 11:07:29
回答 1查看 1.6K关注 0票数 2

我正在运行一个用于文本分析的NaiveBayes模型,该模型有大约2000多个变量和30000多个观察值。它实际上是稀疏数据,但没有任何零列或常量列。

代码语言:javascript
复制
model <- NaiveBayes(nation~., data=data_train)

我得到了:

代码语言:javascript
复制
"Zero variances for at least one class in variables: "

以及包含50个变量的列表。该错误类似于下面的错误,但我的类变量是一个因素。https://stats.stackexchange.com/questions/35694/naive-bayes-fails-with-a-perfect-predictor

我还在相同的数据上运行了e1071的naiveBayes。它可以运行,但准确率低得离谱(7%)。使用支持向量机我得到了85%的结果。有什么建议吗?谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-04-15 00:30:04

据我所知,对于数据中的某个类,必须有一些变量全为零。并不是该变量的整个列都是零,但是这个向量data_train[data_train$Class=="ClassA",] (假设您的一个类被称为"ClassA")是全零的。

在这种情况下,klaR会给出一个错误,警告您这种情况。但e1071并非如此,它将为A类变量生成条件概率0。因此,当您尝试计算未知样本时,会导致“错误”的最终概率。

然而,SVM没有使用这种策略来计算测试样本的概率。因此,零方差对其精度几乎没有影响。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34689302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档