# Classification or Clustering Approach for Time Series Data of Flow

I have a dataset which contains time-series data of water flow over time. I have a flow meter connected to a kitchen faucet, and I am trying to cluster or classify specific water usage events.

The data is collected every second, and in each row I am given a value for the amount of gallons which are flowing through my flow meter. For example, I am trying to classify someone washing their hands, filling a teapot, cleaning dishes, etc...

If I run some experiments, I can classify each event and turn it into a supervised learning problem. But at the moment, none of the water events are classified, so it is unsupervised right now.

Is there a way that I could create clusters of events based on the duration/volume of the flow?

A very abridged version of my dataset looks like the following:

Using the k-means algorithm for this problem might be a good starting point. You could define an "event" as a continuous time interval with non-zero waterflow (or a time interval where the water is never off for more than $x$ seconds in a row, which might be a more accurate way to capture events such as washing dishes). You could then extract features from those events, such as the length of the time interval, the number of gallons used, or the variance of the number of gallons used per second, for example. The k-means algorithm can then be used to perform unsupervised classification of these events, where k is the number of types of events in your dataset.