I’ve been working as a data scientist for a little more than a year now. That’s not that much experience, but I still want to take this moment to reflect on my insights and experience.

Experience

I’ve worked on two projects. The first was on predictive maintenance. The second is on forecasting for expected operations of clients.

Predictive Maintenance

When monitoring for predictive maintenance we hope to detect machine degradation before that degradation turns into machine failure. This requires transforming the timeseries input into a machine profile which is then used to determine degradation. To determine the profile we require to identify the operating conditions. These consist of both internal and external conditions. For example, how the machine has been running for the past hour, and what the weather conditions are.

Forecasting for Expected Operations

In the other case we have a number of clients and we forecast their behaviour so that we can act on it. We receive a timeseries of their current behaviour. We again determine a profile. This time the profile informs us on the expected behaviour depending again on their operating conditions.

Common Problems

  • Different definitions among the same dimension from different sources
    • Due to engineering units
    • Due to client implementation instead of industry standardization
  • Miscellaneous information on the signal
    • Error codes on out-of-bounds values
    • Transmission issues
  • Off seasons performance
  • Retraining
  • Model evaluation

Desired Tools and Skills

  • Consistent algorithmic performance
    • Docker
    • Testing (pytest, unittest)
  • Algorithmic traceability
    • Logging
    • Catching exceptions
    • Progress marking
  • Algorithmic flexibility
    • Modular coding
    • Experiment setup
    • Shadow setup
    • Documentation (sphinx)
  • Algorithmic performance
    • Time profiling (profile)
    • Memory profiling (memory-profiler)
  • Data quality
    • Data testing (great expectations)
    • Model assumption testing
  • Model performance
    • Breakpoint analysis (statsmodels)
    • Confidence intervals
    • Quantity in the neighborhood
  • Model tracking
    • Mlflow
  • Information store
    • Global storage for information in Exception/Warning/Success handling
    • Used with context
    • Variable retrieval is plausible, but always raises a warning
    • Variable overwriting raises optionally a warning
  • Feature market
    • DataHandlers
    • Lazy Data Retrieval (for memory sensitive data)
    • Automatic keying