← Back to portfolio

Predictive Maintenance for Wind Turbine Generators (ReneWind)

Cost-sensitive classification and explainable ML to predict wind turbine generator failures and reduce maintenance spend through proactive repairs. Tuned for the economics an operator actually faces: a missed failure costs a replacement, a false alarm costs an inspection. This is the proven predictive-maintenance pattern the SustainAI anchor build extends into sustainment and supply-exception triage.

Predictive Maintenance • Classification Wind Energy & Sensors Python • scikit-learn • Keras EDA • Cost-Based Optimization Model Explainability
Greg Burns
Data & AI Practitioner • U.S. Marine Corps Veteran
burnsgregm@gmail.com
burnsgregm.netlify.app
linkedin.com/in/gregburns

1. Project Overview

ReneWind, a wind energy company, wanted to move from reactive repairs to predictive maintenance for its wind turbine generators. Using a ciphered sensor dataset with 40 engineered predictors and 25,000 labeled observations (20k train / 5k test), I built a suite of classification models to predict generator failures before breakdown.

The key challenge was highly asymmetric business costs: missing a true failure (False Negative) leads to expensive generator replacement and extended downtime, while false alarms (False Positives) only incur relatively cheap inspection and repair costs. I encoded this into a custom cost function and used it to drive model selection and threshold tuning.

The final solution is a tuned neural network classifier with an optimized decision threshold that achieves ~88% recall on failures on unseen data while materially reducing expected maintenance costs compared to baseline strategies.

📄 View Full Project Notebook (HTML)

2. Business Problem & Context

2.1 Business Context

Wind energy is capital-intensive. Unplanned generator failures are especially costly because they combine:

  • High replacement costs for failed generators
  • Lost revenue from downtime while units are offline
  • Emergency maintenance logistics and labor premiums

ReneWind had extensive sensor coverage across turbines (environment, tower, gearbox, blades, brake, etc.), but limited ability to convert that data into forward-looking failure risk.

2.2 Cost-Asymmetric Objective

The target variable is binary (1 = failure, 0 = no failure), but the business stakes are not symmetric:

  • True Positives (TP): Correctly predicted failures → planned repair cost
  • False Negatives (FN): Missed failures → generator replacement + major downtime
  • False Positives (FP): False alarms → inspection cost & minor disruption

From ReneWind’s perspective, it is much better to over-inspect than to miss a true failure. That philosophy guided the design of a custom cost function and a strong emphasis on recall and cost-weighted performance, not just accuracy.

3. Data & Feature Engineering

The dataset is a transformed, ciphered version of ReneWind’s proprietary sensor data:

  • 40 numeric predictors representing environmental and component-level sensor signals
  • 20,000 training rows and 5,000 test rows with binary labels
  • Non-interpretable column names, requiring data-driven feature discovery rather than domain semantics

Key data preparation and EDA steps:

  • Checked for and handled class imbalance in failure vs. non-failure records
  • Standardized / scaled features where appropriate for distance-based and neural models
  • Explored distributions and correlations to identify high-signal sensors
  • Split data into train / validation / test sets to prevent leakage and overfitting
Pandas NumPy Matplotlib & Seaborn Train/Validation/Test Split Feature Scaling

4. Modeling Approach

4.1 Baseline & Benchmark Models

I first established strong baselines using standard ML algorithms and default thresholds:

  • Logistic Regression
  • Tree-based models (Random Forest, Gradient Boosting)
  • LightGBM as a high-performing gradient boosting benchmark

These models provided early insight into feature importance and the trade-offs between recall and precision under the default 0.5 decision threshold.

4.2 Custom Cost Function

To align model evaluation with business reality, I defined a custom cost metric that:

  • Heavily penalizes False Negatives (missed failures)
  • Moderately penalizes True Positives (repairs) and False Positives (inspections)
  • Assigns negligible cost to True Negatives

This metric was used alongside recall, precision, and F1-score to select the final model and to optimize the decision threshold.

4.3 Neural Network Champion Model

After benchmarking traditional models, I experimented with several neural network architectures:

  • Fully connected multilayer perceptrons with different depths and widths
  • Regularization via dropout and L2 penalties
  • Batch normalization to stabilize training

Through iterative tuning, I arrived at a deep, regularized MLP that became the champion model. I then:

  • Performed hyperparameter tuning (learning rate, batch size, hidden units)
  • Optimized the classification threshold (≈ 0.29) against the custom cost metric
  • Validated performance on a true hold-out test set

4.4 Explainability & Diagnostics

To help engineers trust and act on model outputs, I:

  • Analyzed feature importances from tree-based models and the neural network
  • Verified that sensors already suspected by engineers showed up as strong predictors
  • Created model explanation plots to show which sensor readings drive individual predictions

This confirmed that the model was learning physically plausible failure patterns rather than exploiting noise or artifacts.

5. Results & Business Impact

On the hold-out test set, the final tuned neural network achieved:

  • High recall on failures: ~88% recall on generator failures
  • Balanced precision: Acceptable level of false alarms given the low inspection cost
  • Cost reduction vs. baseline: Lower expected maintenance cost compared to:
    • Always “no failure” baseline (purely reactive)
    • Standard models using a naive 0.5 threshold

From an operations standpoint, this translates to:

  • More failures caught early, enabling planned repairs instead of catastrophic replacements
  • Better prioritization of inspections across the turbine fleet
  • A data-backed path to systematically reduce downtime and maintenance spend

6. My Role & Responsibilities

  • Framed the business problem in terms of predictive maintenance and asymmetric costs
  • Owned data exploration, cleaning, and feature scaling for the entire dataset
  • Implemented and compared multiple baseline ML models
  • Designed and coded the custom cost function used for model selection
  • Developed, tuned, and evaluated the neural network champion model
  • Created explainability artifacts (feature importance and example-level explanations)
  • Documented methodology, results, and business recommendations in the project notebook

7. What I’d Improve Next

  • Extend the cost model using actual dollar values from ReneWind’s finance team
  • Turn the notebook into a deployable inference service with a REST API
  • Add a simple operator-facing dashboard highlighting high-risk turbines and key drivers
  • Explore time-aware models that incorporate temporal patterns in sensor readings
  • Formalize a model monitoring and retraining schedule using live turbine data

8. Assets