Наивная байесовская 2-классовая классификация, индекс за пределами - PullRequest
0 голосов
/ 08 мая 2018

Существует два фрейма данных: trainReady (288об.) И testReady (112об.). Эти фреймы данных содержат 55 атрибутов (54 непрерывных и 1 двоичный, атрибут класса). Я уже разделила эти 54 атрибута на 10 делений, уровней (с равным количеством наблюдений на предположение уровня). Количество набл. обоих классов в 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. Прогнозирование данных, которые использовались для обучения модели:

prediction <- predict(model_bayes, trainReady[,-1], threshold = 0.001, eps = 0) 1 не работает, 2 работает, но я хотел бы прогнозировать на тестовых данных. Не могли бы вы сказать мне, как я могу решить эту проблему?

1 Ответ

0 голосов
/ 08 мая 2018

Вы должны использовать ту же дискретизацию, которую вы использовали для обучения , а также для тестовых данных.

Не подвергать их диакретизации независимо.

...