UAV fault classifier
A Gradient Boosting classifier that predicts the fault class of a UAV flight window from its
telemetry. Trained on Bashifu/uav-fault-symptom-reports.
What it does
Given the 20 telemetry columns of a five-second flight window (voltage, motor output, vibration,
GPS quality, and related signals), it predicts one of seven classes: normal or one of six fault
families.
Performance
Measured on flights the model never saw during training or model selection.
| Test accuracy (single window) | 79.3% |
| Test macro F1 (single window) | 0.797 |
| Accuracy, five-window flight consensus | see notebook 02b, section on consensus |
| Fault detection recall | see notebook 02b, Part F |
Low-severity faults, and low-voltage or environmental-disturbance flights specifically, carry most of the errors - both this model and the text-based retrieval system in this project confuse them with normal flight, which is an honest limitation of the underlying signal, not a fixable bug.
How to use it
import joblib
from huggingface_hub import hf_hub_download
model_path = hf_hub_download(repo_id="Bashifu/uav-fault-classifier", filename="model.joblib")
model = joblib.load(model_path)
metadata_path = hf_hub_download(repo_id="Bashifu/uav-fault-classifier", filename="metadata.json")
The metadata file lists the exact feature columns and their order, and the class order the model's
output corresponds to - both are required to call model.predict correctly.
Limitations
- Trained on synthetic academic data, not real flight telemetry; not certified for autonomous real-aircraft use.
- The random-forest-style feature importances and the ablation in notebook 02b describe this model's behaviour, not a causal account of what causes each fault in reality.
- Class order and feature order must match
metadata.jsonexactly; the model does not validate its own input.