2015-08-21 2 views
0

Я построил случайную модель леса. Прогнозируемый выход и фактический результат являются факторами. Есть 19 классов для прогнозирования, но один из этих классов не появился в наборе данных тестирования.Ошибка в точности расчета, R

Затем я хочу, чтобы вычислить точность модели, используя эту формулу:

accuracy <- sum(ActualOutput==PredictedOutput, na.rm = TRUE)/length(PredictedOutput) 

, который генерирует сообщение об ошибке:

Ошибка в Ops.factor (ActualOutput, PredictedOutput): уровень наборы факторов различны

ActualOutput имеет 19 уровней и PredictedOutput имеет 18 уровней. Что мне делать?

ответ

1

Предположим, что у нас есть два выхода ActualOutput и PredictedOutput одинаковой длины, но разные уровни

PredictedOutput <- factor(c("a", "b", "b")) 
ActualOutput <- factor(c("a", "b", "c")) 

sum(ActualOutput == PredictedOutput) 

Error in Ops.factor(ActualOutput, PredictedOutput) : 
    level sets of factors are different 

PredictedOutput имеет 2 уровня, но ActualOutput имеет 3. Мы хотим, чтобы установить уровни PredictedOutput для тех ActualOutput

PredictedOutput <- factor(PredictedOutput, levels=levels(ActualOutput)) 

Сейчас PredictedOutput выглядит

[1] a b b 
Levels: a b c 

И ваша формула должна работать

sum(ActualOutput == PredictedOutput) 
[1] 2 

Если у вас есть небольшой воспроизводимый пример, мы можем иметь большую помощь

+0

Такое замечательное разъяснение и ответ. Он отлично работал. Большое спасибо. – user36729

+0

Добро пожаловать. Рад, что это помогло – Whitebeard

0

У вас есть такая же проблема, если вы измените свою переменную на символ вместо фактора? Можете ли вы построить такую ​​модель или вам нужен тип фактора?

Как правило, это проблема сборки наборов данных для тестирования/тестирования. Иногда, когда у одного из классов мало наблюдений, вы должны убедиться, что у вас есть некоторые случаи как на тренировочных, так и на тестовых наборах. Проверьте некоторые стратифицированные методы выборки.

Можете ли вы дать дополнительную информацию о пакете и команде, которую вы использовали для случайной модели леса?

+0

мне нужно, чтобы сохранить переменные в форм-факторе. Я определенно попробую расслоить методы выборки. Спасибо за идею. – user36729

+0

Для случайной модели леса я попробовал пакет randomForest. Он содержит полезные функции обучения и прогнозирования. – user36729

Смежные вопросы