landslide4sense-rf
Made a try on the Landslide4Sense machine learning challenge using a Random Forest Classifier.
About Landslide4Sense
The Landslide4Sense challenge was a challenge hosted by IARAI (Institute of Advanced Research in Artificial Intelligence) 2022. In short they provided 3799 training images labelled with landslide presence/absence. Each image consists of 128x128 pixels with 14 bands, the first 12 bands are from the Sentinel-2 Satellite, the 13th are Slope from ALOS PALSAR and the 14th DEM (Digital Elevation Model) from ALOS PALSAR.
The aim of the challenge was to identify areas where landslides have occurred using machine learning on Satellite imagery which are open and frequently updated. You can read more about it at the challenge page.
Read and process the Landslide4Sense training images
The read_and_process_images.ipynb reads the 3799 downloaded Landslide4Sense training images and their corresponding labels, calculates indexes such as NDVI, NDMI... and outputs .npy files. The shell of this script have been borrowed by iamtekson@GitHub and modified to fit my needs.
Random Forest Classifier
The RF_classifier.ipynb:
- reads the .npy files,
- fits the model,
- evaluate feature importance,
- outputs an example image:
- ground truth,
- predicted output,
- the most important features
Example output:
Feature importance:
Classification report:
precision | recall | f1-score | support | |
---|---|---|---|---|
0.0 | 0.99 | 0.99 | 0.99 | 15189027 |
1.0 | 0.67 | 0.67 | 0.67 | 375773 |
accuracy | 0.98 | 15564800 | ||
macro avg | 0.83 | 0.83 | 0.83 | 15564800 |
weighted avg | 0.98 | 0.98 | 0.98 | 15564800 |