Caret: понимание прогноза на основе новых данных - PullRequest
0 голосов
/ 17 апреля 2020

Я обучил модель (код ниже) на основе набора данных, содержащего данные за 50 периодов (атрибуты), сохранив полученную модель. На тренировке я пытался предсказать поведение Period_50.

Образец набора данных:

    Period_1 Period_2 Period_3 Period_4 Period_5 Period_6 Period_7 Period_8
1     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
2     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
3     Normal   Normal  Failure   Normal   Normal   Normal   Normal   Normal
4     Normal  Failure   Normal   Normal   Normal   Normal   Normal  Failure
5     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
6     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
7     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
8     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
9     Normal   Normal   Normal   Normal   Normal   Normal   Normal   Normal
10    Normal  Failure   Normal   Normal   Normal   Normal   Normal   Normal

Модель тренировки:

set.seed(123);

partition <- createDataPartition(data_failures$Period_50, p = 0.8, list = F)
trainingSet <- data_failures[partition,]
testingSet <- data_failures[-partition,]

train.control <- trainControl(method = "repeatedcv", number = 10, repeats = 3, classProbs = TRUE, summaryFunction = twoClassSummary)

model <- train(Period_50 ~., data = trainingSet, method = "rf", metric = "ROC", trControl = train.control)

predictions <- predict(model, newdata = testingSet)
print(confusionMatrix(predictions, testingSet$Period_50))

finalModel <- model
saveRDS(finalModel, "./finalModel.rds")

Мой вопрос: Используя обученную модель, могу ли я получить прогнозы только для Period_50 или я могу прогнозировать Period_51? Для этого я должен предоставить модели новый набор данных, содержащий набор данных за 51 период (как представлено ниже)? Но если у меня нет этих данных?

new_data <- read.csv('OUTPUT_NEWDATA.csv', header = TRUE, sep = ",", stringsAsFactors = TRUE)
predictions <- predict(model, newdata = new_data)
print(confusionMatrix(predictions, new_data$Period_51))
...