Ошибка при использовании функции предиката () на каретных моделях в R - PullRequest
0 голосов
/ 28 октября 2019

Я сейчас пытаюсь сделать несколько разных моделей в caret, начиная от логистической модели и заканчивая XGBoost. Создание моделей достаточно просто, однако, когда я хочу использовать модели для прогнозирования набора тестов, который я выделил перед началом, я получаю сообщения об ошибках, в которых говорится что-то вроде:

Ошибка в UseMethod(«прогноз»):

нет применимого метода для «прогнозирования», примененного к объекту класса «data.frame»

и:

Ошибка в прогнозировании (logistic_model $ finalModel, new_data = pd_test) $. Pred_class:

$ Оператор недопустим для атомных векторов`

Вот логистическая модель:

set.seed(100)

train_test_split <- initial_split(pd_data, prop = 0.8)
pd_train <- training(train_test_split)
pd_test <- testing(train_test_split)

# caret 
# logistic model
# model creation and VIF
log_control <- trainControl(method = "cv", number = 5, classProbs = TRUE, 
                            summaryFunction = twoClassSummary)

logistic_model <- train(default ~ profit_margin + interest_coverage_ratio + 
                        age_of_company + liquidity_ratio_2 
                        + unpaid_debt_collection
                        + adverse_audit_opinion + amount_unpaid_debt 
                        + payment_reminders, data = pd_train, 
                        trControl = log_control, 
                        method = "glm", family = "binomial", metric = "ROC")

vif(logistic_model$finalModel)

log_class_predictions <- predict(logistic_model$finalModel, new_data = pd_test)$.pred_class
log_predictions <- predict(logistic_model$finalModel$tuneValue, 
                           new_data = pd_test, type = "prob")$.pred_1

Как я могу это исправить, чтобы я мог проверить свои модели на нетронутом тестовом наборе? Я попробовал несколько вариантов logistic_model$, но безрезультатно

1 Ответ

0 голосов
/ 28 октября 2019

Вы можете использовать следующий код log_class_predictions <- predict(logistic_model, new_data = pd_test)

log_predictions <- predict(logistic_model, new_data = pd_test, type = "prob")

...