# US 11,113,852 B2 · Systems and methods for trending patterns within time-series data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,113,852 B2
- Document ID: US11113852B2
- Status: Granted
- Kind: B2
- Application number: 15/266,987
- Filed: 2016-09-15
- Published: 2017-08-31
- Granted: 2021-09-07
- Earliest claimed: 2016-02-29
- Assignees: Oracle International Corporation
- Applicants: Oracle International Corporation
- Inventors: Dustin Garvey; Sampanna Shahaji Salunke; Uri Shaft
- Web page: https://patentgrep.com/patent/US11113852B2

## CPC

- G06T 11/26: Drawing of charts or graphs
- G06F 11/3452: {Performance evaluation by statistical analysis}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 18/2431: Multiple classes
- G06F 21/55: Detecting local intrusion or implementing counter-measures
- G06N 20/00: Machine learning
- G06Q 10/04: Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem" (market predictions or forecasting for commercial activities G06Q30/0202)
- G06Q 10/06: Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q 10/0631: Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q 10/1093: Calendar-based scheduling for persons or groups
- G06Q 30/0202: Market predictions or forecasting for commercial activities
- G06T 11/10: Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77)
- G06F 9/505: {considering the load}
- G06F 2218/12: Classification; Matching
- G06Q 10/06315: {Needs-based resource requirements planning or analysis}
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR

## Abstract

Systems and methods for trending patterns within a set of time-series data are described. In one or more embodiments, a set of one or more groups of data points that are associated with a particular seasonal pattern are generated within volatile and/or non-volatile storage. A set of pairwise slopes is determined for data point pairs within the set of one or more groups of data points. Based, at least in part on the plurality of pairwise slopes, a representative trend rate for the particular seasonal pattern is determined. A set of forecasted values is then generated within volatile or non-volatile storage based, at least in part, on the representative trend rate for the particular seasonal pattern.

## Claims

### Claim 1

A method comprising:
classifying, by a machine learning process, a first set of data points within a set of time-series data as sparse seasonal highs and a second set of data points within the set of time-series data as dense seasonal highs, wherein the sparse seasonal highs have a duration less than a threshold within a seasonal period, wherein the dense seasonal highs have a duration that satisfies the threshold within the seasonal period;
generating, within at least one of volatile or non-volatile storage based on said classifying, a plurality of groups of data points including (a) a first group that includes the first set of data points and represents sparse seasonal highs, and (b) a second group that includes the second set of data points and represents dense seasonal highs, wherein the first group of data points and the second group of data points span multiple cycles of the seasonal period;
determining a set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period;
assigning a respective weight to each respective pairwise slope in the set of pairwise slopes as a function of which seasonal cycle each data point used to compute the respective pairwise slope is in relative to other data points in the first group, wherein data points in a first seasonal cycle are assigned a first weight and wherein data points in a second seasonal cycle are assigned a second weight that is different than the first weight;
determining a cumulative weight for the sparse seasonal highs that is a balance for a cumulative total obtained by aggregating the respective weight for each respective pairwise slope in the set of pairwise slopes;
determining, based at least in part on the cumulative weight for the sparse seasonal highs and the plurality of pairwise slopes constrained to the set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period, a representative trend rate for the seasonal highs;
training a forecasting model based on the representative trend rate such that data points in the first group of data points representing sparse seasonal highs are not paired with data points from the second group of data points representing dense seasonal highs such that data points representing sparse seasonal highs are trended independently of data points representing dense seasonal highs;
generating, within at least one of volatile or non-volatile storage using the trained forecasting model and based at least in part on the representative trend rate for the sparse seasonal highs, a set of forecasted sparse seasonal high values; and
deploying or consolidating at least one computing resource to account for projected resource utilization in the set of forecasted sparse seasonal high values.

### Claim 2 (depends on 1)

The method of claim 1, wherein determining the representative trend rate for the sparse seasonal highs comprises interpolating to find a slope that is approximately fifty percent of the cumulative total weight.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
determining, using the representative trend rate for the sparse seasonal highs, a set of intercept values for data points that are associated with the sparse seasonal highs;
determining, based at least in part on the set of intercept values, a representative intercept for a trend of the sparse seasonal highs;
wherein the set of forecasted sparse seasonal high values is further generated based, at least in part, on the representative intercept.

