Я новый игрок в R и хочу решить задачу двоичной классификации.
В наборе данных есть факторная переменная LABELS с 2 классами: первый - 0, второй - 1. На следующем изображении показан фактический заголовок этого файла: Столбец TimeDate - это просто индекс.Распределение классов определяется как:
print("the number of values with % in factor variable - LABELS:")
percentage <- prop.table(table(dataset$LABELS)) * 100
cbind(freq=table(dataset$LABELS), percentage=percentage)
Результат распределения классов:
Также я знаю, что столбец Slot2 рассчитывается по формуле:
Slot2 = Var3 - Slot3 + Slot4
Особенности Var1, Var2, Var3, Var4 были выбраны после анализа корреляционной матрицы.
Перед началом моделирования я разделил набор данных на обучающие и испытательные части.Я попытался построить Модель случайного леса для задачи двоичной классификации, используя следующий код:
rf2 <- randomForest(LABELS ~ Var1 + Var2 + Var3 + Var4,
data=train, ntree = 100,
mtry = 4, importance = TRUE)
print(rf2)
Результат:
Call:
randomForest(formula = LABELS ~ Var1 + Var2 + Var3 + Var4,
data = train, ntree = 100, mtry = 4, importance = TRUE)
Type of random forest: classification
Number of trees: 100
No. of variables tried at each split: 4
OOB estimate of error rate: 0.16%
Confusion matrix:
0 1 class.error
0 164957 341 0.002062941
1 280 233739 0.001196484
Когда я попытался сделать прогноз:
# Prediction & Confusion Matrix - train data
p1 <- predict(rf2, train, type="prob")
print("Prediction & Confusion Matrix - train data")
confusionMatrix(p1, train$LABELS)
# # Prediction & Confusion Matrix - test data
p2 <- predict(rf2, test, type="prob")
print("Prediction & Confusion Matrix - test data")
confusionMatrix(p2, test$LABELS)
Я получил ошибку в R:
[1] "Prediction & Confusion Matrix - train data"
Error: `data` and `reference` should be factors with the same levels.
Traceback:
1. confusionMatrix(p1, train$LABELS)
2. confusionMatrix.default(p1, train$LABELS)
3. stop("`data` and `reference` should be factors with the same levels.",
. call. = FALSE)
Также я уже пытался исправить это, используя идею из следующих вопросов:
Ошибка в ConfusionMatrix, данные и контрольные коэффициенты должны иметь одинаковое количество уровней R CARET
Ошибка в матрице путаницы: данные и контрольные коэффициенты должны иметь одинаковоеколичество уровней
, но в моем случае это не поможет.
Не могли бы вы помочь мне с этой ошибкой?
IБуду благодарен за любые идеи и комментарии. Заранее спасибо.