Матрица путаницы, когда все классы не предсказаны с помощью пакета каретки в R - PullRequest
0 голосов
/ 10 марта 2019

У меня есть модель классификации predict(model, test.x) для оценки модели по данным с 11 классами, результат прогнозирования:

table(predicted_class)
0   1   2   3   5   6   8  10 
7   6  232  11  74  58   1   1 

Мои тестовые метки (правда):

table(test.y)
  0   1   2   3   4   5   6   7   8   9  10 
105  16  78  25  14  74  12   9  23  15  19 

Когда я хочу получить матрицу путаницы с пакетом каретки, у меня появляется это сообщение об ошибке, потому что классы 7 и 9 не предсказываются моей моделью:

caret::confusionMatrix(test.y, predicted_class, mode = "everything")
Error in confusionMatrix.default(test.y, predicted_class,  : 
  the data cannot have more levels than the reference

Как получить матрицу путаницы, если в прогнозе отсутствует какой-либо фактор-уровень: как я могу автоматически добавить 0 для класса предсказанных для отсутствующих классов (в данном случае 4, 7 и 9)

1 Ответ

2 голосов
/ 10 марта 2019

Сделайте уровни одинаковыми, соединив факторы с union

all_class <- union(predicted_class, test.y)
newtable <- table(factor(predicted_class, all_class), factor(test.y, all_class))
caret::confusionMatrix(newtable)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...