Discovering Temporal Patterns in Multiple Granularities

Many events repeat themselves as the time goes by. For example, an institute pays its employees on the first day of every month. However, events may not repeat with a constant span of time. In the payday example here, the span of time between each two consecutive paydays ranges between 28 and 31 days. As a result, regularity, or temporal pattern, has to be captured with a use of granularities (such as day, week, month, and year), oftentimes multiple granularities. This paper defines the above patterns, and proposes a number of pattern discovery algorithms. To focus on the basics, the paper assumes that a list of events with their timestamps is given, and the algorithms try to find patterns for the events. All of the algorithms repeat two possibly interleaving steps, with the first step generating possible (called candidate) patterns, and the second step verifying if candidate patterns satisfy some user-given requirements. The algorithms use pruning techniques to reduce the number of candidate patterns, and adopt a data structure to efficiently implement the second step. Experiments show that the pruning techniques and the data structure are quite effective.