朴素贝叶斯2级分类,下标出界

时间:2018-05-07 21:00:17

标签: r machine-learning classification naivebayes

有两个数据框:trainReady(288obs。)和testReady(112obs。)。这些数据帧包含55个属性(54个连续和1个二进制,类属性)。我已经将这54个属性离散化为10个分区,级别(每个级别假设的观察数量相等)。 obs的数量。 trainReady中的两个类几乎相等。也在testReady。类属性被视为因子。下面我发布数据帧:
trainReady trainReady

testReady enter image description here

当我尝试运行这些行时(如您所见,我已设置阈值以省略“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

我已经采取了哪些措施来帮助自己克服这个问题:

  1. model_bayes <- naiveBayes(isFace ~ ., data = trainReady, drop.unused.levels = FALSE)
  2. 预测用于训练模型的数据:
  3. prediction <- predict(model_bayes, trainReady[,-1], threshold = 0.001, eps = 0) 1不工作,2工作,但我想预测测试数据。你能告诉我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:0)

您必须使用与用于培训 的测试数据相同的离散化。

不要独立地将它们diacretize。