У меня есть набор данных выглядит следующим образом:NaiveBayes в R не может предсказать - фактор (0) Уровни:
data.flu <- data.frame(chills = c(1,1,1,0,0,0,0,1), runnyNose = c(0,1,0,1,0,1,1,1), headache = c("M", "N", "S", "M", "N", "S", "S", "M"), fever = c(1,0,1,1,0,1,0,1), flu = c(0,1,1,1,0,1,0,1))
> data.flu
chills runnyNose headache fever flu
1 1 0 M 1 0
2 1 1 N 0 1
3 1 0 S 1 1
4 0 1 M 1 1
5 0 0 N 0 0
6 0 1 S 1 1
7 0 1 S 0 0
8 1 1 M 1 1
> str(data.flu)
'data.frame': 8 obs. of 5 variables:
$ chills : num 1 1 1 0 0 0 0 1
$ runnyNose: num 0 1 0 1 0 1 1 1
$ headache : Factor w/ 3 levels "M","N","S": 1 2 3 1 2 3 3 1
$ fever : num 1 0 1 1 0 1 0 1
$ flu : num 0 1 1 1 0 1 0 1
Почему predict
функция не возвращает мне ничего?
# I can see the model has been successfully created.
model <- naiveBayes(flu~., data=data.flu)
# I created a new data
patient <- data.frame(chills = c(1), runnyNose = c(0), headache = c("M"), fever = c(1))
> predict(model, patient)
factor(0)
Levels:
# I tried with the training data, still won't work
> predict(model, data.flu[,-5])
factor(0)
Levels:
Я попытался следовать примерам в справочном руководстве в naiveBayes, и это работает для меня. Я не уверен, что не так с моим подходом. Большое спасибо!
Я думаю, что, возможно, что-то не так с типом данных, прежде чем применять модель naivebayes, я попытался изменить все переменные на коэффициент, используя as.factor
, и кажется, что работает для меня. Но я все еще смущен, что такое «Как» и «Почему» за сценой.
um, большое спасибо за ваш ответ. Я изучаю naiveBayes прямо сейчас, и модель выравнивается с моим вычислением руки. Мне интересно, как «предсказать» определить y == 1 на самом деле имеет лучшую функцию стоимости? где находится функция затрат и как я могу найти значения функции стоимости для y = 0 и y = 1 в R? –
Извините, но я не смогу ответить на этот вопрос, потому что я так хорошо знаком с naiveBayes –