R Caret Наивный Байес Точность равна нулю - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть один набор данных для обучения с SVM и наивным Байесом.SVM работает, но наивный Байес не работает.Следуйте приведенному ниже исходному коду:

library(tools)
library(caret)
library(doMC)
library(mlbench)
library(magrittr)
library(caret)

CORES <- 5 #Optional
registerDoMC(CORES) #Optional

load("chat/rdas/2gram-entidades-erro.Rda")

set.seed(10)
split=0.60

maFinal$resposta <- as.factor(maFinal$resposta)
data_train <- as.data.frame(unclass(maFinal[ trainIndex,]))
data_test <- maFinal[-trainIndex,]

treegram25NotNull <- train(x = subset(data_train, select = -c(resposta)),
      y = data_train$resposta, 
      method = "nb",
      trControl = trainControl(method = "cv", number = 5, savePred=T, sampling = "up"))

treegram25NotNull

Окончательная точность равна нулю yy

Предупреждающие сообщения: 1: в nominalTrainWorkflow (x = x,y = y, wts = weights, info = trainInfo,: в показателях производительности при повторной выборке отсутствовали значения 2: В train.default (подмножество (data_train, select = -c (resposta)), data_train $ resposta,: найдены пропущенные значенияв совокупных результатах

Любая помощь будет принята с благодарностью, спасибо.

1 Ответ

0 голосов
/ 30 декабря 2018

Исправление действительно простое:

set.seed(10)
split <- 0.60
maFinal[] <- lapply(maFinal, as.factor)

В настоящее время все ваши переменные, кроме resposta, являются числовыми.Тем не менее, они имеют только до 12 различных значений, что означает, что все они на самом деле должны быть факторными переменными.Кроме того, многие из них сильно разбалансированы.Затем при разделении выборки возникает проблема обработки (на самом деле факторных) переменных только с одним уникальным значением в качестве непрерывных переменных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...