Непрерывный индекс Бойса (CBI) в R

#r #machine-learning

#r #машинное обучение

Вопрос:

Я прогнозирую показатели экологической пригодности видов. Для этого я использую пакет каретки и выполняю задачи классификации. В литературе рекомендуется использовать непрерывный индекс Бойса (CBI) в качестве показателя производительности для надежности модели (см. 1). В настоящее время я настраиваю модели так, чтобы максимизировать AUC, а не CBI. Тем не менее, я получаю отличные оценки CBI (корреляция 1) как для данных обучения, так и для данных тестирования, используя ecospat ::ecospat.boyce, а также adamlilith / enmSdm::contBoyce2x, доступные через rdrr.io .

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

 head(lg$pred)
      pred      obs   absence  presence rowIndex parameter Resample
1 presence  absence 0.4144518 0.5855482        1      none    Fold1
2 presence presence 0.4402172 0.5597828        2      none    Fold1
3 presence presence 0.3647270 0.6352730        3      none    Fold1
4  absence  absence 0.7154779 0.2845221        6      none    Fold1
5 presence presence 0.1574952 0.8425048        9      none    Fold1
6 presence presence 0.0146231 0.9853769       10      none    Fold1
  

Я вызываю функции следующим образом

Ecospat::ecospat.boyce

fit = векторный или растровый слой, содержащий прогнозируемые значения пригодности

obs = вектор, содержащий прогнозируемые значения пригодности или xy-координаты (если «fit» является растровым слоем) точек проверки (записей присутствия)

 ecospat::ecospat.boyce(fit=lg$pred$presence,obs=lg$pred$presence[lg$pred$obs=="presence"],PEplot=T)
  

введите описание изображения здесь

adamlilith/enmSdm::contBoyce2x

pres = числовой вектор. Прогнозируемые значения в местах присутствия.

bg = числовой вектор. Прогнозируемые значения на отсутствующих / фоновых сайтах.

 contBoyce2x(pres=lg$pred$presence[lg$pred$obs=="presence"],bg=lg$pred$presence[lg$pred$obs=="absence"],graph=T)
  

введите описание изображения здесь

Правильно ли я понял входные аргументы? Возможно ли получить идеальную оценку CBI, даже не пытаясь настроить модели для максимизации этого показателя?

(1) Хирцель, А.Х., Ле Лей, Г., Хелфер, В., Рандин, С., Гисан, А. (2006). Оценка способности моделей пригодности среды обитания предсказывать присутствие видов. Экологическое моделирование 199, 142-152.

Комментарии:

1. Я не очень хорошо знаком с функцией ecospat, но я написал contBoyce2X и contBoyce в enmSdm. Я согласен, что хорошо быть подозрительным, но, похоже, здесь вы все делаете правильно.

2. Обратите внимание, что есть два способа интерпретировать, как Хирцель и др. описывают, как вычислять CBI … вы можете разделить пространство на ячейки, которые перекрываются так, что большинство точек покрывается дважды (например, ячейки типа 0-0.1, 0.05-0.15, 0.1-0.2, …) что и делает contBoyce2X. Вы также можете разделить его на ячейки, которые перекрывают точки несколько раз, например 0-0.01, 0.01-0.11, 0.02-0.12, и т.д. Это делает contBoyce в enmSdm. Известны различия между этими функциями в enmSdm и ecospat (см. Справку по contBoyce в enmSdm для примера). На практике различия очень незначительны (~ 0,02 или около того)

3. Спасибо за ваш ответ! Приятно знать, что я не допустил неосторожной ошибки. Я подробнее рассмотрю, что может привести к идеальным результатам

4. @Eden, интересно, может ли размер выборки иметь значение для различий между contBoyce и contBoyce2x ? Я попробовал обе функции для вида с очень низким размером выборки и там, где карта визуально корректна (у меня 17 точек присутствия, все в классах высокой пригодности). contBoyce2x Дает положительный CBI (0,83), тогда contBoyce как дает отрицательный CBI (-0,67), несмотря на то, что 15 из 17 точек присутствия имеют пригодность выше 0,97.

5. @Boris Я видел ту же проблему с CBI — он очень чувствителен к точным данным, которые вы используете (статистически он имеет низкую погрешность, но высокую дисперсию). CBI показывает, насколько события отличаются от фона, поэтому, если ваша модель предсказывает высокую пригодность во многих местах, CBI может быть низким. Кстати, версия CBI ecospat выдает почти те же значения (есть некоторая разница в том, как эта функция обрабатывает повторяющиеся значения, которые я не понимаю), поэтому проблема не сводится к contBoyce or contBoyce2X . Проблема больше в CBI. — Адам Смит