Ini adalah tindak lanjut dari posting sebelumnya: Algoritma Pembelajaran Mesin untuk Klasifikasi Penutupan Lahan .
Tampaknya metode klasifikasi Random Forest (RF) mendapatkan banyak momentum di dunia penginderaan jauh. Saya khususnya tertarik pada RF karena banyak kelebihannya:
- Pendekatan nonparametrik cocok untuk data penginderaan jauh
- Akurasi klasifikasi yang dilaporkan tinggi
- Pentingnya variabel dilaporkan
Dengan kekuatan ini, saya ingin melakukan klasifikasi lahan Acak Hutan menggunakan citra 4 band beresolusi tinggi. Ada banyak bahan dan penelitian yang menggembar-gemborkan keunggulan Random Forest, namun sangat sedikit informasi yang ada tentang bagaimana sebenarnya melakukan analisis klasifikasi. Saya kenal dengan regresi RF menggunakan R dan lebih suka menggunakan lingkungan ini untuk menjalankan algoritma klasifikasi RF.
Bagaimana cara saya mengumpulkan, memproses, dan memasukkan data pelatihan (yaitu berdasarkan citra udara CIR resolusi tinggi) ke dalam algoritma Hutan Acak menggunakan R? Saran langkah-bijaksana tentang bagaimana menghasilkan raster tutupan lahan yang diklasifikasikan akan sangat dihargai.
Jawaban:
Saya tidak yakin bahwa saya mengerti apa yang Anda maksud dengan "mengumpulkan" data. Jika Anda mengacu pada digitalisasi kepala-kepala dan penugasan kelas, ini paling baik dilakukan dalam GIS. Ada banyak opsi gratis yang cocok (i..e, QGIS, GRASS). Idealnya Anda akan memiliki data lapangan untuk melatih klasifikasi Anda.
Prosedur untuk klasifikasi menggunakan Hutan Acak cukup mudah. Anda dapat membaca data pelatihan Anda (yaitu, pembentukan titik) menggunakan "rgdal" atau "maptools", membaca dalam data spektral Anda menggunakan
raster::stack
, menetapkan nilai raster ke poin pelatihan Anda menggunakanraster:extract
dan kemudian meneruskannya kerandomForest
. Anda harus memaksa kolom "class" menjadi faktor agar RF mengenali model sebagai contoh klasifikasi. Setelah Anda memiliki model yang pas, Anda dapat menggunakan fungsi prediksi, melewati itu Anda raster tumpukan. Anda harus melewati argumen standar untuk memprediksi selain yang khusus untuk fungsi prediksi raster. Paket raster memiliki kemampuan untuk menangani raster "kehabisan memori" dan karena itu aman memori, bahkan dengan raster yang sangat besar. Salah satu argumen dalam fungsi prediksi raster adalah "nama file" yang memungkinkan raster ditulis ke disk. Untuk masalah multikelas, Anda perlu mengatur type = "response" dan index = 1 yang akan menghasilkan raster integer dari kelas Anda.Ada beberapa peringatan yang harus diperhatikan:
Saya memiliki fungsi untuk pemilihan model, ketidakseimbangan kelas, dan validasi dalam paket rfUtilities yang tersedia di CRAN.
Berikut ini beberapa kode sederhana untuk membantu Anda memulai.
sumber
Saya tahu bahwa utas ini agak lama, tetapi bagi siapa pun yang ingin mencoba klasifikasi data penginderaan jauh
R
, paket baru yang sangat menjanjikan telah dirilis.install.packages("RSToolbox")
Muncul dengan fungsi untuk klasifikasi tanpa pengawasan dan diawasi (menggunakan hutan acak). Informasi lebih lanjut dapat ditemukan di sini - http://bleutner.github.io/RStoolbox/
sumber
Di sini dan di sini ada tutorial tentang klasifikasi / regresi terawasi dengan R, yang mencakup contoh RandomForest.
sumber
Karena masalah di sini adalah dengan mengklasifikasikan gambar CIR resolusi tinggi, saya sarankan untuk tidak menggunakan pendekatan tradisional (berbasis pixel) yang digunakan untuk data satelit, tetapi untuk menghasilkan analisis segmentasi dari gambar udara dan kemudian menggunakan classier (RF).
sumber