ML-Based Risk Scoring
The formula-based hazard score weights factors by fixed rules. This page adds a Random Forest classifier trained on confirmed GLOF events, letting the data determine which factors matter most. Where the two scores diverge, the scatter plot below highlights lakes the formula may be over- or under-rating.
These probabilities do not measure GLOF risk. Positive examples come from the event catalogue and negative examples from the simulated lake inventory, so the classifier can separate the two classes on artefacts of how each file was written rather than on hazard: a model trained only on "is this value a round number?" separates them perfectly (AUC 1.00). Cross-validation scores from this setup measure provenance, not skill. Treat the page as a demonstration of the workflow.
Feature importance
Formula score vs ML probability
Lake comparison
| ID | Lake | Formula score | ML probability | Risk class | Dam type |
|---|
Model card
Model: RandomForestClassifier (scikit-learn),
n_estimators=100, random_state=42,
class_weight='balanced'.
Training data: positive examples from the GLOF event catalogue
(data/glof_events.csv) β real events across the wider Hindu Kush
Himalaya (Nepal, Bhutan, Tibet, Sikkim), with unverified attribute values. Negative examples
are inventory lakes with no documented event, matched by normalised name so that
e.g. 'Lower Barun Lake' and 'Lower Barun' are recognised as the same lake.
Features: area_km2, area_growth_rate, dam_type_encoded, slope_downstream, distance_to_settlement_km, elevation_m. Dam type encoding: moraine=2, ice=1, bedrock=0.
Known limitation: the positive and negative rows come from separately authored files whose numeric formatting differs, which leaks class membership. Any accuracy figure from this setup overstates real predictive skill.
Retrain: python data/train_model.py.