# Machine Learning: Identify Patterns in Time-Series Data

I work in renewable energy. My company gathers a lot of data from equipment. This typically includes process data (such as transformer temperature, line voltages, currents, etc.) and discrete alarms (e.g. breaker trip, inverter alarm values, transformer over temperature alarm). This is a rough example of what our data looks like (to be read as lines of csv):

• timestamp, tag, value
• 5/25/2016 14:30:01, INVERTER_1.VOLTAGE_DC, 249.5
• 5/25/2016 14:30:06, INVERTER_1.VOLTAGE_DC, 250.1
• 5/25/2016 14:45:02, TRANSFORMER_1.TEMP_ALARM, 0
• 5/25/2016 14:45:15, TRANSFORMER_1.TEMP_ALARM, 1

I'd like to start performing some pattern analysis on this data at rest, not real-time (at least for now). I believe what I'd like to attempt is unsupervised feature learning, but I'm not entirely sure. It would be nice (I think) to apply machine learning to 1) identify any patterns that aren't obvious and 2) allow an algorithm to identify signatures of patterns in the data (e.g. all inverters on a single feeder lose communications when a breaker is open).

My initial question: Is this considered time-series data? In my research so far it seems that time-series data is referencing data that is a function of time. For most of my data, as a domain expert, I don't believe that defining functions for my data is useful for this analysis. Also, in my research, it seems as though time-series data refers to real-valued values and not discrete.

• I think that "identity any patterns" is way too general. so what is an interesting pattern ? do you have any example for this particular case ? – reuns May 25 '16 at 1:14
• I'm mostly interested in operational outages of equipment and equipment uptime. This would probably be a good initial focus. So, let's say, for example, we're seeing communications outages to our inverters after ~25 days of runtime . This is a real example from a past project where the inverter communications module had a memory leak that would make it cease communications. This wouldn't be extremely obvious, but it would be nice to see a correlation between the inverter uptime data value and the communications outage (inverter data NaN for a prolonged period of time). – theoneandonly2 May 25 '16 at 6:44
• What could be more simple is to focus on identifying and grouping patterns from past data. My example above: inverters on a feeder lose communications when a breaker is open. Another example: we lose meteorological data at the same time as when we lose inverter communications (this is because the meteorological station is powered from the inverter enclosure). In both examples here communication loss leads to a gap in data rather than specific data values. This characteristic is what I'm struggling with the most. I don't see much research for analyzing and categorizing a lack of data. – theoneandonly2 May 25 '16 at 6:48

Yes, your data is "time-series data", since it's a sequence of measurements of the same variable collected over time. Time-series data can be collected continuously or at discrete intervals.

Your sample data can be expressed as a function of time - maybe it helps to think of the "function" as the process that produces the measured output, the input to the function is the date/time stamp, and the output is the value of that parameter at that time:

$\text{INVERTER_1.VOLTAGE_DC}( \text{5/25/2016 14:30:01} ) = 249.5$

You don't necessarily need to define the (general) function(s) that produce your data to perform time-series analysis - it's enough to know the value of the function at your measurement times. The range of time-series data can be continuous & real-valued, discrete, or even non-numeric.

It's certainly possible to use machine learning techniques on time-series data, e.g. for forecasting, anomaly detection, or pattern identification.

Neural nets might be a good choice if you're interested in predictive modeling. One possible setup is to use the current parameter measurements as input to the neural net, and the output is the predicted future value or "state of the system" (e.g., whether a breaker is open or not).

WEKA is a good open-source machine-learning toolkit that contains implementations of many different ML algorithms.