I have a steam engine which is equipped with the following sensors:

  • temperature sensor in the boiler room
  • temperature sensor in the heating room
  • pressure sensor in the boiler room
  • rotations-per-minute-sensor which measures rpm of the wheel, which is powered by the steam engine

What the steam engine does not measure is the current water level in the boiler. The time-series data is stored in a csv-file with the following structure:

| timestamp | temp_boiler | temp_heater | pressure_boiler | rpm |

With help of machine learning, I would like to predict the current water level in the boiler. As I am very new to Machine Learning, I do not really know how to accomplish this. I know that I cannot apply a linear regression, because it is a time-series data and there is a correlation between the current sensor values and the previous sensor values. Furthermore, I would need historic water level date in order to run the linear regression.

So what options are there? Do I have to use a Neuronal Network because I do not have any water level values? (Keywords: Sensorfusion, Virtual Sensor, Softsensor) Any help is greatly appreciated!

EDIT: As linear regression is not an option, I would like to know what the alternatives are. As I am a complete newbie to Machine Learning in general, I would like to know which algorithms or strategies I can use to solve this. I am not asking for code snippets or something like that. Just some input so that I can work this out!

  • $\begingroup$ Given your data, there is nothing that makes the constant prediction wrong (not "infinite water" nor "no water"), is there? Hence this is not a well-defined problem! You'll need some information, such as labeled events when there was no more water. $\endgroup$ Jun 1, 2019 at 6:55

1 Answer 1


The first major point here is that you do not have historical water level values. These are the labels that you'd use to teach/train any supervised model. Without labels, you are limited to using unsupervised methods. Have a look at the Wikipedia overview

You could try looking into something like clustering, with k-Means for example, which would be quite fast. Other clustering algorithms like DBSCAN are also very good, but your variables (temperature and pressure) might not necessarily cluster well on their density in the input space (the D in DBSCAN).

There are unsupervised neural network approaches, but these are a bit more involved. Autoencoders might be a good place to start.

Have a look here for some more ideas on specific models to try out, such as Denoising AutoEncoders, which can use recurrent components (such as LSTMs), which can perform well on time series data.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.