Это продолжение предыдущего поста: Алгоритмы машинного обучения для классификации земного покрова .
Похоже, что метод классификации случайных лесов (RF Forest ) набирает обороты в мире дистанционного зондирования. Я особенно заинтересован в РФ из-за многих ее сильных сторон:
- Непараметрический подход, подходящий для данных дистанционного зондирования
- Высокая заявленная точность классификации
- Значение переменной сообщается
Учитывая эти сильные стороны, я хотел бы выполнить классификацию случайных лесных земель с использованием 4-полосных изображений высокого разрешения. Существует много материалов и исследований, рассказывающих о преимуществах Random Forest, но очень мало информации о том, как на самом деле выполнить классификационный анализ. Я знаком с RF-регрессией с использованием R и предпочел бы использовать эту среду для запуска алгоритма RF-классификации.
Как собрать, обработать и ввести данные обучения (т.е. на основе аэрофотоснимков CIR высокого разрешения) в алгоритм Random Forest с использованием R? Будем весьма благодарны за любые пошаговые рекомендации по созданию классифицированного растра растительного покрова.
Ответы:
Я не уверен, что понимаю, что вы подразумеваете под «сбором» данных. Если вы имеете в виду хедс-ап оцифровку и назначение классов, это лучше всего сделать в ГИС. Есть много бесплатных опций, которые подойдут (например, QGIS, GRASS). В идеале вы должны иметь полевые данные для обучения вашей классификации.
Процедура классификации с использованием случайных лесов довольно проста. Вы можете читать свои тренировочные данные (то есть, точечный шейп-файл), используя «rgdal» или «maptools», считывать свои спектральные данные, используя
raster::stack
, назначать растровые значения вашим тренировочным точкам, используя,raster:extract
а затем передавать ихrandomForest
, Вам нужно будет привести столбец «класса» в фактор, чтобы RF распознал модель как экземпляр классификации. Когда у вас есть модель соответствия, вы можете использовать функцию предсказания, передавая ее в растровый стек. Вам нужно будет передать стандартные аргументы для прогнозирования в дополнение к аргументам, специфичным для функции прогнозирования растра. Растровый пакет имеет возможность обрабатывать растры «вне памяти» и поэтому безопасен для памяти даже при работе с очень большими растрами. Одним из аргументов в функции прогнозирования растра является «имя файла», позволяющее записать растр на диск. Для задачи мультикласса вам нужно установить type = "response" и index = 1, которые будут выводить целочисленный растр ваших классов.Есть несколько предостережений, которые следует отметить:
У меня есть функции для выбора модели, дисбаланса класса и проверки в пакете rfUtilities , доступном на CRAN.
Вот простой код для начала работы.
источник
Я знаю, что эта ветка немного старая, но для тех, кто хочет попробовать классифицировать данные дистанционного зондирования
R
, был выпущен очень многообещающий новый пакет.install.packages("RSToolbox")
Он поставляется с функциями как для неконтролируемой, так и для контролируемой классификации (с использованием случайных лесов). Более подробную информацию можно найти здесь - http://bleutner.github.io/RStoolbox/
источник
Здесь и здесь приведены учебные пособия по контролируемой классификации / регрессии с R, которые включают примеры RandomForest.
источник
Поскольку проблема здесь заключалась в классификации CIR-изображения высокого разрешения, я предлагаю не использовать традиционный подход (основанный на пикселях), используемый для спутниковых данных, а произвести анализ сегментации аэрофотоснимка и затем использовать классификатор (RF).
источник