HomeAboutServicesPortfolioScrapersReviewsBlog Hire me
Case study

Predicting Wind-Turbine Failures Before They Happen

Category
Predictive Maintenance
Stack
TensorFlow / Keras · scikit-learn
Data
20k train / 5k test readings, 40 sensors
Status
Completed study
93.6%
Test recall on failures
96.4%
Test precision
0.950
Test F1 score

Problem

In wind energy, a missed generator failure means an expensive replacement; a false alarm only costs an inspection. The business asymmetry defines the ML goal: maximize recall on failures (about 5.5% of readings) without flooding the maintenance team with false positives.

Approach

Seven feed-forward network configurations were trained and compared under the same preprocessing (median imputation + standardization fitted only on training data): SGD vs Adam optimizers, deeper stacks, dropout regularization, class weighting, and their combinations. Model selection used validation recall, not accuracy — accuracy is nearly meaningless at 5.5% prevalence.

Technology

  • TensorFlow / Keras Sequential networks with ReLU hidden layers
  • Class weights to price a missed failure higher than a false alarm
  • Dropout (50%) to control the overfitting visible in unregularized runs
  • scikit-learn preprocessing and evaluation metrics

Train and validation loss for the selected model — curves track together, showing the dropout + class-weights configuration controls overfitting

Result

The selected configuration (two hidden layers + 50% dropout + class weights) generalized cleanly: on 5,000 unseen test readings it reached recall 0.936, precision 0.964, F1 0.950, and accuracy 0.9896 at the tuned operating point. In plain terms: roughly 94 of every 100 real failures are caught early, and when the model raises an alarm it is right about 96% of the time.

Need a similar system?

Describe your data and the decision it should support — you'll get a feasibility answer and a fixed quote.

Start a project →