2015-05-01 1 views
2

Я пытаюсь предсказать непрерывную переменную (количество) в R со случайным лесом. Значения предсказанной переменной: min=1 и max=1000.Получение произвольной точности прогнозирования леса для непрерывной переменной в R

Я попытался получить точность предсказания с помощью «confusionMatrix», но, естественно, я получаю ошибку разного количества уровней между предсказанием и прогнозом.

Каков наилучший способ получения точности прогноза в данных обстоятельствах?

+1

'предсказать непрерывную переменную' <- регрессия || 'значения предсказанной переменной min = 1 и max = 1000' <- Это может быть в зависимости от набора данных, диапазон непрерывной переменной (-инфекция, бесконечность) || «точность предсказания с« confusionMatrix »' <- матрица путаницы не используется для регрессии, а среднеквадратичная ошибка корня, которая является корнем квадрата суммы разницы между фактическими и установленными значениями, деленными на количество записей (http: // en .wikipedia.org/wiki/Root-mean-square_deviation) –

+0

Итак, должен ли я рассматривать Rsquared как показатель точности предсказания? – mishakob

ответ

3

@ mishakob

Грубо говоря, корень среднеквадратичная ошибка может быть понята как нормализованная девиация между фактическими и подобранными значениями. его можно получить следующим образом.

library(randomForest) 
set.seed(1237) 
iris.rg <- randomForest(Sepal.Length ~ ., data=iris, importance=TRUE, 
         proximity=TRUE) 

sqrt(sum((iris.rg$predicted - iris$Sepal.Length)^2)/nrow(iris)) 
[1] 0.3706187 
0

randomForest должен показывать только матрицы путаницы для категориальных исходов, поэтому постарайтесь обеспечить, чтобы ваш результат был числовым. Затем вместо этого будут отображаться остатки среднего квадрата. например .:

library(randomForest) 
# This is probably what you're seeing 
randomForest(as.factor(Sepal.Length) ~ Sepal.Width, data=iris) 
# This is what you want to see 
randomForest(Sepal.Length ~ Sepal.Width, data=iris) 

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

  • Нет связанных вопросов^_^