Ошибка: *** строка 1 из `undefined.cases ': неверное значение ... для атрибута - PullRequest
1 голос
/ 28 февраля 2020

Я тренирую дерево решений, C5.0, и все работает нормально, пока я не попытаюсь предсказать значения в тестовом наборе данных. Я не уверен, что означает ошибка:

library(pacman)
p_load(tidyverse, NHANES, C50)

rows <- sample(nrow(NHANES), as.integer(0.75 * nrow(NHANES)))

nhanes_train <- NHANES[rows,] %>%
  select(SleepTrouble, everything(), -ID)
nhanes_test <- NHANES[-rows,] %>%
  select(SleepTrouble, everything(), -ID)

nhanes_tree <- C5.0(nhanes_train[-1], nhanes_train$SleepTrouble)

nhanes_tree_pred <- predict(nhanes_tree, nhanes_test)

Вывод:

Ошибка: *** строка 1 из undefined.cases ': неверное значение c (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 , 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 'для атрибута `SurveyYr' Превышен предел ошибки

1 Ответ

0 голосов
/ 28 февраля 2020

Кажется, что когда у вас есть не числовые данные c, такие как факторы, вы должны использовать формулу версии функции. Это прекрасно работает:

nhanes_tree <- C5.0(SleepTrouble ~ ., nhanes_train)
nhanes_tree_pred <- predict(nhanes_tree, nhanes_test)

Из документации:

При использовании метода формулы факторы и другие классы сохраняются (т.е. фиктивные переменные не создаются автоматически). Эта конкретная модель обрабатывает нечисловые c данные некоторых типов (такие как символьные, факторные и упорядоченные данные).

...