### Claim 4 (depends on 3)

The method of claim 3, wherein the representative intercept is at least one median intercept value in the set of intercept values.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
determining, based on at least a second set of pairwise slopes, a second representative trend rate for seasonal lows; and
generating, within at least one of volatile or non-volatile storage, a second set of forecasted seasonal low values based, at least in part, on the second representative trend rate for the seasonal lows;
wherein the second representative trend rate is different than the first representative trend rate.

### Claim 6 (depends on 1)

The method of claim 1, wherein the representative trend rate is a weighted median that is determined based, at least in part, on the cumulative weight for the sparse seasonal highs, the method further comprising determining a second cumulative weight for seasonal lows and a second representative trend rate from a second weighted median that is based, at least in part, on the second cumulative weight for the seasonal lows.

### Claim 7

One or more non-transitory computer-readable media storing instructions, which when executed by one or more hardware processors, cause operations comprising:
classifying, by a machine learning process, a first set of data points within a set of time-series data as sparse seasonal highs and a second set of data points within the set of time-series data as dense seasonal highs, wherein the sparse seasonal highs have a duration less than a threshold within a seasonal period, wherein the dense seasonal highs have a duration that satisfies the threshold within the seasonal period;
generating, within at least one of volatile or non-volatile storage based on said classifying, a plurality of groups of data points including (a) a first group that includes the first set of data points and represents sparse seasonal highs, and (b) a second group that includes the second set of data points and represents dense seasonal highs, wherein the first group of data points and the second group of data points span multiple cycles of the seasonal period;
determining a set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period;
assigning a respective weight to each respective pairwise slope in the set of pairwise slopes as a function of which seasonal cycle each data point used to compute the respective pairwise slope is in relative to other data points in the first group, wherein data points in a first seasonal cycle are assigned a first weight and wherein data points in a second seasonal cycle are assigned a second weight that is different than the first weight;
determining a cumulative weight for the sparse seasonal highs that is a balance for a cumulative total obtained by aggregating the respective weight for each respective pairwise slope in the set of pairwise slopes;
determining, based at least in part on the cumulative weight for the sparse seasonal highs and the plurality of pairwise slopes constrained to the set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period, a representative trend rate for the seasonal highs;
training a forecasting model based on the representative trend rate such that data points in the first group of data points representing sparse seasonal highs are not paired with data points from the second group of data points representing dense seasonal highs such that data points representing sparse seasonal highs are trended independently of data points representing dense seasonal highs;
generating, within at least one of volatile or non-volatile storage using the trained forecasting model and based at least in part on the representative trend rate for the sparse seasonal highs, a set of forecasted sparse seasonal high values; and
deploying or consolidating at least one computing resource to account for projected resource utilization in the set of forecasted sparse seasonal high values.

### Claim 8 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein instructions for determining the representative trend rate for the sparse seasonal highs comprise instructions for interpolating to find a slope that is approximately fifty percent of the cumulative total weight.

### Claim 9 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the instructions further cause operations comprising:
determining, using the representative trend rate for the sparse seasonal highs, a set of intercept values for data points that are associated with the sparse seasonal highs;
determining, based at least in part on the set of intercept values, a representative intercept for a trend of the sparse seasonal highs;
wherein the set of forecasted sparse seasonal high values is further generated based, at least in part, on the representative intercept.

### Claim 10 (depends on 9)

The one or more non-transitory computer-readable media of claim 9, wherein the representative intercept is at least one median intercept value in the set of intercept values.

### Claim 11 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the instructions further causing operations comprising:
determining, based on at least a second set of pairwise slopes, a second representative trend rate for seasonal lows; and
generating, within at least one of volatile or non-volatile storage, a second set of forecasted seasonal low values based, at least in part, on the second representative trend rate for the seasonal lows;
wherein the second representative trend rate is different than the first representative trend rate.

