I have a dataset of temporary streamflow monitoring data, with flows recorded every 5 minutes for a period of several months to a few years for several hundred streams across the country. I also have rain, temperature, and datetime data for each stream that I believe explain the flow data. My goal is to develop a machine learning algorithm to predict the flow for each stream. But specifically I'm interested in looking at the base (dry-weather) flow and wet-weather response of these streams and comparing them to each other, so it is more important that the model is easily interpretable than that it give good predictions. For this reason I'm leaning toward using linear regression.

My hypothesis is that there are some patterns that are consistent among all streams. For instance, base flows will change seasonally in a similar way between streams. Because I have short monitoring periods, it seems linear regression applied to each site individually may not learn these patterns that would be visible across multiple sites, to help predict flows for a stream in a different season, for example.

One simple way would be to create a categorical streamid feature, but this would require retraining the entire dataset for each new stream and my intuition tells me this would work poorly with linear regression.

I have looked a little at embeddings but I'm unsure if that's quite what I'm looking for. I am considering using some algorithm to determine some intermediate variables that describe each stream and correspond linearly to a second set of linear variables that are interpretable. For new streams, this would permit me to optimize only the first set of variables while retaining the knowledge from the entire dataset. But I don't know what key words would even describe this so my research is turning up blanks.

What are the best options to learn the behavior of one stream while using the knowledge gained from all stream datasets? I'm pretty new to machine learning and am having trouble finding a good algorithm that will work for this case, so any pointers in the right direction are much appreciated!

  • $\begingroup$ One of the keywords for this would be transfer learning, if I'm not mistaken. $\endgroup$ – deemel Jan 29 at 16:36
  • $\begingroup$ Yes, that is helpful. I guess what I'm wanting to do is to apply the same task to new domains. But my intuition still tells me that because my supervised learning task is much simpler than, say, neural network image recognition, there's probably some method out there that someone has already come up with. $\endgroup$ – David E. Jan 31 at 16:05
  • $\begingroup$ I vaguely remember reading an article about ensemble classifiers for domain adaption/transfer learning that might go in this direction, but I'm currently at a loss regarding a reference. I'll let you know if I come across it again. $\endgroup$ – deemel Jan 31 at 16:11
  • $\begingroup$ Ok, found an article on transfer learning that was really helpful in understanding it. The only references I can find about transfer learning are talking about neural networks. Can transfer learning be done in a similar way on a multi-layer linear regression model? I suspect so, but I need to look into this more. $\endgroup$ – David E. Feb 1 at 14:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.