r - 朴素贝叶斯 2 类分类,下标越界
问题描述
有两个数据帧:trainReady
(288obs.) 和testReady
(112obs.)。这些数据帧包含 55 个属性(54 个连续属性和 1 个二进制类属性)。我已经将这 54 个属性离散化为 10 个部门、级别(假设每个级别的观察数量相同)。obs的数量。两个班级的trainReady
人数几乎相等。testReady
也在。类属性被视为因素。下面我发布了一些数据框:
trainReady
当我尝试运行这些行时(如您所见,我已将阈值设置为忽略“0-频率”问题):
model_bayes <- naiveBayes(isFace ~ ., data = trainReady)
prediction <- predict(model_bayes, testReady[,-1], threshold = 0.001, eps = 0)
我收到:
Error in [.default(object$tables[[v]], , nd + islogical[attribs[v]]) :
subscript out of bounds
我已经做了什么来帮助自己克服这个问题:
model_bayes <- naiveBayes(isFace ~ ., data = trainReady, drop.unused.levels = FALSE)
- 预测用于训练模型的数据:
prediction <- predict(model_bayes, trainReady[,-1], threshold = 0.001, eps = 0)
1 不起作用,2 起作用,但我想预测测试数据。你能告诉我如何克服这个问题吗?
解决方案
您必须对测试数据使用与训练相同的离散化。
不要独立地对它们进行区分。
推荐阅读
- python - 检查所有输入是否在 pysimplegui 中都有值
- java - JavaFX 透明 GIF 闪烁
- vb.net - vb.net 使用 Eircode 调用 google api 以获取完整地址
- android - 为android构建电报时出现cmake错误
- angular - 类型'可观察的
' 不可分配给类型 'Observable ' - javascript - 在 Stripe Nodejs 上创建会话付款确认
- python - 在 tkinter 树视图上显示全文
- kotlin - 单独的 Dispatchers.IO 块中的不适当的阻塞方法调用警告
- android - 在 Android 构建上使用 windows 包
- javascript - 当 Emoji 具有肤色时,Javascript 会遍历 Unicode