### Claim 12 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the representative trend rate is a weighted median that is determined based, at least in part, on the cumulative weight for the sparse seasonal highs, wherein the instructions further cause determining a second cumulative weight for seasonal lows and a second representative trend rate from a second weighted median that is based, at least in part, on the second cumulative weight for the seasonal lows.

### Claim 13 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein determining the cumulative weight comprises generating a normalized weight for the respective weight assigned to each respective pairwise slope by dividing a sum of all weights assigned to the set of pairwise slopes.

### Claim 14 (depends on 13)

The one or more non-transitory computer-readable media of claim 13, wherein the cumulative weight is determined by summing the normalized weight for each respective pairwise slope.

### Claim 15 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the respective weight assigned to the respective pairwise slope is determined by multiplying a temporal weight assigned to each data point used to compute the respective pairwise slope.

### Claim 16 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, wherein the first weight and the second weight are computed as c/nc, where c represents which seasonal cycle the data points are in and nc represents a number of seasonal cycles used to train the forecasting model.

### Claim 17 (depends on 7)

The one or more non-transitory computer-readable media of claim 7, where in the instructions further cause applying a homogenization function to classify unclassified sub-periods with the seasonal period.

### Claim 18

A system comprising:
one or more hardware processors;
one or more non-transitory computer-readable media storing instructions which, when executed by the one or more hardware processors, cause operations comprising:
classifying, by a machine learning process, a first set of data points within a set of time-series data as sparse seasonal highs and a second set of data points within the set of time-series data as dense seasonal highs, wherein the sparse seasonal highs have a duration less than a threshold within a seasonal period, wherein the dense seasonal highs have a duration that satisfies the threshold within the seasonal period;
generating, within at least one of volatile or non-volatile storage based on said classifying, a plurality of groups of data points including (a) a first group that includes the first set of data points and represents sparse seasonal highs, and (b) a second group that includes the second set of data points and represents dense seasonal highs, wherein the first group of data points and the second group of data points span multiple cycles of the seasonal period;
determining a set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period;
assigning a respective weight to each respective pairwise slope in the set of pairwise slopes as a function of which seasonal cycle each data point used to compute the respective pairwise slope is in relative to other data points in the first group, wherein data points in a first seasonal cycle are assigned a first weight and wherein data points in a second seasonal cycle are assigned a second weight that is different than the first weight;
determining a cumulative weight for the sparse seasonal highs that is a balance for a cumulative total obtained by aggregating the respective weight for each respective pairwise slope in the set of pairwise slopes;
determining, based at least in part on the cumulative weight for the sparse seasonal highs and the plurality of pairwise slopes constrained to the set of pairwise slopes for data point pairs formed from data points that are in the first group of data points representing sparse seasonal highs and not in the second group of data points representing dense seasonal highs and that are separated by at least one cycle of the seasonal period, a representative trend rate for the seasonal highs;
training a forecasting model based on the representative trend rate such that data points in the first group of data points representing sparse seasonal highs are not paired with data points from the second group of data points representing dense seasonal highs such that data points representing sparse seasonal highs are trended independently of data points representing dense seasonal4ows highs;
generating, within at least one of volatile or non-volatile storage using the trained forecasting model and based at least in part on the representative trend rate for the sparse seasonal highs, a set of forecasted sparse seasonal high values; and
deploying or consolidating at least one computing resource to account for projected resource utilization in the set of forecasted sparse seasonal high values.

### Claim 19 (depends on 18)

The system of claim 18, wherein instructions for determining the representative trend rate for the sparse seasonal highs comprise instructions for interpolating to find a slope that is approximately fifty percent of the cumulative total weight.

### Claim 20 (depends on 18)

The system of claim 18, wherein the instructions further cause operations comprising:
determining, using the representative trend rate for the sparse seasonal highs, a set of intercept values for data points that are associated with the sparse seasonal highs;
determining, based at least in part on the set of intercept values, a representative intercept for a trend of the sparse seasonal highs;
wherein the set of forecasted sparse seasonal high values is further generated based, at least in part, on the representative intercept.
