2013-06-27 2 views
2

Я пытаюсь сделать модель распределения видов, и я следую руководству «Моделирование распределения видов с R» от Роберта Дж. Хиджмана и Джейн Элит ,Ошибка в случайном лесу: «Нужно по крайней мере два класса, чтобы сделать классификацию»

Все вроде нормально, но когда я пытаюсь запустить RandomForest я получаю сообщение об ошибке:

"Need at least two classes to do classification". 

код я использую:

library(randomForest) 
model <- factor (pa) ~ Bio3 + Bio2 + Bio16 + Bio11 + aspect + depth + dem + my_epikrat + corine_2000 
rfabies <- randomForest(model, data=envtrain, na.action=na.omit, ntrees=1000) 


Error in randomForest.default(m, y, ...) : 
    Need at least two classes to do classification. 

Что может привести к Эта проблема? Может кто-нибудь мне помочь?

+0

Убедитесь, что у вас действительно есть как минимум 2 различных значения для 'pa', особенно после пропущенных значений. –

ответ

6

Проблема: у вас есть только один уровень после преобразования pa в фактор. Скорее всего, у вас есть только присутствия.

Вы можете проверить это с помощью:

table(factor(envtrain$pa)) 

Если у вас есть только присутствия вам нужно будет генерировать псевдо-отсутствия. Для случайного леса рекомендуется такое же количество псевдо-отсутствий, как и присутствие here.