Predicting glucose readings using stacked machine learning models

A stacked machine learning model configuration addresses the limitations of conventional glucose prediction systems by incorporating event data and confidence-based inputs, enhancing prediction accuracy and enabling proactive diabetes management.

JP7767305B2Active Publication Date: 2025-11-11DEXCOM INC
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022562550
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-03
Filing Date
2021-06-01
Publication Date
2025-11-11
Estimated Expiration
2041-06-01

AI Technical Summary

Technical Problem

Conventional glucose prediction systems fail to accurately predict future glucose levels due to their reliance on historical measurements alone, neglecting the impact of events such as meals, exercise, and insulin administration, leading to potentially dangerous health conditions.

Method used

A stacked configuration of multiple machine learning models is employed, including neural networks and state machines, to generate glucose and event predictions, utilizing historical data and additional factors like insulin administration, exercise, and meal patterns, with confidence-based input selection to enhance accuracy.

Benefits of technology

The stacked machine learning models provide more accurate glucose and event predictions, enabling timely interventions to prevent adverse health conditions, thereby improving diabetes management and reducing complications.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007767305000001
    Figure 0007767305000001
  • Figure 0007767305000002
    Figure 0007767305000002
  • Figure 0007767305000003
    Figure 0007767305000003
Patent Text Reader

Abstract

The CGM platform includes stacked machine learning models such that an output generated by one of the machine learning models can be provided as an input to another of the machine learning models. The multiple machine learning models include at least one model trained to generate glucose measurement predictions and another model trained to generate event predictions for future time intervals. Each of the stacked machine learning models is configured to generate a respective output when provided with at least one of glucose measurements provided by a CGM system worn by a user or additional data describing user behavior or other aspects that will affect a person's glucose in the future as input. The predictions can then be output, such as via communication and / or display of a notification regarding the corresponding prediction.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] INCORPORATION-BY-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Provisional Patent Application No. 63 / 034257, filed June 3, 2020. Each of the foregoing applications is incorporated herein by reference in its entirety, and each is hereby expressly made a part of this specification. [Background technology]

[0002] Diabetes is a metabolic condition that affects hundreds of millions of people and is one of the leading causes of death worldwide. For people with diabetes, access to treatment is critical to their survival. With proper treatment, serious damage to the heart, blood vessels, eyes, kidneys, and nerves caused by diabetes can be largely avoided. Proper treatment for people with type 1 diabetes generally involves monitoring glucose levels throughout the day and regulating those levels with some combination of insulin, diet, and exercise so that levels remain within a desired range. Advances in medical technology have led to the development of various systems for monitoring glucose levels. While monitoring a person's current glucose levels is useful for determining diabetes treatment methods, knowing what a person's glucose levels will be in the future is more useful because it allows individuals or caregivers to take action to mitigate potentially harmful health conditions associated with changes in glucose levels before such conditions occur. However, conventional techniques and systems for generating glucose level predictions suffer from inaccuracies due to the limited information considered when generating such glucose level predictions.

[0003] For example, systems employing conventional glucose prediction techniques may generate glucose level predictions that account for only historical glucose measurements as input. However, a user's historical glucose levels (e.g., a glucose trace over the past 12 hours) alone may not accurately represent the various factors that affect the user's glucose levels over future time intervals, especially if the user participates in or is otherwise affected by events (e.g., meals, exercise, insulin administration, etc.) that affect glucose levels in the future intervals. Because conventional systems alone cannot account for these events and additional information beyond historical glucose levels, they may generate inaccurate glucose level predictions that misinform the user about their glucose response and potentially lead to dangerous health conditions. Summary of the Invention

[0004] To overcome these problems, glucose measurement prediction and glucose-impacting event prediction using a stack of multiple machine learning models are utilized. Given the number of people wearing continuous glucose monitoring (CGM) systems, which continuously generate measurements, CGM platforms that provide CGM systems with sensors to detect glucose levels and maintain the measurements generated by such systems may have enormous amounts of data, e.g., measurements equivalent to hundreds of millions of patient hospital days. However, this amount of data is virtually impossible for humans to process and reliably identify patterns in a robust number of state spaces, if not in practice.

[0005] In one or more implementations, the CGM platform includes multiple machine learning models arranged in a stacked configuration such that an output generated by one of the machine learning models can be provided as an input to another one of the machine learning models for use in generating that output. In some implementations, the multiple machine learning models include at least one model trained to generate glucose measurement predictions and another model trained to generate event predictions for future time intervals. One or more of the stacked machine learning models can be configured to generate their respective outputs when provided with input glucose measurements obtained from a CGM system worn by a user. Alternatively or additionally, the stacked machine learning models can be configured to generate their respective outputs when provided with additional data as input describing one or more other aspects that will affect a person's glucose in the future, such as, for example, application usage activity, administered insulin, exercise, etc.

[0006] By utilizing multiple machine learning models in a stacked configuration, this additional data may, in some implementations, be obtained from the output of one of the multiple machine learning models. Outputs of various models of the multiple machine learning models are selectively provided as inputs to other models of the models based on confidence values ​​associated with the outputs to ensure that only reliable predictions are used to influence other predictions generated by the stacked model configuration. The glucose measurement predictions and event predictions may then be output, such as via communication and / or display of a notification regarding the corresponding predictions.

[0007] This Summary introduces a selection of concepts in a simplified form that are further described below in the Detailed Description. As such, this Summary is not intended to identify essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter. [Brief explanation of the drawings]

[0008] The detailed description is given with reference to the accompanying drawings.

[0009] [Figure 1] 1 is an illustration of an environment in an exemplary implementation operable to employ the techniques described herein. [Figure 2] The example continuous glucose monitoring (CGM) system of FIG. 1 is depicted in more detail. [Figure 3] 1 depicts an example implementation in which CGM device data, including glucose measurements, is routed to different systems in relation to glucose measurements and event predictions. [Figure 4] An exemplary implementation of the prediction system of FIG. 3 for generating glucose measurement predictions and event predictions using stacked machine learning models is depicted in more detail. [Figure 5] 4 depicts an example implementation of the stacked machine learning models implemented by the predictive system of FIG. 3 , according to one or more implementations. [Figure 6] 4 depicts an example implementation of the stacked machine learning models implemented by the predictive system of FIG. 3 , according to one or more implementations. [Figure 7] 4 depicts an example implementation of the stacked machine learning models implemented by the predictive system of FIG. 3 , according to one or more implementations. [Figure 8] 10 depicts an additional example implementation in which one of the stacked machine learning models implemented by the prediction system of FIG. 3 generates a glucose measurement prediction, according to one or more implementations. [Figure 9] An additional exemplary implementation of the prediction system of FIG. 3 for generating an event prediction using glucose measurements, glucose measurement predictions, and information influencing the glucose measurement predictions, according to one or more implementations, is depicted in more detail. [Figure 10]4 depicts in more detail an example implementation of the prediction system of FIG. 3 for generating and outputting notifications based on event predictions and glucose reading predictions, according to one or more implementations. [Figure 11] 1 depicts an example implementation of a user interface for notifying a user based on event predictions and glucose reading predictions and receiving feedback from the notifications, according to one or more implementations. [Figure 12] 4 depicts in more detail an example implementation of the prediction system of FIG. 3 in which a machine learning model is trained to generate an event prediction or a glucose measurement prediction. [Figure 13] 1 depicts a procedure in an exemplary implementation in which a stack of machine learning models generates event predictions and glucose measurement predictions based on historical glucose measurements. [Figure 14] 1 depicts a procedure of an example implementation in which predictive information output by a machine learning model of a stack of machine learning models is selectively filtered as input to at least one other model of the stack of machine learning models based on a confidence level associated with the output predictive information. [Figure 15] 1 depicts the procedure of an exemplary implementation in which a stack of machine learning models is trained to generate event predictions and glucose measurement predictions based on historical glucose measurements of a user population. [Figure 16] 1 illustrates an example system, including an example computing device, which represents one or more computing systems and / or devices that may implement various techniques described herein. DETAILED DESCRIPTION OF THE INVENTION

[0010] overview Monitoring glucose levels is useful in treating diabetes, for example, to identify when an individual is susceptible to potentially adverse health conditions associated with problematic glucose levels (e.g., hyperglycemia or hypoglycemia). Thus, the ability to predict an individual's future glucose levels is particularly advantageous because it allows the individual or caregiver to take corrective action to mitigate such adverse health conditions before they occur.

[0011] Conventional approaches to predicting future glucose levels are limited in that they only consider historical glucose information (e.g., applying a regression model to historical glucose information to extrapolate future glucose level predictions). As a result, such conventional approaches cannot account for the occurrence of events and other factors that affect an individual's glucose levels, such as the occurrence of events not labeled in the historical glucose information, and therefore do not account for predicting future glucose levels.

[0012] For example, as shown in historical glucose information, drops in glucose levels may correspond to a variety of different events (e.g., exercise, insulin administration, etc.). While each event may generally be characterized by a drop in glucose levels, a person's response to different ones of these events may vary widely. For example, a person's glucose levels may exhibit one response after insulin administration and a significantly different response after working out. Predicting future glucose levels without distinguishing between the different responses (e.g., considering only drops in glucose measurements without considering the person's different responses to insulin administration and exercise) can result in significant miscalculations, which in turn can have dramatic consequences.

[0013] Continuing with this example, a person's glucose levels may historically decline over a longer period of time after a standard dose of insulin, as opposed to historical declines in glucose levels after exercise. Thus, conventional approaches that fail to account for different event responses or incorrectly associate glucose level declines with specific events will generate inaccurate glucose level predictions. Consequently, inaccurate glucose level predictions may result in the recommendation of an incorrect insulin dose (e.g., a low dose of insulin that is insufficient to cover future glucose level spikes not represented by the glucose level prediction). Similarly, the accuracy associated with these conventional approaches decreases as the time associated with the predicted glucose level moves further into the future relative to the current time.

[0014] To overcome these problems, glucose prediction using multiple machine learning models arranged in a stacked configuration is utilized, where each of the stacked machine learning models can be configured according to a variety of machine learning models, such as neural networks (e.g., recurrent neural networks such as long short-term memory (LSTM) networks), state machines, Monte Carlo methods, particle filters, reinforcement learning algorithms (e.g., Markov decision processes), and regression models, to name just a few.

[0015] In one or more implementations, a continuous glucose monitoring (CGM) platform includes this stack of machine learning models, where at least one model in the stack is configured to generate glucose measurement predictions for an individual user based on training including historical glucose measurements of a user population. In some implementations, the model may be further configured to receive as input additional data describing one or more factors that may affect the glucose level of the individual user, which may be received from storage or from one or more other machine learning models in the stack, as described in more detail below. The glucose measurements of the user population and individual users may be provided by CGM systems worn by users of the user population and individual users. By obtaining and maintaining measurements generated by these CGM systems, a CGM platform may have a vast amount of data (e.g., measurements from hundreds of millions of patient hospital days) that conventional systems cannot handle.

[0016] According to these implementations, the stack further includes at least one machine learning model configured to generate an event prediction that describes whether a particular event is likely to occur in the future, given one or more of the historical glucose measurements, the glucose measurement predictions, or the additional data as input. For example, the stack may include one machine learning model configured to predict whether an individual will eat during a specified time period, another model configured to predict whether an individual will exercise during a specified time period, another model configured to predict whether an individual will administer insulin during a specified time period, another model for predicting whether an individual will sleep or rest during a specified time period, another model for predicting whether an individual will be stressed during a future time period, another model for predicting the individual's glucose during a specified time period, etc. In some implementations, the specified time period may correspond to the current time, such that the event prediction corresponds to a prediction of whether a particular event is currently occurring.

[0017] In addition to predicting whether a particular event is currently occurring and / or is likely to occur in the future, each of the stacked machine learning models may be further configured to predict one or more values ​​describing particular characteristics and / or attributes of the respective event that can be used to predict how a particular individual will respond to the event (e.g., predict how the individual's glucose level will change as a result of the event). For example, in addition to, or instead of, predicting whether an individual will eat a meal, the machine learning model may be configured to predict the caloric intake associated with the meal and / or the individual's expected glucose response to the caloric intake. As another example, in addition to, or instead of predicting whether an individual will sleep, the machine learning model may be configured to predict a sleep score indicative of sleep quality (e.g., duration, ratio of rapid eye movement (REM) sleep to non-REM sleep, etc.) and / or the individual's expected glucose response to such sleep corresponding to the score. In a further example, in addition to, or instead of predicting whether an exercise event will occur, the machine learning model may be configured to predict information describing the individual's vital characteristics (e.g., heart rate, body temperature, etc.) during and after the event and / or corresponding glucose level changes based on these vital characteristics. In this manner, the machine learning models described herein can be configured to predict whether an event will occur during a future time interval and, alternatively, the characteristics and / or attributes of the event that may affect an individual's glucose levels.

[0018] By arranging in a stacked configuration, predictions output by one machine learning model of the stack can be provided as input to one or more other machine learning models of the stack (e.g., machine learning models configured to generate glucose measurement predictions), thereby enabling consideration of various factors that affect glucose levels beyond historical glucose measurements.

[0019] Thus, one or more of the stacked machine learning models may be configured to generate respective predictions after being trained using one or more of the user population's historical glucose measurements or additional data describing user behavior associated with various events. In one or more implementations, these or different models of the stacked machine learning models may be configured to generate respective predictions comprising information indicating a confidence value associated with the prediction. Predictions may then be selectively provided as input to the stacked machine learning models based on the associated confidence value, such that a prediction is provided as input to a downstream model in the stack only if the prediction is associated with a confidence value that meets a confidence threshold. In this manner, the stacked configuration improves the accuracy associated with the generated predictions by eliminating machine learning models from considering input information that does not accurately reflect actual observed events.

[0020] The glucose measurement predictions and event predictions generated by the stacked machine learning models can then be output, such as for generating notifications regarding upcoming glucose measurements or events. The notifications can be communicated over a network to one or more computing devices, including a computing device associated with the user (e.g., for output via an application on the CGM platform), a computing device associated with a healthcare provider, or a computing device associated with a telemedicine service, to name just a few. In some implementations, the notifications are accompanied by feedback prompts regarding the associated predictions that can be used by the CGM system to refine model parameters, refine event profiles, and improve the accuracy associated with individual model outputs.

[0021] By predicting upcoming events that affect glucose and future glucose measurements, and notifying users, healthcare providers, and / or telemedicine services about upcoming glucose measurements, the described stacked machine learning models enable actions to be taken to mitigate potentially harmful health conditions before they occur. Advantageously, the more accurate and timely predictions of future glucose provided by the stacked machine learning models enable users and various other stakeholders to make better-informed decisions about how to treat diabetes and achieve better outcomes through treatment. In doing so, serious damage to the heart, blood vessels, eyes, kidneys, and nerves, as well as death, due to diabetes, can be largely avoided.

[0022] The following description first describes an example environment in which the techniques described herein may be employed. Then, example implementation details and procedures that may be performed in the example environment and other environments are described. Performance of the example procedures is not limited to the example environment, and the example environment is not limited to performance of the example procedures.

[0023] Example Environment 1 illustrates an environment 100 in an exemplary implementation operable to employ glucose measurement prediction and event prediction using the stacked machine learning models described herein. The illustrated environment 100 includes a human 102, depicted as wearing a continuous glucose monitoring (CGM) system 104, an insulin delivery system 106, and a computing device 108. The illustrated environment 100 also includes other users in a user population 110 of the CGM system, a CGM platform 112, and an Internet of Things (IoT) 114. The CGM system 104, the insulin delivery system 106, the computing device 108, the user population 110, the CGM platform 112, and the IoT 114 are communicatively coupled via a network 116.

[0024] Alternatively or additionally, one or more of the CGM system 104, the insulin delivery system 106, or the computing device 108 may be communicatively coupled in other manners, such as using one or more wireless communication protocols and / or techniques. By way of example, the CGM system 104, the insulin delivery system 106, and the computing device 108 may communicate with each other using one or more of Bluetooth (e.g., a Bluetooth Low Energy link), near-field communication (NFC), 5G, etc. The CGM system 104, the insulin delivery system 106, and the computing device 108 may utilize various types of communication to form a closed-loop system between each other. In this manner, the insulin delivery system 106 may deliver insulin based on a series of glucose measurements in real time as the glucose measurements are obtained by the CGM system 104 and as glucose measurement predictions are generated.

[0025] In accordance with the described techniques, the CGM system 104 is configured to continuously monitor the glucose of the human 102. The CGM system 104 may be configured with, for example, a CGM sensor that continuously detects analytes indicative of the glucose of the human 102 and enables the generation of glucose measurements. In the illustrated environment 100, these measurements are represented as glucose measurements 118. Further aspects of this functionality and the configuration of the CGM system 104 are described in more detail below with respect to FIG. 2.

[0026] In one or more implementations, the CGM system 104 transmits the glucose measurements 118 to the computing device 108 via one or more of the communication protocols described herein, such as via wireless communication. The CGM system 104 may communicate these measurements in real time (e.g., as the glucose measurements 118 are generated) using a CGM sensor. Alternatively or additionally, the CGM system 104 may communicate the glucose measurements 118 to the computing device 108 at specified time intervals (e.g., every 30 seconds, every minute, every 5 minutes, every hour, every 6 hours, daily, etc.). In some implementations, the CGM system 104 may communicate the glucose measurements in response to a request from the computing device 108 (e.g., a request initiated when the computing device 108 generates a glucose measurement prediction for the human 102, information about the glucose measurements of the human 102, etc.). Thus, the computing device 108 may at least temporarily maintain the glucose measurement 118 of the human 102 (e.g., by storing the glucose measurement 118 in a computer-readable storage medium, as described in further detail below with respect to FIG. 16).

[0027] Although illustrated as a wearable device (e.g., a smart watch), the computing device 108 may be configured in a variety of ways without departing from the spirit or scope of the described techniques. By way of example and not limitation, the computing device 108 may be configured as a different type of mobile device (e.g., a mobile phone or tablet device). In one or more implementations, the computing device 108 may be configured as a dedicated device associated with the CGM platform 112 (e.g., a device that supports functionality for obtaining glucose readings 118 from the CGM system 104, performing various calculations related to the glucose readings 118, displaying information related to the glucose readings 118 and the CGM platform 112, communicating the glucose readings 118 to the CGM platform 112, combinations thereof, etc.). However, in contrast to implementations in which the computing device 108 is configured as a mobile phone, the computing device 108 may exclude functionality that would otherwise be available in a mobile phone or wearable configuration when configured as a dedicated CGM device, such as functionality for making phone calls, taking images, utilizing social networking applications, etc.

[0028] In some implementations, computing device 108 represents more than one device. For example, computing device 108 may represent both a wearable device (e.g., a smartwatch) and a mobile phone. In such multiple device implementations, different devices of the multiple devices may be capable of performing at least some of the same operations, such as receiving glucose readings 118 from CGM system 104, communicating glucose readings 118 to CGM platform 112 via network 116, and displaying information related to glucose readings 118. Alternatively or additionally, different devices in multiple device implementations may support different functionality relative to each other, such as functionality limited by computing instructions for a particular device.

[0029] In an exemplary implementation in which the computing devices 108 represent separate devices (e.g., a smartwatch and a mobile phone), one device may be configured with various sensors and functionality for measuring various physiological markers (e.g., heart rate, respiration, blood velocity, etc.) and activity (e.g., steps, elevation change, etc.) of the human 102. In this exemplary multiple-device implementation, another device may not be configured with such sensors or functionality or may include a limited amount of such sensors or functionality. For example, one of the multiple devices may have functionality not supported by another of the multiple devices, such as a camera for capturing images of meals that can be used to predict future glucose levels, an amount of computing resources (e.g., battery life, processing speed, etc.) that allows the device to efficiently perform calculations related to glucose measurements 118, etc. Even in scenarios in which one of the multiple devices (e.g., a smartwatch) is capable of performing such calculations, the computing instructions may limit the performance of those calculations for one of the multiple devices in order not to burden the multiple devices and to more efficiently utilize available resources. To this extent, computing device 108 may be configured in different ways and represent a different number of devices beyond the specific exemplary implementation described herein.

[0030] As described above, computing device 108 communicates glucose readings 118 to CGM platform 112. In the illustrated environment 100, glucose readings 118 are depicted as being stored in storage device 120 of CGM platform 112. Storage device 120 represents one or more types of storage (e.g., a database) capable of storing glucose readings 118. In this manner, storage device 120 may be configured to store various other data in addition to glucose readings 118. For example, according to one or more implementations, human 102 represents a user of at least CGM platform 112 and one or more other services (e.g., services offered by one or more third-party service providers). In this manner, human 102 may be associated with personal identification information (e.g., a username) and, at some point, may be required to provide authentication information (e.g., a password, biometric data, telehealth service information, etc.) to access CGM platform 112 using the personal identification information. This personally attributable information, authentication information, and other information about the person 102 (e.g., demographic information, healthcare provider information, payment information, prescription information, health metrics, user preferences, account information associated with wearable devices, social network account information, other service provider information, etc.) may be maintained in storage device 120.

[0031] Storage device 120 is further configured to maintain data regarding other users in user population 110. With this in mind, glucose measurements 118 in storage device 120 include glucose measurements from CGM sensors of CGM system 104 worn by person 102 and may also include glucose measurements from CGM sensors of CGM systems worn by other people represented in user population 110. Similarly, glucose measurements 118 of these other people in user population 110 may be communicated by their respective devices to CGM platform 112 via network 116 so that the other people are associated with their respective user profiles within CGM platform 112.

[0032] Data analytics platform 122 represents functionality for processing glucose measurements 118, alone and / or with other data maintained in storage device 120, to generate various predictions, such as by using a stacked configuration of various machine learning models. Based on these predictions, CGM platform 112 may provide notifications related to the predictions (e.g., alerts, recommendations, or other information generated based on the predictions). For example, CGM platform 112 may provide notifications to human 102, to a medical professional associated with human 102, a combination thereof, or the like. While depicted separately from computing device 108, portions or the entire data analytics platform 122 may alternatively or additionally be implemented in computing device 108. Data analytics platform 122 may also use additional data obtained via IoT 114 to generate these predictions.

[0033] For example, according to one or more implementations, the data analytics platform 122 is configured to generate glucose measurement predictions for the human 102 along with event predictions for events related to the human 102 based on the glucose measurements 118 and additional information, such as information received from the IoT 114. For example, the data analytics platform 122 can implement multiple machine learning models in a stacked configuration, with each machine learning model configured to output a different prediction (e.g., a glucose measurement prediction, an insulin administration event prediction, an exercise prediction, a meal prediction, etc.). By utilizing such a stacked configuration of machine learning models, the data analytics platform 122 is configured to consider various factors that affect the glucose level of the human 102, thereby providing more accurate glucose measurement predictions compared to traditional approaches that consider only glucose measurements as input. Predictions generated by individual models in the stacked machine learning models can be selectively provided as inputs to at least one of the other models (e.g., as inputs to machine learning models downstream in the stacked configuration) to improve the accuracy of the glucose measurement predictions.

[0034] For example, in an exemplary scenario where the stacked configuration includes multiple machine learning models that are individually configured to generate different predictions (e.g., a person's glucose response to an upcoming insulin dose, a person's glucose response to an upcoming exercise, a person's glucose response to an upcoming meal, and a person's upcoming glucose measurements), the prediction information can be selectively provided as input to the stack of machine learning models based on various criteria, such as a confidence level associated with each prediction. By providing this prediction information as input, along with glucose measurements 118 and additional data describing the individual's behavior, the stacked configuration of machine learning models can reliably output glucose measurement predictions and predictions of upcoming events that may affect glucose levels.

[0035] For example, one such model in a stacked configuration may process glucose readings 118 and additional data related to the human 102 to predict whether the human 102 will have an upcoming insulin administration event that may affect the value of the glucose reading prediction for a given time step and in a particular way. Another such model may predict whether the human 102 will have an upcoming exercise event, and another such model may predict whether the human 102 will have an upcoming meal event that will affect the value of the glucose reading prediction for the time step and how each particular event will affect the value. The stacked configuration allows the output prediction of one model to be used to influence the prediction of another model.

[0036] For example, if one model predicts with high confidence that the human 102 will exercise over a future period of time, that prediction may be provided as input to a second model configured to predict whether the human 102 will administer insulin over a future period of time, and a third model configured to predict whether the human 102 will eat over a future period of time. In this example scenario, the output predictions of the second and third models may be influenced by the exercise event prediction of the first model and additional data describing historical behavior for the human 102 that indicates that the human 102 is exercising but is unlikely to be eating or administering insulin.

[0037] Predictions output by one stacked machine learning model may be selectively provided as input to other models in the stack based on a confidence value associated with the prediction, so that a low-confidence (e.g., less than 90% confidence) output prediction does not adversely affect predictions generated by other machine learning models in the stack. In some implementations, the confidence level or value associated with a prediction may be influenced by explicit user feedback from the human 102 to which the prediction pertains. For example, if the data analytics platform 122 predicts that the human 102 is likely to have an upcoming insulin administration event, the prediction may be output to the human 102 (e.g., via the computing device 108) along with a prompt confirming that the insulin administration event is scheduled to occur.

[0038] If the human 102's response confirms that an insulin administration event is approaching, the confidence level associated with the predicted insulin administration event can be set to 100%, and the predicted glucose level response associated with the predicted insulin administration event can be provided as input to a different machine learning model in a stacked configuration. In contrast, if the human 102's response indicates that an insulin administration event is not approaching, the prediction of the upcoming insulin administration event can be discarded to avoid inappropriately influencing the output predictions generated by the different machine learning models. In this manner, the data analytics platform 122 is configured to utilize various factors in addition to the human 102's previous glucose levels to more accurately generate glucose measurement predictions.

[0039] To supply some of this additional information beyond previous glucose measurements, the IoT 114 represents various sources that can provide data describing the human 102 and the human 102's activities as a user and real-world activities of one or more service providers. By way of example, the IoT 114 may include the user's various devices (e.g., cameras, cell phones, laptops, exercise equipment, etc.). To this end, the IoT 114 may provide information about the user's interactions with the various devices (e.g., interactions with web-based applications, photographs taken, communications with other users, etc.). The IoT 114 may also include various real-world items (e.g., shoes, clothing, sporting goods, appliances, automobiles, etc.) that are configured with sensors that provide information describing behavior, such as, for example, the number of steps, foot force on the ground, stride length, the user's body temperature (and other physiological measurements), the user's ambient temperature, the types of food stored in the refrigerator, the types of food removed from the refrigerator, driving habits, etc. The IoT 114 may also include third parties in the CGM platform 112, such as healthcare providers (e.g., healthcare providers of the human 102) and manufacturers (e.g., manufacturers of the CGM system 104, insulin delivery system 106, or computing device 108), who may provide medical and manufacturing data, respectively, that may be leveraged by the data analytics platform 122. Indeed, the IoT 114 may include devices and sensors that may use machine learning and glucose measurements to provide rich data for use in connection with glucose prediction without departing from the spirit or scope of the described techniques. Consider the following description of FIG. 2 in the context of measuring glucose, for example, continuously, and obtaining data describing such measurements.

[0040] Figure 2 depicts in more detail an exemplary implementation 200 of the CGM system 104 of Figure 1. In particular, the illustrated example 200 includes a top view and a corresponding side view of the CGM system 104.

[0041] The CGM system 104 is shown to include a sensor 202 and a sensor module 204. In the illustrated example 200, the sensor 202 is depicted in a side view as being subcutaneously inserted into the skin 206 (e.g., the skin of the human 102). The sensor module 204 is depicted in a top view as a rectangle with a dashed outline. The CGM system 104 is further shown to include a transmitter 208. The dashed lines of the rectangle representing the sensor module 204 are used to indicate that the sensor module 204 may be housed in or otherwise implemented within the housing of the transmitter 208. In this example 200, the CGM system 104 further includes an adhesive pad 210 and an attachment mechanism 212.

[0042] In operation, the sensor 202, adhesive pad 210, and attachment mechanism 212 may be assembled to form an application assembly configured to be applied to the skin 206 such that the sensor 202 is inserted subcutaneously, as depicted. In such a scenario, the transmitter 208 may be attached to the assembly after it has been applied to the skin 206, such as via the attachment mechanism 212. Additionally or alternatively, the transmitter 208 may be incorporated as part of the application assembly, allowing the sensor 202, adhesive pad 210, attachment mechanism 212, and transmitter 208 (with sensor module 204) to all be applied to the skin 206 simultaneously. In one or more implementations, the application assembly is applied to the skin 206 using a separate applicator (not shown). The application assembly may also be removed by peeling the adhesive pad 210 from the skin 206. As such, the CGM system 104 and the various components illustrated in FIG. 2 are one example form factor, and the CGM system 104 and its components may have different form factors without departing from the spirit or scope of the described techniques.

[0043] In operation, the sensor 202 is communicatively coupled to the sensor module 204 via at least one communication channel, which may be a "wireless" connection or a "wired" connection. Communications from the sensor 202 to the sensor module 204 or from the sensor module 204 to the sensor 202 may be implemented actively or passively, and these communications may be continuous (e.g., analog) or discrete (e.g., digital).

[0044] The sensor 202 may be a device, molecule, and / or chemical that changes or causes a change in response to an event that is at least partially independent of the sensor 202. The sensor module 204 is implemented to receive an indication of a change to or caused by the sensor 202. For example, the sensor 202 may include glucose oxidase that responds to glucose and oxygen to form hydrogen peroxide that is electrochemically detectable by electrodes of the sensor module 204. In this example, the sensor 202 may be configured as or include a glucose sensor configured to detect an analyte in blood or interstitial fluid that is indicative of glucose levels using one or more measurement techniques.

[0045] In another example, the sensor 202 (or additional sensors of the CGM system 104, not shown) can include first and second electrical conductors, and the sensor module 204 can electrically detect changes in electrical potential between the first and second electrical conductors of the sensor 202. In this example, the sensor module 204 and the sensor 202 are configured as a thermocouple, such that changes in electrical potential correspond to changes in temperature. In some examples, the sensor module 204 and the sensor 202 are configured to detect a single analyte (e.g., glucose). In other examples, the sensor module 204 and the sensor 202 are configured to detect multiple analytes (e.g., sodium, potassium, carbon dioxide, and glucose). Alternatively or additionally, the CGM system 104 includes multiple sensors for detecting not only one or more analytes (e.g., sodium, potassium, carbon dioxide, glucose, and insulin), but also one or more environmental conditions (e.g., temperature). Thus, the sensor module 204 and the sensor 202 (and any additional sensors) can detect the presence of one or more analytes, the absence of one or more analytes, and / or changes in one or more environmental conditions.

[0046] In one or more implementations, although not depicted in the illustrated example of FIG. 2 , the sensor module 204 may include a processor and memory. By utilizing such a processor, the sensor module 204 may generate a glucose reading 118 indicative of one or more changes (e.g., a change in an analyte, a change in environmental conditions, etc.) based on communication with the sensor 202. Based on communication with the sensor 202, the sensor module 204 is further configured to generate CGM device data 214. The CGM device data 214 represents a communicable package of data including at least one glucose reading 118. Alternatively or additionally, the CGM device data 214 includes other data, such as multiple glucose readings 118, a sensor identification 216, a sensor status 218, or combinations thereof. In one or more implementations, the CGM device data 214 may include other information, such as one or more of a temperature corresponding to the glucose reading 118 and measurements of other analytes. As such, the CGM device data 214 may include a variety of data in addition to at least one glucose reading 118 without departing from the spirit or scope of the described techniques.

[0047] During operation, the transmitter 208 may wirelessly transmit the CGM device data 214 as a stream of data to the computing device 108. Alternatively or additionally, the sensor module 204 may buffer the CGM device data 214 (e.g., in memory of the sensor module 204) and have the transmitter 208 transmit the buffered CGM device data 214 at various intervals, such as time intervals (every 1 second, 30 seconds, 1 minute, 5 minutes, 1 hour, etc.), storage intervals (when the buffered CGM device data 214 reaches a threshold amount of data or number of instances of CGM device data 214), combinations thereof, etc.

[0048] In addition to generating and communicating CGM device data 214 to the computing device 108, the sensor module 204 is configured to perform additional functionality according to one or more implementations. This additional functionality may include generating a prediction of the person's 102's future glucose levels and communicating notifications based on the prediction (e.g., notifications of expected upcoming events, warnings when the prediction indicates that the person's 102's glucose levels are likely dangerous, etc.). This computational capability of the sensor module 204 is advantageous, especially when connectivity to services via the network 116 is limited or nonexistent. In this way, a person can be alerted to dangerous conditions without relying on connectivity (e.g., Internet connectivity). This additional functionality of the sensor module 204 may also include initially or continuously calibrating the sensor 202 and any other sensors in the CGM system 104.

[0049] With respect to CGM device data 214, sensor identification 216 represents information that uniquely identifies sensor 202 from other sensors (e.g., other sensors in other CGM systems 104, other sensors previously or subsequently implanted in skin 206, etc.). By uniquely identifying sensor 202, sensor identification 216 may also be used to identify other aspects of sensor 202, such as the manufacturing lot of sensor 202, packaging details for sensor 202, shipping details for sensor 202, etc. In this manner, various problems detected with sensors manufactured, packaged, and / or shipped in a similar manner to sensor 202 may be identified and used in different ways (e.g., to calibrate glucose readings 118, notify users to change or discard defective sensors, notify manufacturing facilities of machining issues, etc.).

[0050] The sensor status 218 represents the state of the sensor 202 at a given time (e.g., the state of the sensor at the same time that one of the glucose readings 118 is generated). To this end, the sensor status 218 may include an entry for each glucose reading 118, such that there is a one-to-one relationship between the glucose reading 118 and the status captured in the sensor status 218 information. Generally, the sensor status 218 describes the operational state of the sensor 202. In one or more implementations, the sensor module 204 may identify one of several pre-defined operational states for a given glucose reading 118. The identified operational state may be based on communications from the sensor 202 and / or characteristics of those communications.

[0051] By way of example, the sensor module 204 may include (e.g., in memory or other storage) a lookup table having a predetermined number of operating states and a basis for selecting one state from another. For example, the predetermined state may include a “normal” operating state, and the basis for selecting this state may be that communications from the sensor 202 fall within thresholds indicative of normal operation (e.g., within an expected time threshold, within an expected signal strength threshold, within an environmental temperature threshold suitable for continued operation as expected, combinations thereof, etc.). The predetermined state may also include operating states that indicate one or more characteristics of the sensor 202 communications are outside the range of normal activity, potentially resulting in errors in the glucose reading 118.

[0052] For example, the basis for these non-normal operating conditions may include receiving a communication from the sensor 202 outside of a threshold expected time, detecting a signal strength of the sensor 202 outside of a threshold of expected signal strength, detecting an environmental temperature outside of a suitable temperature for continued operation as expected, detecting that the human 102 has changed orientation relative to the CGM system 104 (e.g., rolled over in bed), etc. The sensor status 218 may indicate a variety of aspects related to the sensor 202 and the CGM system 104 without departing from the spirit or scope of the described techniques.

[0053] Having discussed an example environment and an example CGM system, we now turn to a description of some example details of techniques for generating event predictions and glucose measurement predictions using stacked machine learning models, according to one or more implementation aspects.

[0054] Glucose Measurements and Event Prediction FIG. 3 depicts an example implementation 300 in which CGM device data, including glucose measurements, is routed to different systems in relation to glucose measurement prediction and event prediction using machine learning.

[0055] The illustrated example 300 includes the example CGM system 104 and computing device 108 introduced in connection with FIG. 1. The illustrated example 300 also includes a data analysis platform 122 and a storage device 120, which, as described above, store glucose measurements 118. In this example 300, the CGM system 104 is depicted as transmitting CGM device data 214 to the computing device 108. As described in connection with FIG. 2, the CGM device data 214 includes, among other data, the glucose measurements 118. The CGM system 104 may transmit the CGM device data 214 to the computing device 108 in a variety of ways.

[0056] The illustrated example 300 also includes a CGM package 302. The CGM package 302 may include CGM device data 214 (e.g., glucose readings 118, sensor identification 216, and sensor status 218) and supplemental data 304, or portions thereof. In this example 300, the CGM package 302 is depicted as being routed from the computing device 108 to the storage device 120 of the CGM platform 112. Generally, the computing device 108 includes functionality for generating the supplemental data 304 based at least in part on the CGM device data 214. The computing device 108 also includes functionality for packaging the supplemental data 304 with the CGM device data 214 to form the CGM package 302 and communicating the CGM package 302 to the CGM platform 112 (e.g., via the network 116) for storage on the storage device 120. Thus, the CGM package 302 may include data collected by the CGM system 104 (e.g., glucose measurements 118 detected by the sensor 202) and supplemental data 304 generated by a computing device 108 that acts as an intermediary between the CGM system 104 and the CGM platform 112, such as the user's mobile phone or smartwatch.

[0057] With regard to the supplemental data 304, the computing device 108 may generate various supplemental data to supplement the CGM device data 214 included in the CGM package 302. According to the described techniques, the supplemental data 304 may describe one or more aspects of a user's context such that a correspondence between the user's context and the CGM device data 214 (e.g., glucose measurements 118) can be identified. By way of example, the supplemental data 304 may describe a user's interactions with the computing device 108 and may include, for example, data extracted from an application log describing particular application interactions (e.g., selections made, actions performed). The supplemental data 304 may also include clickstream data describing clicks, taps, and presses performed in connection with the input / output interface of the computing device 108. As another example, the supplemental data 304 may include gaze data describing where the user is looking (e.g., with respect to a display device associated with the computing device 108 or when the user is looking away from the device), voice data describing the user's or other users' audible commands and other spoken phrases (e.g., including passively listening to the user), device data describing the device (e.g., make, model, operating system and version, camera type, apps the computing device 108 is running), etc.

[0058] The supplemental data 304 may also describe other aspects of the user's context, such as the user's location, the temperature at that location (e.g., outdoors, proximate to the user using temperature-sensing functionality), the weather at that location, the user's altitude, barometric pressure, contextual information obtained related to the user via the IoT 114 (e.g., the food the user is eating, the manner in which the user is using sports equipment, the clothing the user is wearing), and other environmental aspects. The supplemental data 304 may also describe health-related aspects detected about the user, including, for example, step count, heart rate, sweating, the user's temperature (e.g., detected by the computing device 108), and the like. To the extent that the computing device 108 may include functionality to detect or otherwise measure some of the same aspects as the CGM system 104, data from these two sources may be compared for accuracy, fault detection, and the like. The types of supplemental data 304 described above are examples only, and the supplemental data 304 may include more, fewer, or different types of data without departing from the spirit or scope of the techniques described herein.

[0059] Regardless of how reliably the supplemental data 304 describes the user's context, the computing device 108 may communicate the CGM packages 302 (e.g., including the CGM device data 214 and the supplemental data 304) to the CGM platform 112 for processing at various intervals. In one or more implementations, the computing device 108 may stream the CGM packages 302 to the CGM platform 112 in substantially real time (e.g., because the CGM system 104 continuously provides the CGM device data 214 to the computing device 108). Alternatively, or additionally, the computing device 108 may communicate one or more of the CGM packages 302 to the CGM platform 112 at predetermined intervals (e.g., every second, every 30 seconds, every hour, etc.).

[0060] Although not depicted in the illustrated example 300, the CGM platform 112 may process the CGM package 302 and store at least some of the CGM device data 214 and supplemental data 304 in the storage device 120. As described in further detail below, from the storage device 120, this data may be provided to or otherwise accessed by the data analysis platform 122, thereby enabling the data analysis platform to generate predicted glucose readings along with predictions of upcoming events.

[0061] In one or more implementations, the data analytics platform 122 is configured to ingest data from a third party 306 (e.g., a third-party service provider) for use in connection with generating predictions of future glucose levels and future events. By way of example, the third party 306 may generate its own additional data, such as through devices (e.g., exercise equipment, wearable devices, etc.) that the third party 306 manufactures and / or deploys. The illustrated example 300 is shown communicated to the data analytics platform 122 from the third party 306 and includes third-party data 308, which represents additional data generated by or otherwise communicated from the third party.

[0062] As mentioned above, the third party 306 may manufacture and / or deploy the associated device. Additionally or alternatively, the third party 306 may obtain data through other sources, such as a corresponding application. Thus, this data may include user-entered data entered through a corresponding third-party application (e.g., a social networking application, a lifestyle application, etc.). With this in mind, the data generated by the third party 306 may be organized in a variety of ways, including a dedicated data structure, a text file, an image captured via the user's mobile device, a format representing text entered into an open field or dialog box, a format representing option selections, combinations thereof, etc.

[0063] The third-party data 308 may describe various aspects related to one or more services provided by a third party without departing from the spirit or scope of the described techniques. The third-party data 308 may include, for example, application interaction data describing user usage or interaction with a particular application provided by the third party 306. Generally, the application interaction data enables the data analytics platform 122 to determine the usage or amount of usage of a particular application by users of the user population 110. Such data may include, for example, data extracted from application logs describing user interactions with a particular application, clickstream data describing clicks, taps, and presses performed in connection with the application's input / output interface, etc. Accordingly, in one or more implementations, the data analytics platform 122 is configured to receive third-party data 308 generated or otherwise obtained by the third party 306.

[0064] The data analytics platform 122 is illustrated including a prediction system 310. In accordance with the described system, the prediction system 310 is configured to generate predictions 312 based on glucose measurements 118. Specifically, the prediction system 310 is configured to generate predictions 312 of future glucose measurements and future events over a future time interval based on glucose measurements 118 obtained during a previous time interval and confidence levels associated with various predictions 312. For example, the prediction system 310 is configured to predict the occurrence (or lack thereof) of future events over a time interval based on glucose measurements 118 obtained during a previous time interval, historical user information, and combinations thereof. As described in further detail below, the predictions 312 may be based on glucose measurements 118 ordered according to timestamps to form a time-series glucose measurement (e.g., glucose trace). In one or more implementations, for example, the additional data used by the prediction system 310 to generate the predictions 312 may include one or more portions of CGM device data 214, supplemental data 304, third-party data 308, data from the IoT 114, combinations thereof, and the like. As described below, the prediction system 310 may generate such predictions 312 by using multiple machine learning models arranged in a stacked configuration. These models may be trained or otherwise constructed using the glucose measurements 118 and additional data obtained from the user population 110.

[0065] Based on the generated prediction 312, the data analytics platform 122 may also generate a notification 314. For example, the notification 314 may alert the user to an upcoming event prediction, such as when the user is likely to eat a meal and experience a change in glucose level in response to eating a meal (e.g., consuming a particular food or drink). Alternatively or additionally, the notification 314 may notify the user that the user is expected to take insulin, experience stress, exercise, sleep, etc., where each event may be associated with a different expected response, represented by a glucose level. The notification 314 may also provide assistance to the user in determining how to mitigate adverse health effects associated with problematic glucose levels, such as by recommending that the user take an action (e.g., consume a particular food or drink, download an application to the computing device 108, seek medical attention immediately, reduce insulin dosage, modify exercise behavior), continue a behavior (e.g., continue eating in a particular way or continue exercising in a particular way), change a behavior (e.g., change eating or exercise habits, modify basal or bolus insulin doses), combinations thereof, etc.

[0066] In such a scenario, the prediction 312 and / or notification 314 are communicated from the data analytics platform 122 and output via the computing device 108. In the illustrated example 300, the prediction 312 and notification 314 are further illustrated as being communicated to the computing device 108. Additionally or alternatively, the prediction 312 and / or notification 314 may be routed to a decision support platform and / or a validation platform before the prediction 312 and / or notification 314 are delivered to the computing device 108. In the context of generating the prediction 312, consider the following description of FIG.

[0067] FIG. 4 depicts in more detail an example implementation 400 of the prediction system 310 of FIG. 3 for using multiple machine learning models arranged in a stacked configuration to predict glucose measurements for future time intervals and whether an event will occur during the future time interval.

[0068] In the depicted example 400, the prediction system 310 is configured to receive glucose measurements 118 (e.g., from storage 120), timestamps 402, and additional data 404. According to one or more implementations, the glucose measurements 118 and the additional data 404 may correspond to the person 102. Each of the glucose measurements 118 corresponds to one of the timestamps 402. In this manner, there may be a one-to-one relationship between the glucose measurements 118 and the timestamps 402, such that for each individual glucose measurement 118, there is a corresponding timestamp 402. In one or more implementations, the CGM device data 214 may include the glucose measurements 118 and the corresponding timestamps 402. Thus, the corresponding timestamps 402 may be associated with the glucose measurements 118 at the CGM system 104 level (e.g., in connection with generating the glucose measurements 118). Each glucose reading 118 has a corresponding timestamp 402 regardless of how the timestamp 402 is associated with the glucose reading 118 or what device associates the timestamp 402 with the glucose reading 118 .

[0069] In this example 400, the prediction system 310 is depicted as including a sequencing manager 406 and a prediction manager 408, where the prediction manager 408 is configured to generate a prediction 312 based on one or more of the glucose measurements 118, the timestamp 402, and the additional data 404. Although the prediction system 310 is depicted as including only the sequencing manager 406 and the prediction manager 408, the prediction system 310 may have more, fewer, and / or different components for generating the prediction 312, examples of which are described in more detail below.

[0070] The sequencing manager 406 represents functionality of the prediction system 310 for generating time-series glucose measurements 410 (e.g., time-series data) based on the glucose measurements 118 and the timestamps 402. While the glucose measurements 118 may generally be received sequentially (e.g., by the CGM platform 112 from the CGM system 104 and / or computing device 108 as the glucose measurements 118 are generated), in some cases, one or more of the glucose measurements 118 may not be received in the same order as the glucose measurements 118 are generated (e.g., packets having the glucose measurements 118 may be sent or received out of order). Thus, the order of reception may not chronologically match the order in which the glucose measurements 118 are generated by the CGM system 104. Alternatively or additionally, a communication including one or more of the glucose measurements 118 may be corrupted. Thus, there may be various reasons why the glucose measurements 118 obtained by the prediction system 310 are not perfectly chronologically ordered.

[0071] To generate time-series glucose measurements 410, the sequencing manager 406 determines a chronological sequence of glucose measurements 118 according to their respective timestamps 402. The sequencing manager 406 outputs the chronological sequence of glucose measurements 118 as time-series glucose measurements 410. The time-series glucose measurements 410 may be individually configured or otherwise referred to as "glucose traces."

[0072] In accordance with the techniques described herein, the sequencing manager 406 generates time-series glucose measurements 410 for a particular time interval. In one or more implementations, the time-series glucose measurements 410 correspond to a time interval corresponding to the previous day and are utilized by the machine prediction manager 408 to predict whether one or more events will occur in the current or future days, as well as to predict glucose measurements over the current or future days. Thus, unlike conventional systems that extract features from glucose measurements to generate predictions, the time-series glucose measurements 410 correspond to the entire set of estimated glucose values ​​for a particular human 102 over any suitable range of previous time periods (e.g., one or more days in the past, the past 12 hours, the past 6 hours, the past hour, the past 30 minutes, etc.). Notably, the duration and timing of the time interval to which the time-series glucose measurements 410 correspond may vary based on various factors without departing from the spirit or scope of the techniques described herein. For example, in some cases, time intervals may be customized to correspond to the activity schedule of human being 102 (e.g., using one time interval to correspond to the sleep schedule of human being 102 and using another time interval to correspond to the active (i.e., awake) schedule of human being 102). In this manner, sequencing manager 406 is configured to generate time series glucose measurements 410 for any suitable time interval, which may span multiple days (e.g., the past 7 days), or specific times within multiple days (e.g., 5:00 AM - 10:00 PM for the past 14 days).

[0073] When the glucose measurements and / or user behavior information are provided as input, the prediction manager 408 is configured to generate the prediction 312. According to one or more implementations, the prediction manager 408 is further configured to generate the prediction 312 by supplementing the glucose measurements 118 input (e.g., in the format of time-series glucose measurements 410) with additional data 404. The additional data 404 represents information that can be used to describe various aspects that may affect the future glucose levels of the human 102. The additional data 404 may be temporally associated with the glucose measurements 118 (e.g., based on a timestamp associated with the additional data 404). Such additional data 404 may include, by way of example and without limitation, application usage data (e.g., clickstream data describing the displayed user interface and user interaction with the application via the user interface), mobile device or smartwatch accelerometer data (e.g., indicating that a human viewed the device's user interface and therefore likely saw an alert or information related to a predicted event), explicit feedback to notification prompts requesting input regarding the user's current or planned activity, data describing insulin administered (e.g., timing and insulin dose), data describing food ingested (e.g., timing of food intake, type of food, and / or amount of carbohydrates ingested), activity data from various sensors (e.g., step count data, workouts performed, or other data representative of the user's activity or exercise), glucose level response to stress, combinations thereof, and the like.

[0074] In this manner, the additional data 404 may include information describing the occurrence of actual historical events that may affect future glucose measurement predictions. For example, in an exemplary scenario in which the additional data 404 includes information identifying that the human 102 exercised at 4:00 PM on Thursday, the additional data 404 may be used as the basis for generating a prediction for a future time interval, such as the time interval spanning 12:00 PM to 1:00 PM on the following Saturday. Because muscle changes that affect the human 102's sensitivity to insulin occur many hours after exercise (e.g., 48 hours or more), information confirming when the human 102 previously exercised is important in generating an accurate prediction 312 for a future insulin administration event. Thus, by taking into account the additional data 404 confirming the occurrence of an exercise event, the subsequently generated prediction 312 can be used to recommend the exact dose and / or type of insulin to be administered in a manner that mitigates potential health consequences (e.g., delayed post-exercise hypoglycemia).

[0075] Further examples of aspects that may be indicative of a person's future glucose level may include the human's 102 body temperature, environmental temperature, barometric pressure, and the presence or absence of various health conditions (e.g., pregnancy, illness, etc.). Additionally, aspects that may be indicative of a person's future glucose level may include aspects of exercise (e.g., exercise frequency, duration, intensity, etc.), sleep (e.g., duration, quality, etc.), and stress (e.g., blood pressure, heart rate, etc.), just to name a few. As such, the additional data 404 may include the supplemental data 304 and / or third-party data 308 described above with reference to FIG. 3 . In some implementations, the additional data 404 may represent information output by one or more machine learning models implemented by the prediction manager 408 in generating the prediction 312.

[0076] To generate predictions 312, the prediction manager utilizes multiple machine learning models 412 arranged in a stacked configuration relative to one another, such that output from one of the machine learning models 412 can be provided as input to other of the machine learning models 412, as shown and described in further detail below with respect to FIG. 5. Although illustrated as including only three different machine learning models 412(1), 412(2), and 412(n), the prediction manager 408 is configured to implement any number n of different machine learning models 412, where n represents an integer greater than or equal to 1. Each machine learning model 412 represents a machine learning model trained to process input data, recognize patterns in the input data, and generate predicted outputs based on the recognized patterns. Different ones of the machine learning models 412 may represent machine learning models trained according to different tasks or objectives. For example, machine learning model 412(1) may be trained with a glucose measurement prediction goal for human 102 when provided with one or more of additional data 404, glucose measurements 118, or output from one or more other machine learning models 412 implemented by prediction manager 408. Others of the machine learning models, such as machine learning models 412(2) and 412(n), may be trained with different event prediction goals, such as individually predicting one of an insulin administration event, an exercise event, a meal event, a sleep or other recovery event, a stress event, etc.

[0077] In addition to being trained with information specific to the human 102, each of the multiple machine learning models 412 may be further trained using additional historical data of the user population. In this manner, the accuracy and reliability associated with the predictions generated by each of the machine learning models 412 is increased by utilizing glucose measurements 118, additional data 404, and predictions generated by other machine learning models 412 in the stacked configuration to generate the predictions on which the machine learning models 412 are trained.

[0078] In one or more implementations, the additional data 404 received as input by the prediction manager 408 is associated with an application of the CGM platform 112. For example, the CGM platform 112 application may execute on a user's computing device (e.g., a smartphone or smartwatch) and display glucose readings 118 to the user (e.g., in the CGM platform application's user interface). In this manner, the additional data 404 may correspond to a screen view or user selection of different controls of the CGM application. Such application usage data enables the prediction manager 408 to receive feedback from the user regarding whether an event prediction 414 included as part of the prediction 312 is accurate (e.g., whether the event indicated by the event prediction 414 is approaching, actively progressing, or incorrect). This feedback may be used to assign a confidence level associated with the event prediction 414 and may be further used by the prediction system 310 to selectively provide predictive information output by one of the machine learning models 412 to one or more other machine learning models arranged in a stacked configuration. Thus, the individual machine learning models 412 of the prediction manager 408 can learn patterns associated with various event responses (e.g., changes in glucose levels) associated with the human 102 and adjust their respective predictions accordingly.

[0079] In general, the event prediction 414 output by the prediction manager 408 represents a prediction of whether a particular type of event will occur for a person during a time interval (e.g., a time interval following a time interval defined by the time-series glucose measurements 410) for which a glucose measurement prediction 416 is generated. The glucose measurement prediction 416 may represent an output prediction generated by one of the stacked machine learning models 412 of the prediction manager 408, which may then be trained, or an underlying model learned, based on one or more training approaches and using one or more of the historical glucose measurements 118, the additional data 404, or the output predictions generated by other models in the stacked machine learning models 412.

[0080] The glucose measurement predictions 416 output by one of the machine learning models 412 may be provided as input to one or more of the other machine learning models 412 to generate event predictions 414. For example, a machine learning model 412 trained to generate event predictions 412 may be configured to identify patterns in the glucose measurement predictions 416 that correlate to historical information for the human 102, such as patterns in glucose levels corresponding to glucose level changes associated with the human 102's response to exercise, eating, stress, insulin administration, sleep, combinations thereof, etc. By leveraging a stacked configuration of machine learning models 412 implemented by the prediction manager 408, the event predictions 414 and glucose measurement predictions 416 may each represent additional data 404 provided to the prediction system 310 in training various machine learning models 412 and generating predictions 312. The training of individual ones of the machine learning models 412 is described in further detail below with respect to FIG. 12 .

[0081] Each machine learning model 412 implemented in a stacked configuration by the prediction manager 408 may be implemented in a variety of different ways without departing from the spirit or scope of the described techniques. Each machine learning model 412 may, for example, receive as input a labeled stream of observed glucose levels collected over a time interval and generate an expected output. The stream of estimated glucose values ​​may be labeled to indicate whether a particular event occurred during a particular time interval, along with timestamps defining the start and end of that event, and the glucose levels and changes therein preceding, during, and after the particular event. As such, each machine learning model may be configured as a single model or a collection of models including multiple models. Exemplary machine learning models may include, for example, neural networks (e.g., recurrent neural networks such as long short-term memory (LSTM)), state machines, Markov chains, Monte Carlo methods, and particle filters, to name just a few. Thus, the stack of machine learning models 412 is configured to classify an input stream of contextual data describing observed glucose values ​​and various influences on the observed glucose values ​​to generate glucose measurement predictions and associated events.

[0082] For example, consider FIG. 5, which depicts an example implementation 500 of multiple machine learning models arranged in a stacked configuration that may be implemented by a prediction manager to generate one or more event predictions or glucose measurement predictions, according to one or more implementations. In the illustrated example 500, prediction manager 408 includes machine learning models 412(1), 412(2), and 412(n), as shown and introduced with respect to FIG. 4. In the illustrated example 500, machine learning model 412(1) is configured as a glucose prediction model 502 that is configured to output a glucose measurement prediction 416 when provided with one or more of glucose measurements 118 or additional data 404 as input. Machine learning model 412(2) is configured as an exercise prediction model 504 that is configured to output an event prediction 414(1) (e.g., an upcoming exercise event) when provided with one or more of glucose measurements 118 or additional data 404 as input. Machine learning model 412(n) is configured as insulin administration model 506, configured to output an event prediction 414(2) (e.g., an upcoming insulin administration event) when one or more of glucose measurements 118 or additional data 404 are provided as input. Although illustrated as implementing only three different machine learning models, as indicated by the ellipses separating models 412(2) and 412(n) and their corresponding predictions 414(1) and 414(2), prediction manager 408 is configured to implement any number of multiple machine learning models to generate predictions 312. Also, when a stack includes three models, the three models in the stack can be a different combination of models than those illustrated and discussed below.

[0083] In either case, each output generated by machine learning models 412(1), 412(2), and 412(n) may be further associated with a confidence in the output prediction. When a predicted output generated by machine learning model 412 corresponds to an event prediction 414, event prediction 414 may specify both a confidence value associated with the event prediction and an expected response associated with the particular event, such as an expected change in glucose levels for human 102, before, during, and after the particular event. For example, glucose measurement prediction 416 is depicted as having an associated confidence 508 that represents a score or value indicating the likelihood that glucose measurement prediction 416 will match a future actual glucose measurement for a particular user (e.g., a future glucose measurement 118 for human 102). Similarly, event predictions 414(1) and 414(2), respectively, are output as having associated confidence values ​​512 and 516 that indicate whether the corresponding event will occur during the time step for which glucose measurement prediction 416 is generated.

[0084] The confidence value associated with the output prediction may be represented as a value between 0 and 1, inclusive, where 0 indicates the output prediction is inaccurate and 1 indicates the prediction is accurate. In addition to assigning confidence values ​​512 and 516, machine learning models 412(2) and 412(n) may be configured to describe expected responses 510 and 514 associated with event predictions 414(1) and 414(2), respectively. Each expected response 510 and 514 includes information usable to describe a response (e.g., a change in glucose level) associated with the corresponding event.

[0085] For example, in the illustrated example 500, response 510 may indicate an expected decrease in glucose level resulting from an exercise activity. Similarly, response 514 may indicate an expected increase in glucose level resulting from an insulin administration event. Responses 510 and 514 may be based on aggregated information about various different users of a user population, such as user population 110, tailored to a particular user, such as human 102, or a combination thereof. As such, responses 510 and 514 may include specific values ​​describing the expected impact on the glucose reading prediction 416 generated for human 102 that accounts for the occurrence, or lack thereof, of one or more specific events.

[0086] Responses 510 and 514 may further specify expected timings associated with the respective event effects on future glucose measurements. For example, response 510 may include information specifying that human 102's glucose level will begin to decline to a first level 10 minutes after the exercise activity begins and will remain near the first level (e.g., within 5%) for 11 hours after the exercise activity is completed. Continuing with this example, response 514 may include information specifying that human 102's glucose level will begin to decline at a first rate 5 minutes after the occurrence of the insulin administration event and that the glucose level will reach a second level approximately 2 hours after the completion of the insulin administration event. Response 514 may further specify that the glucose level will likely remain at the second level until approximately 4 hours after the insulin administration event, at which point the glucose level may increase at the second rate until reaching a third level approximately 5-8 hours after the completion of the insulin administration event. Thus, the responses associated with event prediction 414 (eg, responses 510 and 514) represent any range of information that describes when and how an individual's glucose level is expected to be affected by the corresponding event.

[0087] Recognizing that the associated responses of the event predictions 414 may affect the glucose measurement predictions 416 and other event predictions 414 output by the various machine learning models 412, and that the glucose measurement predictions 416 may affect the event predictions 414, the prediction manager is configured to selectively provide the output of one or more of the machine learning models 412 to different ones of the machine learning models 412 (e.g., as additional data 404). This ability to provide the output of one machine learning model 412 implemented by the prediction manager 408 to other machine learning models 412 is made possible by their stacked configuration and is represented by a feedback loop 518, shown as a dashed arrow in the illustrated example of FIG.

[0088] According to one or more implementations, prediction manager 408 selectively filters which outputs of various machine learning models 412(1), 412(2), and 412(n) are provided as inputs to the machine learning models. This selective filtering may be based at least in part on the confidence level associated with a particular output (e.g., confidence level 508, 512, or 516) to avoid adversely affecting the output accuracy of one or more of machine learning models 412. For example, prediction manager 408 may provide one or more of glucose measurements 416 or event predictions 414(1) and 414(2) as inputs to machine learning model 412 only if the corresponding output prediction is likely to occur (e.g., has an associated confidence 508, 512, or 516 that meets a confidence threshold, such as 90% or greater confidence). Alternatively or additionally, the confidences 508, 512, 516 may be used to weight the influence of the glucose measurement prediction 416 or the event predictions 414(1) and 414(2) as input to downstream models. By providing selective output predictions for particular time steps or reducing reliance on less accurate predictions (according to confidence), the prediction manager 408 is configured to improve the accuracy of the output predictions for one or more of the stacked machine learning models 412.

[0089] For example, consider an exemplary scenario in which glucose prediction model 502 generates a glucose measurement prediction 416 with high confidence 508 (e.g., 95% confidence). In response to determining that confidence 508 meets a confidence threshold (e.g., 90% confidence), prediction manager 408 is configured to provide the glucose measurement prediction 416 for a particular time step to exercise prediction model 504 and insulin delivery prediction model 506. Using glucose measurement prediction 416 as input, exercise prediction model 504 may recognize that glucose measurement prediction 416 corresponds to an event profile (e.g., a pattern of glucose measurements) that indicates the user is likely to exercise during the time step and may output event prediction 414(1) indicating the user will undergo an exercise event during the time step. Accordingly, response 510 may indicate an expected change in glucose levels that is expected to result from the exercise event, or some other type of response.

[0090] Confidence 512 represents the degree of certainty that an athletic event will occur during the time step for which glucose measurement prediction 416 was generated and may be influenced by glucose measurement prediction 416 along with one or more additional factors. For example, additional data 404 provided as input to exercise prediction model 504 may indicate that a particular user exercises between 4:00 PM and 5:00 PM on weekdays, indicating that the time step for which glucose measurement prediction 416 is generated begins at 4:00 PM on Wednesdays. Further, exercise prediction model 504 may identify that one or more values ​​of glucose measurement prediction 416 correlate with glucose levels in the particular user's athletic event profile. Based on this example information, confidence 512 may indicate that there is a high probability (e.g., a 96% likelihood) that the particular user is exercising during the time step for which glucose measurement prediction 416 was generated.

[0091] Then, in response to determining that the confidence 512 for the exercise event prediction 414(1) meets the confidence threshold, the response 510 may be provided as feedback to one or more of the stacked machine learning models 412 for use in generating the respective predictions 416, 414(1), and 414(2). For example, the response 510 may be provided as input to the glucose prediction model 502 to generate a subsequent glucose reading prediction 416, which may leverage historical information describing a particular user's glucose levels after a workout. Similarly, the response 510 may be leveraged by the insulin administration prediction model 506 to identify that a particular user is unlikely to administer insulin during exercise, thereby reducing the confidence 516 in the insulin administration event prediction that might otherwise result from not knowing that the user was likely exercising during the time step for which the event prediction 414(2) was generated.

[0092] Having considered an exemplary stacked configuration of machine learning models, we now consider an exemplary implementation of specific inputs provided to, and outputs generated by, a pipeline of stacked machine learning models implemented by prediction manager 408 in accordance with the techniques described herein.

[0093] 6 depicts an example implementation 600 of multiple machine learning models 412(1)-412(n) arranged in a stacked configuration that may be implemented by prediction manager 408 to generate at least one of an event prediction or a glucose measurement prediction. In the illustrated example 600, prediction manager 408 includes machine learning models 412(1), 412(2), 412(3), and 412(n), which represent various machine learning models that may be implemented by prediction manager 408, as introduced and described above with respect to FIG. 4. Specifically, in the illustrated example 600, machine learning model 412(1) is configured as a glucose prediction model 602, machine learning model 412(2) is configured as a meal prediction model 604, machine learning model 412(3) is configured as an insulin administration prediction model 606, and machine learning model 412(n) is configured as a glucose prediction model 608.

[0094] Glucose prediction model 602 represents the functionality of prediction manager 408 to generate and output glucose measurement predictions 610 based on one or more inputs, such as based on glucose measurements 118. Alternatively or additionally, although not shown in example 600, glucose prediction model 602 may be configured to generate glucose measurement predictions 610 based on input data other than glucose measurements 118, such as based on additional data 404. Thus, glucose measurement predictions 610 represent instances of glucose measurements 416 introduced with respect to FIG. 4, and particular manners in which glucose measurement predictions 610 may be generated by glucose prediction model 602 are described in further detail below with respect to FIG. 8.

[0095] As configured in a stacked configuration, the glucose measurement predictions 610 output by the glucose prediction model 602 may be provided as inputs to the meal prediction model 604 for use in generating the respective outputs. In addition to receiving the glucose measurement predictions 610 as inputs, the meal prediction model 604 is further configured to receive additional information 404, illustrated in example 600 as user behavior information 612. Thus, the user behavior information 612 represents any suitable type and / or format of information that the meal prediction model 604 processes in training to generate its output meal event predictions 614, which represent instances of the event predictions 414.

[0096] For example, the user behavior information 612 may identify a historical eating schedule of a particular user for which a prediction 312 is generated (e.g., information specifying that the human 102 typically eats lunch at 11:30 AM on weekdays and 1:00 PM on weekends, information specifying average calorie intake for the human 102 at various times of day, etc.). Alternatively or additionally, the user behavior information 612 may specify location information for a particular user that correlates to a pattern identifiable by the eating prediction model 604 to indicate that the particular user is likely to eat during an upcoming time interval (e.g., information indicating that the human 102 is currently at a restaurant, information indicating that the human 102 has left a grocery store, etc.). Alternatively or additionally, the user behavior information 612 may include data associated with one or more third-party applications (e.g., images of meals uploaded to the human 102's social media account, orders placed with a food delivery service, restaurant reservations saved in a calendar, etc.). As such, the user behavior information 612 is not limited to the above examples and represents any suitable type and / or format of information that may be processed as input by the meal prediction model 604 to generate a respective event prediction 414 (e.g., meal event prediction 614).

[0097] The glucose measurement prediction 610 and / or user behavior information 612 may be received as input by the meal prediction model 604 in any suitable manner, such as via a multi-feature vector generated by the prediction manager 408, where at least one vector feature represents the glucose measurement prediction 610 and at least one vector feature represents the user behavior information 612. In implementations, one or more of the glucose measurement prediction 610 or user behavior information 612 may be received by the prediction manager 408 as a data type / format that differs from the data type / format for which the meal prediction model 604 was trained. In such implementations, the prediction manager 408 is further configured to process the data provided as input to the meal prediction model 604, such as structuring the data into the data type / format for which the meal prediction model 604 was trained to generate a reliable output. In this manner, the meal prediction model 604 is configured to utilize both the glucose measurement prediction 610 and the user behavior information 612 to make an informed prediction regarding whether the user is likely to experience a meal event (e.g., whether the user is likely to eat during a future time interval, the expected caloric intake associated with the meal, the expected glucose level response associated with the meal event, a combination thereof, etc.).

[0098] The meal event predictions 614 and their associated information (e.g., confidence scores, expected glucose level responses, etc.) may then be provided as inputs to the insulin administration prediction model 606 for use in generating the respective outputs. In addition to receiving the meal event predictions 614 as inputs, the insulin administration prediction model 606 may be configured to receive user behavior information 616 representing instances of the additional data 404. Thus, the user behavior information 616 represents information of any suitable type and / or format that the insulin administration prediction model 606 processes in training to generate and output the insulin administration event predictions 618 representing instances of the event predictions 414.

[0099] For example, the user behavior information 616 may describe an insulin administration schedule for the particular user for which the prediction 312 is being generated (e.g., information identifying the type of insulin typically administered by the human 102, information identifying the usual time before meals at which the human 102 administers insulin, etc.). Alternatively or additionally, the user behavior information 616 may represent information provided by the insulin delivery system 106 (e.g., information describing insulin administration events over a past period of time, information describing particular doses of insulin, etc.). Alternatively or additionally, the user behavior information 616 may describe how particular doses of insulin affect the glucose levels of the human 102 (e.g., information describing glucose level responses based on different insulin types and / or doses). As such, the user behavior information 616 is not limited to the above examples and may represent any suitable information that may be processed as input by the insulin administration prediction models 606 to generate the respective insulin administration prediction models 606 and generate the insulin administration event predictions 618.

[0100] One or both of the meal event predictions 614 and the user behavior information 616 may be received as input by the insulin dosing prediction model 606 in any suitable manner, such as via multi-feature vectors generated by the prediction manager 408, where at least one vector feature represents the meal event prediction 614 and at least one vector feature represents the user behavior information 616. In implementations, one or more of the meal event predictions 614 or the user behavior information 616 may be received by the prediction manager 408 as a data type / format that is different from the data type / format for which the insulin dosing prediction model 606 was trained to generate a reliable output. In such implementations, the prediction manager 408 is further configured to process the data provided as input to the insulin dosing prediction model 606, such as composing the information into an appropriate data type / format for the insulin dosing prediction model 606. In this manner, insulin administration prediction model 606, through its placement in a stacked configuration with other machine learning models, is configured to utilize information set forth in one or more of glucose measurements 118, glucose measurement predictions 610, user behavior information 612, meal event predictions 614, or user behavior information 616 in predicting whether an insulin administration event will occur during the next time interval. Thus, insulin administration event prediction 618 represents an indication of whether an insulin administration will occur, the confidence associated with the insulin administration, the expected glucose response associated with the insulin administration, a combination thereof, etc.

[0101] The insulin administration event prediction 618 output by the insulin administration model 606 can then be provided as input to the glucose prediction model 608, which represents the furthest “downstream” model in the computational flow that generates the predictions 312 using the stacked machine learning models 412(1)-(n). In the illustrated example 600, the glucose prediction model 608 represents the functionality of the prediction manager 408 for generating predictions 312, which may include the glucose measurement prediction 416. In this manner, the glucose measurement prediction specified by the prediction 312 represents an instance of the glucose measurement prediction 610 with improved accuracy by considering contextual information beyond the glucose measurement 118 (e.g., by considering user behavior information 612, 616, and information specified by the meal and insulin administration predictions 614 and 618). Thus, the prediction 312 may represent a glucose measurement 416 that more accurately reflects a particular user's glucose level over future time steps by considering the likelihood of one or more events occurring during future time steps.

[0102] Although the functionality of prediction manager 408 has been described above with respect to initially receiving a glucose measurement, using the glucose measurement to generate a glucose measurement prediction, and using the glucose measurement prediction as input to one or more downstream machine learning models arranged in a stacked configuration, the techniques described herein are not limited thereto. For example, in some implementations, the initial input to stacked machine learning models 412(1)-(n) may be information not explicitly described by the glucose measurement 118, such as user behavior information, represented herein as additional data 404. In some implementations, stacked machine learning models 412(1)-(n) may exclude glucose prediction model 602, such that the sequence of operations performed by stacked machine learning models 412(1)-(n) does not begin with generating a glucose measurement prediction. For example, consider the example illustrated in FIG. 7.

[0103] 7 depicts an example implementation 700 of multiple machine learning models 412(1)-412(n) arranged in a stacked configuration that may be implemented by prediction manager 408 to generate at least one of an event prediction or a glucose measurement prediction. In the illustrated example 700, prediction manager 408 includes machine learning models 412(1), 412(2), 412(3), and 412(n), which represent various machine learning models that may be implemented by prediction manager 408, as introduced and described above with respect to FIG. 4. Specifically, in the illustrated example 700, machine learning model 412(1) is configured as an exercise prediction model 702, machine learning model 412(2) is configured as an insulin administration prediction model 704, machine learning model 412(3) is configured as a meal prediction model 706, and machine learning model 412(n) is configured as a glucose prediction model 708.

[0104] Exercise prediction model 702 represents the functionality of prediction manager 408 for processing model-specific data 710, which may represent one or more instances of additional data 404 and / or glucose measurements 118, and generating event predictions 414(1). In the context of the illustrated example 700, event predictions 414(1) may correspond to a prediction of whether a particular user will exercise during a future time interval, and may further include information specifying a confidence level associated with the prediction, the particular user's expected response to exercise, etc.

[0105] Insulin administration prediction model 704 represents the functionality of prediction manager 408 that processes model-specific data 712, which may represent one or more instances of additional data 404 and / or glucose measurements 118, and generates event predictions 414(2). In the context of example 700, event predictions 414(2) may correspond to predicting whether a particular user will administer insulin during a future time interval (and possibly the type, amount, and time at which insulin will be administered), specify a confidence level associated with the insulin administration prediction, specify the particular user's expected glucose level response to insulin administration, etc.

[0106] Meal prediction model 706 represents the functionality of prediction manager 408 for processing model-specific data 714, which may represent one or more instances of glucose measurements 118 and / or additional data 404, and generating event predictions 414(3). In the context of example 700, event predictions 414(3) may correspond to predictions of whether a particular user will eat during a future time interval, specify a confidence level associated with the meal event prediction, specify the particular user's expected glucose level response to eating, etc.

[0107] In this manner, instances of model-specific data 710, 712, and 714 represent any information describing user behavior that may not be explicitly reflected in glucose measurements 118. Thus, the particular attributes or characteristics of the various instances of model-specific data 710, 712, and 714 depend on the data type and / or data format on which the corresponding machine learning model 412(1), 412(2), or 412(3) is trained to generate the respective event prediction 414(1), 414(2), or 414(3).

[0108] One or more of the event predictions 414(1), 414(2), or 414(3) may then be provided to glucose prediction model 708 for use in generating prediction 312. The decision to provide event predictions 414(1), 414(2), and 414(3) as inputs to glucose prediction model 708 may depend on the respective reliability scores and respective reliability thresholds associated with the event predictions. In this manner, glucose prediction model 708 is provided with information output by at least one other machine learning model arranged in a stacked configuration only if the information is deemed reliable. In implementations in which prediction 312 represents glucose measurement prediction 416, glucose prediction model 708 may supplement the input of one or more of event predictions 414(1), 414(2), or 414(3) with glucose measurements 118 such that prediction 312 represents a more accurate glucose measurement prediction compared to a prediction generated without considering contextual information beyond glucose measurements 118.

[0109] Alternatively or additionally, prediction 312 may represent an event prediction, such as one or more of event predictions 414(1), 414(2), or 414(3) output by exercise prediction model 702, insulin administration prediction model 704, or meal prediction model 706, as indicated by the arrow connecting event prediction 414(1) to prediction 312. In this manner, prediction 312 represents information usable by prediction system 310 to better inform the user's health and well-being, as opposed to conventional systems that ignore information beyond historical glucose measurements or are unable to account for the occurrence of events that may affect the user's future glucose levels, as represented herein by consideration of additional data 404.

[0110] For a more detailed example of how the machine learning model 412 generates predictions based on the glucose measurements 118 and / or additional data 404, consider now FIG.

[0111] FIG. 8 depicts an example implementation 800 in which one of the stacked machine learning models implemented by the prediction system of FIG. 3 generates a glucose measurement prediction 416 based on a glucose measurement 118.

[0112] The illustrated example 800 includes a glucose measurement 118 and a glucose measurement prediction 416. The glucose measurement 118 is shown as an input to one step of a machine learning model 412 implemented by the model manager 408, such as a glucose prediction model 502, and the glucose measurement prediction 416 is depicted as an output from the step. The various steps of the glucose prediction model 502 are represented as 502(1)-(5), which may represent a scenario in which the glucose prediction model 502 is configured as a recurrent neural network, such as an LSTM network. When configured as an LSTM network, the machine learning model steps 502(1)-(5) may represent recurring modules of the network.

[0113] The illustrated example 800 further depicts glucose traces 802-810, including a first glucose trace 802, a second glucose trace 804, a third glucose trace 806, an (m-1)th glucose trace 808, and an mth glucose trace 810. Each glucose trace 802-810 includes a visualization of the glucose information represented by the respective trace, illustrating how successive steps of the machine learning model 502 are used to predict discrete segments of future time steps for which a glucose measurement prediction 416 is generated. In this manner, a glucose measurement 118 includes multiple points representing observed glucose measurements, such as an observed glucose measurement 118 for a human 102. When a glucose measurement 118 or a time-series glucose measurement 410 is provided as input, the machine learning model 502(1) generates one or more predicted glucose measurements for the human 102 that occur after the ending timestamp 402 associated with the glucose measurement 118.

[0114] The glucose measurement 118, along with one or more predicted glucose measurements, is then combined to form a first glucose trace 802, which is provided as an input to the machine learning model 502(5) to generate its predicted output (e.g., a second glucose trace 804). This process continues with the second glucose trace 804, which maintains the observed glucose measurement described by the glucose measurement 118 and the predicted glucose measurement described by the first glucose trace 802, being provided as an input to the machine learning model 502(3) to generate a third glucose trace 806. In this manner, additional predicted glucose measurement information is provided to subsequent stages of the machine learning model 502 until the final (mth) stage of the machine learning model outputs the mth glucose trace 810, which includes information describing both the glucose measurement 118 and the glucose measurement prediction 416.

[0115] Although depicted as including five stages, the machine learning model 412 implemented by the prediction manager 408 may include any m stages, where m represents an integer greater than or equal to 3. Furthermore, different ones of the various machine learning models 412 implemented by the prediction manager 408 may include different numbers of stages compared to each other. Each stage of the machine learning models 502(1)-502(5) is configured to generate a respective output prediction (e.g., one of the glucose traces 802, 804, ... 810) based on training of the model 502 and recognized patterns in the corresponding input (e.g., glucose measurement 118 or one of the glucose traces 802, 804, ... 808) provided to the model stage.

[0116] Because machine learning model 502 is implemented in a stacked configuration with at least one other machine learning model by prediction manager 408, inputs to one or more of the stages of machine learning model 502 may be supplemented with additional data 404, represented by gray-shaded arrows depicting the inputs to each stage of machine learning models 502(1)-502(5). In this manner, additional data 404 may represent output predictions generated by another machine learning model in the stacked configuration, such as one or more of event predictions 414(1) or 414(2) generated by exercise prediction model 504 and insulin administration 506, respectively. Respective event predictions 414(1) and 414(2) are then based on predictions generated by one or more of the stages of machine learning model 502.

[0117] For example, consider an exemplary scenario in which a second glucose trace 804 is provided as input to the exercise prediction model 504 to determine whether an exercise event is likely to occur during the executed time step for which a glucose measurement prediction 416 is generated. In this scenario, based on training and patterns identified in the second glucose trace 804, the exercise prediction model 504 may generate an event prediction 414(1) indicating that an exercise event is likely to occur at a future time step, such as a future time spanning glucose traces 806, 808, and 810. In such a scenario, the exercise prediction model 504 may identify from the second glucose trace 804 that the human 102 is likely to experience an exercise response 510 (e.g., a change in glucose level due to an exercise event) with a high degree of confidence 512. This exercise response 510 can then be provided as input to subsequent stages of the machine learning model 502 (e.g., 502(3)-(5)) such that the subsequent output used in generating the glucose measurement prediction 416 is influenced by historical information describing the human 102's glucose level response to exercising.

[0118] 5 represents the ability of the prediction manager 408 to provide intermediate outputs of different ones of the machine learning models 412 as inputs to other ones of the machine learning models 412 arranged in a stacked configuration to improve the accuracy associated with the overall event predictions 414 and glucose measurement predictions 416 compared to conventional systems that do not utilize a stacked model configuration or that provide only historical glucose measurements as model inputs. The feedback loop 518 of FIG. 5 further represents additional data 404 that may be selectively provided as input to one or more of the machine learning model stages 502(1)-(5), such that the additional data 404 is not necessarily provided as input via each of the shaded gray arrows.

[0119] As described herein, additional data 404 further represents information obtained from sources other than the output of the various stacked machine learning models 412 implemented by prediction manager 408. As such, additional data 404 may represent any data indicative of a person's future glucose level, such as insulin administration, carbohydrate intake, exercise, stress, mobile device or smartwatch accelerometer data (e.g., indicating that the person viewed a device's user interface and therefore likely saw an alert or information related to a glucose measurement), application data (e.g., clickstream data describing the displayed user interface and user interaction with the application via the user interface), environmental temperature, barometric pressure, and the presence or absence of various health conditions (e.g., pregnancy, illness, etc.).

[0120] Having discussed an example implementation of how the machine learning model 412 implemented by the prediction manager 408 is configured to output a glucose measurement prediction 416 from one or more inputs including the glucose measurement 118 and the additional data 404, consider the following description of how another machine learning model 412 is configured to output an event prediction 414 with respect to FIG. 9 .

[0121] FIG. 9 depicts in more detail an example implementation 900 of the forecasting system 310 for generating an event prediction 414 using the time-series glucose measurements 410, the glucose measurement predictions 416, and the additional data 404.

[0122] In the depicted example 900, the data 902 includes information describing an exemplary time series of glucose measurements 410, which may represent observed glucose measurements 118 for the human 102 from 12:00 AM beginning the timestamp 402 to 4:00 PM ending the timestamp 402. The data 902 further includes glucose measurement predictions 416 representing predicted glucose levels for the human 102 occurring after 4:00 PM as output by the glucose prediction model 502. With a stacked machine learning model configuration, the data 902 may represent additional data 404 that is provided as input via a feedback loop 518 to one or more of the machine learning models 412 configured to generate event predictions 414, such as an exercise prediction model 504 or an insulin administration prediction model 506, as depicted in FIG.

[0123] Data 904 represents an instance of data 902, including event profiles 906 and 908, each of which may represent a historical pattern of glucose levels for a given user or community of users and indicate an expected glucose level response to the occurrence of an event. For example, event profile 906 may represent an expected glucose level response to an athletic event, with each ellipse representing a range of glucose levels that defines a pattern corresponding to the athletic event. In this manner, when glucose measurement prediction 416 is provided as input, athletic prediction model 504 can be trained to recognize that a pattern of glucose levels as shown in glucose measurement prediction 416 corresponds to an expected response 510 to athletic event prediction 414(1). Confidence 512 associated with such athletic event prediction 414(1) may be based, at least in part, on the values ​​indicated by the various dots in glucose measurement prediction 416 relative to the values ​​enclosed by the ellipses in athletic event profile 906.

[0124] In some implementations, the confidence 512 for the athletic event prediction 414(1) may be influenced based on additional data 404 that provides additional context for the glucose measurement prediction 416. For example, the event profile 908 may correspond to a meal event that affected the values ​​of the time-series glucose measurements 410 that precede the glucose measurement prediction 416. In such a scenario, a confidence value indicating whether the meal event actually occurred and affected the corresponding glucose value enclosed by the ellipse in the event profile 908 may be determined based on various factors. For example, the confidence value may be influenced by explicit user feedback confirming that the meal event started at 9:15 AM, may be influenced by historical data indicating that the particular user for whom the glucose measurement prediction 416 is generated typically eats breakfast at 9:15 AM, or may be a combination thereof. In some implementations, one or more of the machine learning models 412(1)-(n) implemented by the prediction manager 408 may be configured to analyze historical information (e.g., historical glucose measurements 118) and generate a prediction as to whether one or more glucose level-affecting events occurred over the time period covered by the historical information, along with a confidence value for the prediction. In this manner, in addition to leveraging explicit user feedback, the prediction manager 408 is configured to analyze and label historical user data to improve the prediction accuracy associated with the predictions 312 output by the prediction system 310.

[0125] Based on the associated confidence value, information regarding the occurrence of the meal event described by event profile 908 may be provided in the form of additional data 404 as input to athletic prediction model 504 in generating athletic event prediction output 414(1). By training athletic prediction model 504, described in further detail below with respect to FIG. 12 , athletic prediction model 504 may utilize this prior event information to influence the level of confidence 512 associated with athletic event prediction 414(1). For example, athletic prediction model 504 may be trained to identify correlations between various event responses to identify that the time interval between events corresponding to event profiles 906 and 908 correlates with the historical time interval between a breakfast meal event and an afternoon workout event for a particular user.

[0126] In this manner, the event profile 908 may correspond to an event prediction 414 having a high associated confidence output by one of the machine learning models 412. Accordingly, the event prediction 414 may be provided as input to the athletic prediction model 504 in the form of additional data 404 to generate an athletic event prediction 414(1) corresponding to a glucose measurement prediction 416 value that matches the event profile 906. To avoid adversely affecting the output of other machine learning models 412 in the stacked configuration, a decision as to whether the output of a particular machine learning model 412 should be included in the additional data 404 provided to the other machine learning models in the stack is made based on the confidence associated with the prediction, as described in further detail below with respect to FIG.

[0127] FIG. 10 depicts an example implementation 1000 of the prediction system 310 for filtering event predictions 414 and glucose measurement predictions 416 and generating notifications 314 for the filtered event predictions 414 and glucose measurement predictions 416 according to one or more implementations.

[0128] In the depicted example 1000, the prediction system 310 includes a reliability filtering manager 1002 configured to receive the event predictions 414 and glucose reading predictions 416 output by the stacked arrangement of machine learning models 412(1)-(n) implemented by the prediction manager 408. The filtering manager 1002 represents the functionality of the prediction system 310 for generating filtered data 1004, which represents all or a subset (e.g., a suitable subset) of the information included in the event predictions 414 and glucose reading predictions 416 output by the prediction manager 408. For example, the filtered data 1004 may represent future glucose reading predictions 416 for a particular user over a particular time step, as well as expected responses 510 and 514 for the particular user due to exercise events and insulin administration events, respectively, occurring during the future time step.

[0129] A determination as to whether information describing a particular user's expected responses 510 and 514 to each exercise and insulin administration event in filtered data 1004 can be made based on the respective confidence levels 512 and 516 associated with the exercise event and insulin administration event. For example, response 510 may be included in filtered data 1004 only if confidence 512 meets a confidence threshold (e.g., a threshold indicating that exercise event prediction 414(1) is likely to occur). Similarly, response 514 may be excluded from filtered data 1004 in response to determining that confidence 516 does not meet a confidence threshold (e.g., a threshold indicating that insulin administration event prediction 414(2) is likely to occur).

[0130] Information included in the filtered data 1004 may be selectively provided as input to one or more of the stacked machine learning models 412(1)-(n), as indicated by the shaded arrow 1006 to indicate that the filtered data 1004 may represent additional data 404 provided to one or more stages of the machine learning models 412, similar to the shaded arrows representing model inputs, as depicted in FIG. 5. In some implementations, the filtered data 1004 may be further leveraged by the prediction system 1010 to generate one or more of the notifications 314. The functionality of the prediction system 310 for generating the notifications 314 is represented by the inclusion of a notification manager 1008.

[0131] The notification manager 1008 is configured to generate and deliver notifications 314 based on the various event predictions 414 and glucose measurement predictions 416 output by the prediction manager 408. In some implementations, the notifications 314 may include one or more prompts 1010 requesting feedback from a particular user regarding the event predictions 414 and glucose measurement predictions 416. For example, the notification 314 may indicate that the user is predicted to experience an insulin administration event during a future time step, and the prompt 1010 may request the user to confirm whether an insulin administration event will occur during the future time step. Similarly, the notification 314 may indicate that the user has been identified as currently exercising based on information included in the glucose measurements, and the prompt 1010 may request the user to confirm whether they are currently engaged in an exercise event and to provide further details about the exercise event.

[0132] In addition to the one or more prompts 1010, the notification may include other information regarding the one or more event predictions 414 or one or more glucose reading predictions 416. For example, the notification 314 may include recommendations for taking mitigating action if the notification 314 relates to a warning that the glucose reading prediction 416 includes a dangerous glucose level. Alternatively or additionally, the notification 314 may include information describing a reliability score associated with the prediction, such as the reliability scores represented by confidences 508, 512, and 516 as illustrated in FIG. 5.

[0133] In one or more implementations, the notifications 314 generated by the notification manager 1008 may be based, at least in part, on a confidence score associated with the event prediction 414 and / or glucose reading prediction 416 to which the notification 314 pertains. The notification manager 1008 may provide different prompts 1010, warnings, recommendations, or other messages, for example, based in part on the confidence level associated with the predictions.

[0134] In the context of outputting a notification 314 to a user, consider FIG. 11, which depicts an example implementation 1100 of a user interface displayed to notify a user based on one or more of an event prediction 414 or a glucose measurement prediction 416.

[0135] 11 , the computing device 108 is depicted in various scenarios 1102 and 1104 for outputting notifications 314 that include one or more prompts 1010 requesting user feedback related to one or more of the event predictions 414 and / or glucose reading predictions 416. The prediction system 310 is configured to generate and output notifications 314 to the user automatically or in response to a user request. This decision may be user-configurable, as some users may prefer to receive these predictions automatically (e.g., as they are generated by the prediction system 310), while other users may prefer to only receive these predictions when requested.

[0136] In scenario 1102, the computing device 108 displays a user interface 1106. The user interface 1106 may correspond to an interface of an application (e.g., an interface of the CGM platform 112). Alternatively or additionally, the user interface 1106 may correspond to a “notification center” implemented by the computing device 108, such as a lock screen or other operational level display. In scenario 1102, the user interface 1106 includes a notification 314 that communicates that a machine learning model 412 implemented by the prediction system 310 has determined that a user of the computing device 108 is about to experience an athletic event (e.g., about to start a workout). In the user interface 1106 of scenario 1102, the notification 314 includes a prompt 1010 that requests user feedback regarding the event prediction 414 to which the notification 314 pertains.

[0137] Specifically, in scenario 1102, prompt 1010 includes selectable option 1108 for confirming that event prediction 414 is correct and selectable option 1110 for indicating that the event prediction 414 identified by notification 314 is incorrect. Prediction system 310 may further configure user interface 1106 such that feedback received in prompt 1010 is automatically transmitted back to prediction system 310 for use in generating further event predictions 414 and / or glucose reading predictions 416 (e.g., prompt 1010 feedback is communicated to prediction system 310 in the form of additional data 404).

[0138] In some implementations, in response to receiving feedback in one or more prompts 1010 of a notification 314, the notification manager 1008 is configured to generate and send another notification 314 that includes a prompt 1010 requesting additional information regarding the event prediction 414 and / or glucose reading prediction 416 to which the original notification 314 pertains. For example, in response to receiving input in a selectable option 1108, the notification manager 1008 may cause output of the notification 314 depicted on a user interface 1112 of the scenario 1104. Similar to the user interface 1106, the user interface 1112 may correspond to an interface of an application (e.g., an interface of the CGM platform 112). Alternatively or additionally, the user interface 1112 may correspond to a “notification center” implemented by the computing device 108, such as a lock screen or other operational level display.

[0139] In scenario 1104, user interface 1112 includes a notification 314 that requests the user to provide further details about the prediction identified by notification 314 of scenario 1102 (e.g., additional information about the athletic event prediction). Specifically, notification 314 of scenario 1104 includes prompts 1010 in the form of selectable icons 1114, 1116, 1118, and 1120. Accordingly, each prompt 1010 may be usable to specify further information about the corresponding athletic event prediction 414. For example, input into icon 1114 may specify whether the predicted start time of the athletic event prediction 414 is accurate. Input into icon 1116 may specify the level of intensity associated with the athletic event 414, input into icon 1118 may specify the type of athletic event 414, and input into icon 1120 may specify the expected duration of the athletic event 414. As such, notifications 314 output by the prediction system 310 may include prompts 1010 requesting feedback on any type of information describing the event prediction 414 and / or glucose reading prediction 416 to which the notification pertains. Although notifications 314 are described and illustrated as relating to an exemplary context related to future event predictions 414, notifications 314 generated by the notification manager 1008 may similarly correspond to current event predictions 414 (e.g., "Based on your glucose response over the last 30 minutes, it looks like you are exercising now. Is this correct?") or past event predictions 414 (e.g., "Based on your data, it looks like you had breakfast between 7:00 AM and 8:00 AM. Is this correct?").

[0140] User-provided feedback in response to the prompts 1010 may be utilized by the prediction system 310 in a variety of ways. For example, feedback received from one or more prompts 1010 in the form of additional data 404 may be provided as input to one or more of the stacked machine learning models 412 implemented by the prediction manager 408. Alternatively or additionally, the prompt 1010 feedback may be usable to adjust a confidence value associated with the prediction to which the notification 314 relates. For example, in an example implementation in which the notification for scenario 1102 corresponds to an event prediction 414(1) generated by the motion prediction model 504, feedback in the prompt 1010 confirming the accuracy of the event prediction 414(1) may cause the associated confidence 512 to be adjusted to a higher value (e.g., a 100% confidence value). Alternatively or additionally, the prompt 1010 feedback may be used by the prediction system 310 to train and / or generate one or more machine learning models 412 implemented by the prediction manager 408.

[0141] Although the notifications 314 are shown and described as being communicated to a particular user, in one or more implementations, at least one notification 314 may alternatively or additionally be communicated to another entity, such as, for example, a healthcare provider (e.g., a doctor) of the human 102, a caregiver (e.g., a parent or child) of the human 102, etc. Furthermore, various other services may additionally or alternatively be provided in conjunction with one or more of the notifications 314 without departing from the spirit or scope of the described techniques.

[0142] 12 depicts in more detail an example implementation 1200 of a prediction system 310 in which a machine learning model is trained to generate an event prediction 414 or a glucose measurement prediction 416 when glucose measurements 118 and / or additional data 404 are provided as input. As illustrated in FIG. 3 , the prediction system 310 is included as part of the data analytics platform 122, although in other scenarios, the prediction system 310 may additionally or alternatively be included, partially or entirely, in another device, such as the computing device 108.

[0143] In the illustrated example 1200, the prediction system 310 includes a model manager 1202 that manages a stack of machine learning models implemented by the prediction manager 408, such as a plurality of machine learning models 412. As described above, each machine learning model 412 may be configured as a recurrent neural network, a convolutional neural network, or the like. Alternatively, the machine learning models 412 may be configured as other machine learning models or include other machine learning model types without departing from the spirit or scope of the described techniques. These different machine learning models may each be built or trained (or otherwise learned) using different algorithms due, at least in part, to different architectures. Thus, the functionality of the model manager 1202 is applicable to a variety of different machine learning model types and configurations. However, for purposes of explanation, the functionality of the model manager 1202 is generally described in the context of training neural networks.

[0144] In general, the model manager 1202 is configured to manage the stack of machine learning models implemented by the prediction manager 408, including the machine learning model 412. This model management includes, for example, building the machine learning model 412, training the machine learning model 412, updating the model, etc. In one or more implementations, updating the machine learning model 412 may include transfer learning to personalize the machine learning model 412, i.e., to personalize the machine learning model from a state trained with training data of the user population 110 to an updated state trained with additional training data or update data describing one or more aspects of the human 102 and / or one or more aspects of a subset of the user population 110 determined by similarity to a human. Specifically, the model manager 1202 is configured to perform model management at least in part using the rich data maintained in the storage device 120 of the CGM platform 112. As shown, this data includes the glucose measurements 118, timestamps 402, and additional data 404 of the user population 110. In other words, the model manager 1202 builds the machine learning model 412, trains the machine learning model 412 (or otherwise learns the underlying model), and updates the model using glucose measurements 118, timestamps 402, and additional data 404 from the user population 110.

[0145] Unlike conventional systems, the CGM platform 112 stores (e.g., in storage device 120) or otherwise has access to glucose measurements 118 obtained using the CGM system 104 for hundreds of thousands of users (e.g., 500,000 or more) in the user population 110. Furthermore, these measurements are taken at a continuous rate by sensors in the CGM system 104. As a result, millions or even billions of glucose measurements 118 are available to the model manager 1202 for model building and training. Using such a robust amount of data, the model manager 1202 can build and train machine learning models 412 to accurately predict whether a person will experience a hypoglycemic event based on the pattern of observed glucose measurements.

[0146] Without the robustness of the glucose measurements 118 of the CGM platform 112, conventional systems cannot simply build or train a model to cover the state space in a way that adequately represents how patterns will indicate future glucose levels. Failure to adequately cover these state spaces can result in inaccurate hypoglycemic event predictions that can lead to outcomes ranging from user annoyance (e.g., providing a notification that a predicted hypoglycemic event will occur when one does not actually occur) to life-or-death situations (e.g., a dangerous condition resulting from the occurrence of a nocturnal hypoglycemic event when none was predicted). Given the importance of generating inaccurate and untimely predictions, it is important to build a machine learning model 412 using a volume of glucose measurements 118 that is robust to rare events.

[0147] In one or more implementations, the model manager 1202 builds the machine learning model 412 by generating training data. Initially, generating training data includes forming training glucose measurements from the glucose measurements 118 and the corresponding timestamps 402 of the user population 110. The model manager 1202 may leverage the functionality of the sequencing manager 406 to form these training glucose measurements, for example, in a manner similar to that described in detail above with respect to forming the time-series glucose measurements 410. The model manager 1202 may further be implemented to generate training glucose measurements for specific time intervals.

[0148] In one or more implementations, the model manager 1202 generates training data describing historical glucose measurements and patterns for the human 102, or a group of users of the user population 110, to include event profiles 1204 that occur in association with corresponding events (e.g., exercise events, insulin administration events, sleep or rest events, stress events, meal events, combinations thereof, etc.). The event profiles 1204 represent one or more event profiles, such as event profiles 906 and 908 as illustrated in FIG. 9, and can be used by one or more machine learning models 412 of the predictive system to more accurately determine expected responses (e.g., changes in glucose levels) to upcoming events.

[0149] For example, example training data may include labeled sections of glucose measurements, where the labels identify the type of event corresponding to the glucose measurement and, synchronized with the timestamp 402, indicate when the event begins and ends with respect to the glucose measurement. Thus, the event labels in such training data serve as ground truth for comparison with the output of the model during training. In this manner, feedback to one or more notification prompts 1010 may further be used as ground truth training data to refine the event profile 1204 associated with particular types of events. For example, feedback to one or more of the prompts 1010 illustrated in FIG. 11 may be used to refine the event profile 1204 for various types of athletic events that may be specific to the human 102 (e.g., determined based on explicit feedback provided by the human 102).

[0150] In one or more implementations, the model manager 1202 trains a machine learning model 412 to use such labeled training data to generate event predictions 414 corresponding to the event profile 1204. In this case, the machine learning model 412 learns to generate the event predictions 414 based on one or more inputs of glucose measurements 410 or additional data 404. Similarly, the machine learning model learns to generate glucose measurement predictions 416 based on inputs of glucose measurements 410 and / or additional data 404, where the additional data 404 represents the output predictions generated by one or more of the stacked machine learning models 412.

[0151] This process of inputting instances of training data into the machine learning model 412, receiving training predictions from the machine learning model 412, comparing the training predictions to ground truth information (observed) corresponding to the generated predictions 312, and adjusting the internal weights of the machine learning model 412 based on these comparisons can be repeated over hundreds, thousands, or even millions of instances of training data, i.e., with each iteration.

[0152] The model manager 1202 may perform such iterations until the machine learning model 412 is able to generate predictions that consistently and substantially match the expected output portions. The ability of a machine learning model to consistently generate predictions that substantially match the expected output portions may be referred to as “convergence.” With this in mind, the model manager 1202 may be said to train the machine learning model 412 until it “converges” to a solution (e.g., the model's internal weights are suitably adjusted by the training iterations such that the model generates predictions that substantially match the corresponding ground truth data).

[0153] As also described above, managing the machine learning model 412 may include personalizing the machine learning model 412 using transfer learning. In such a scenario, the model manager 1202 may first train the machine learning model 412 at a global level, as described in detail above, using instances of training data generated from data in the user population 110. Then, in a transfer learning scenario, the model manager 1202 may instantiate this globally trained model for a particular user, such that one copy of the globally trained model is generated for the human 102 and other copies of the globally trained model are generated for other users on a per-user basis.

[0154] This globally trained model may then be updated (or further trained) using data specific to the human 102. For example, the model manager 1202 may create an instance of training data using the glucose measurements 118 of the human 102 and further train the globally trained version of the model in a manner similar to that described above (e.g., by providing the training input portion of the training data for the human 102 to the machine learning model 412, receiving training predictions 312, comparing those predictions to respective ground truth training data, and adjusting the internal weights of the machine learning model 412). Based on this further training, the machine learning model 412 is trained at an individual level, creating a personally trained machine learning model 412.

[0155] It should be understood that such personalization may be less granular than per user in one or more implementations. For example, a globally trained model may be personalized at the user segment level, i.e., for a set of similar users in the user population 110 that is less than the entire user population 110. In this manner, the model manager 1202 may create a copy of the globally trained machine learning model 412 for each segment and train the global version at the segment level to create the segment-specific machine learning model 412.

[0156] In one or more implementations, the model manager 1202 may personalize the machine learning model 412 at a server level (e.g., at a server of the CGM platform 112). The machine learning model 412 may then be maintained at the server level and / or communicated to the computing device 108, for example, for integration with an application of the CGM platform 112 on the computing device 108. Alternatively or additionally, at least a portion of the model manager 1202 may be implemented on the computing device 108 such that a globally trained version of the machine learning model 412 is communicated to the computing device 108 and transfer learning (i.e., the further training described above to personalize the model) is performed on the computing device 108. While transfer learning may be utilized in one or more scenarios, such personalization may not be utilized and the described techniques may be implemented using a globally trained version of the machine learning model 412.

[0157] Having described exemplary details of a technique for generating event predictions and glucose measurement predictions using stacked machine learning models, we now consider some exemplary procedures to illustrate additional aspects of the technique.

[0158] Exemplary Procedure This section describes an example procedure for glucose measurement prediction and event prediction using stacked machine learning models. Aspects of the procedure may be implemented in hardware, firmware, software, or a combination thereof. The procedure is illustrated as a set of blocks specifying operations to be performed by one or more devices and is not necessarily limited to the order shown for performing the operations by the respective blocks. In at least some implementations, the procedure is performed by a prediction system, such as prediction system 310, utilizing sequencing manager 406, prediction manager 408, notification manager 1008, and model manager 1202.

[0159] FIG. 13 depicts a procedure 1300 in an example implementation in which a stack of machine learning models generates glucose measurement predictions based on glucose measurements and additional data.

[0160] Glucose measurements up to a point in time are received (block 1302). In accordance with the principles described herein, the glucose measurements are provided by a continuous glucose monitoring (CGM) system worn by the user. By way of example, the prediction manager 408 receives the glucose measurements 118, which are obtained from a CGM system 104 worn by the human 102. In particular, the CGM system 104 includes a sensor 202 that is inserted subcutaneously into the skin of the human 102 and used to measure glucose in the blood of the human 102.

[0161] The glucose measurement is processed using a stack of at least two machine learning models to generate a glucose measurement prediction for a time interval following the time point (block 1304). In accordance with principles described herein, each model in the stack of machine learning models is generated based on a user population's historical glucose measurements and / or additional data describing one or more behaviors of the user population. By way of example, the stack of machine learning models 412(1)-(n) processes the glucose measurement 118 to generate a glucose measurement prediction 416. The stack of machine learning models 412(1)-(n) generates the glucose measurement prediction by processing the glucose measurement 118 and / or the additional data 404 based on patterns learned during training about the human 102 or user population 110 for which the glucose measurement prediction 416 is generated. As described above, the user population 110 includes users wearing a CGM system, such as CGM system 104.

[0162] The glucose measurement prediction is then output (block 1306). By way of example, the prediction system 310 outputs the glucose measurement prediction 416 for processing by additional logic (e.g., to generate recommendations or notifications), storage in the storage device 120, communication to one or more computing devices, or display, to name just a few.

[0163] Based on the glucose measurement prediction, a notification is generated (block 1308). As an example, the data analytics platform 122 generates a notification 314 based on the glucose measurement prediction 416. For example, the notification 314 may alert the user (or healthcare provider or telemedicine service) of an upcoming adverse health condition, such as a high likelihood that the user will administer an incorrect dose of insulin for the predicted glucose level in the absence of mitigating behavior (e.g., diet, exercise, etc.). Additionally or alternatively, the notification 314 may provide assistance to the user (or healthcare provider or telemedicine service) in determining how to treat diabetes, for example, by recommending that the user take an action (e.g., download an application to the computing device 108, immediately visit a doctor, administer insulin, go for a walk, consume a particular food or beverage), continue a behavior (e.g., continue eating in a particular way or exercising in a particular way), change a behavior (e.g., change eating or exercise habits), etc. The notification may further include one or more prompts 1010 requesting that a user (eg, human 102 ) provide feedback related to the glucose reading prediction 416 .

[0164] The notification is communicated over the network to one or more computing devices for output (block 1310). By way of example, the communication interface of the data analytics platform 122 communicates the notification 314 over the network 116 to the computing device 108 of the person 102 (e.g., for output to the computing device 108 via an application on the CGM platform 112). Additionally or alternatively, the data analytics platform 122 communicates the notification 314 over the network 116 to a computing device (not shown) associated with a healthcare provider and / or a computing device (not shown) associated with a telemedicine service (e.g., for output via a provider portal to a telemedicine service).

[0165] FIG. 14 depicts a procedure 1400 in an example implementation in which a stack of multiple machine learning models is trained to output predictions specifying one or more of an event prediction or a glucose measurement prediction based on historical glucose measurements of a user population and additional data including one or more outputs from the stack of multiple machine learning models.

[0166] Glucose measurements for a time interval are received (block 1402). In accordance with principles described herein, the glucose measurements are provided by a continuous glucose monitoring (CGM) system worn by at least one user of the user population 110, such as a human 102 of the user population 110. By way of example, the prediction manager 408 receives glucose measurements 118 from the sequencing manager 406 of the prediction system 310, such as in the form of a time series of glucose measurements 410. In this manner, the time series of glucose measurements 410 may correspond to an aggregation and sequencing of the glucose measurements 118 and timestamps 102 obtained by the CGM system 104 worn by the human 102. In particular, the CGM system 104 includes a sensor 202 that is inserted subcutaneously into the skin of the human 102 and used to measure glucose in the blood of the human 102.

[0167] A glucose measurement prediction for a point in time following the time interval is generated by processing the time series of glucose measurements and the additional data using at least one machine learning model in the stack of machine learning models (block 1404). The prediction manager 408, for example, provides the glucose measurements 118 and the additional data 404 as input to one of the stacked machine learning models 412(1)-(n), which is trained to generate a glucose measurement prediction 416. According to one or more implementations, the stacked machine learning model 412 can be trained to identify patterns in the glucose measurements 118 and / or the additional data 404 to generate a prediction of glucose levels for the human 102 during the time following the time interval. In implementations, the glucose measurement prediction 416 can be output along with a confidence value 508 indicating a confidence level regarding the accuracy of the glucose measurement prediction 416 output by the prediction manager 408.

[0168] An event prediction for the time point is then generated based on the glucose measurement and the glucose measurement prediction using the stack of machine learning models (block 1406). The prediction manager 408 provides the glucose measurement prediction 416 generated by, for example, the glucose prediction model 502 to one or more machine learning models in the stack of machine learning models 412(1)-(n), such as one or more of the exercise prediction model 504 or the insulin administration prediction model 506, as illustrated in FIG. 5. The glucose measurement prediction 416 is provided as an input to at least one other model in the stack of machine learning models 412 via a feedback loop 518, and thus represents additional data 404 that may be provided as input to the stacked machine learning models 412(1)-(n).

[0169] The prediction manager 408, for example, provides the time-series glucose measurements 410 and the additional data 404 (e.g., glucose measurement predictions 416) as inputs to one of stacked machine learning models 412(1)-(n), which are trained to generate event predictions 414. According to one or more implementations, such machine learning models 412 may be trained to identify patterns in the time-series glucose measurements 410 together with the additional data 404 to generate a prediction that a specified event (e.g., meal, insulin administration, sleep / rest, exercise, stress, etc.) will occur during the time following the time interval. The exercise prediction model 504 may, for example, identify that an exercise event is likely to occur during the time following the time interval based on patterns included in the time-series glucose measurements 410, the glucose measurement predictions 416, and / or the additional data 404. In response to such identification, the exercise prediction model 504 may output an event prediction 414(1) indicating that an exercise event is likely to occur.

[0170] An expected response to the event identified by the event prediction and a confidence value associated with the event prediction are then determined (block 1408). The exercise prediction model 504 may be trained, for example, by the model manager 1202, to output an event prediction 414(1) along with an expected response 510 to the corresponding event and a confidence level 512 that the corresponding event will occur during a time period following a time interval. The response 510 may indicate one or more glucose levels and changes in the glucose levels of the human 102 that will occur in response to the event (e.g., an exercise event) described by the event prediction 414(1). In an implementation, the confidence level 512 may be represented as a number between 0 and 1, inclusive, where 0 represents no confidence that the event will occur and 1 represents the highest confidence that the event will occur.

[0171] A determination is then made as to whether the confidence value meets a confidence threshold (block 1410). The confidence filtering manager 1002 of the prediction system 310 may, for example, compare the confidence 512 for the event prediction 414(1) to a confidence threshold that specifies an acceptable level of confidence for determining whether to provide the output of one stacked machine learning model 412 as input to the stack of machine learning models 412(1)-(n). The confidence threshold may be any suitable value (e.g., 90% confidence) and may depend on the particular type of machine learning model 412 that generated the corresponding event prediction, such that different models in the stacked machine learning models 412(1)-(n) are associated with different confidence thresholds. In some implementations, the confidence threshold may be specified by a user (e.g., human 102) of the computing device implementing the prediction system 310. Alternatively or additionally, the confidence threshold may be determined by the prediction system 310 on a user-specific basis, such that different users in the user population 110 are assigned different confidence thresholds.

[0172] In response to determining that the confidence value meets the confidence threshold, the expected response to the event prediction is communicated as input to at least one machine learning model in the stack of multiple machine learning models (block 1412). For example, the response 510 may be provided as input to one or more of the machine learning models 412, such as an input to a glucose prediction model to generate a glucose measurement prediction 416 or an input to an insulin administration prediction model 506 to generate an event prediction 414(2). Communication of the expected response may be performed via a feedback loop 518, which is enabled by the stacked configuration of the machine learning models 412(1)-(n) implemented by the prediction manager 408. Operation then returns to block 1404 so that the stack of multiple machine learning models 412(1)-(n) can continue to generate event predictions 414 and glucose measurement predictions 416, taking advantage of the information described by the one or more predictions 312 generated by the prediction manager 408.

[0173] This cycle of operations described in blocks 1404-1412 may continue until a determination is made that a confidence value associated with an event prediction 414 and / or a glucose measurement prediction 416 does not meet a corresponding confidence threshold, at which point operations stop (block 1414). Alternatively, rather than stopping performance of the operations described in blocks 1404-1412, in response to determining that a confidence value associated with an event prediction 414 or a glucose measurement prediction 416 does not meet a corresponding confidence threshold, the confidence value may be discarded and prevented from being provided as an input to the stacked machine learning models 412(1)-(n). Thus, the operations described in blocks 1404-1412 may continue to use only the filtered data 1004 generated by the confidence filtering manager 1002, thereby ensuring that each prediction 312 output by a different one of the stacked machine learning models 412(1)-(n) is not adversely affected by processing input data that does not represent an actual condition (e.g., the human 102's actual future glucose level or an actual future event experienced by the human 102).

[0174] FIG. 15 depicts a procedure 1500 in an example implementation in which a stack of machine learning models is trained to generate event predictions for a user population.

[0175] Behavioral data describing user behavior for users of the user population 110 associated with one or more events is received (block 1502). In accordance with principles described herein, the behavioral data may include glucose measurements provided by CGM systems worn by users of the user population 110 and / or additional data 404 received from one or more sources other than the CGM system. By way of example, the prediction system 310 obtains glucose measurements 118 for users of the user population 110. In some implementations, the prediction system further obtains timestamps 402 of the glucose measurements 118 to form a time series of glucose measurements 410.

[0176] The prediction system 310 further obtains additional data 404 from one or more sources. The additional data 404 represents information that can be used to describe various aspects that may affect glucose and may be temporally associated with the glucose measurement value 118 (e.g., based on a timestamp associated with the additional data 404). Such additional data 404 may include, by way of example and not limitation, application usage data (e.g., clickstream data describing the displayed user interface and user interaction with the application through the user interface), mobile device or smartwatch accelerometer data (e.g., indicating that a human viewed the device's user interface and therefore likely saw an alert or information related to the predicted event), explicit feedback to notification prompts requesting input regarding the user's current or planned activity, data describing insulin administered (e.g., timing and insulin dose), data describing food ingested (e.g., timing of food intake, type of food, and / or amount of carbohydrates ingested), activity data from various sensors (e.g., step count data, workouts performed, or other data representative of the user's activity or exercise), glucose level response to stress, combinations thereof, etc.

[0177] Instances of training data are generated by selecting behavioral data that exhibit one or more common patterns that can be used to describe at least one user's response to a particular event (block 1504). In accordance with principles described herein, the common patterns may represent changes in glucose levels that occur leading up to, during, and after a particular event (e.g., meal, insulin administration, sleep / rest, exercise, stress, etc.). In some implementations, the common patterns are identified by correlating the changes in glucose levels with the timestamps 402 used to generate the time-series glucose measurements 410, and may be further correlated with information included in the additional data 404.

[0178] For each training data instance, an event profile is generated (block 1506). In accordance with the principles described herein, each event profile defines the respective training data instance as corresponding to a particular type of event along with an expected response for a particular user or group of users associated with the event (e.g., expected changes in glucose levels for a particular person participating in or otherwise undergoing a particular type of event). By way of example, the model manager 1202 generates, for each training data instance, an event profile 1204 that defines at least a start timestamp and an end timestamp for the corresponding event in relation to one or more patterns identified in the glucose measurements 118 and / or additional data 404. For example, the model manager 1202 may generate an event profile 908 for the human 102 to represent the human 102's expected glucose response to breakfast and an event profile 906 for the human 102's response to an afternoon workout. The event profiles thus serve as ground truth for comparison to the output of the stacked machine learning models 412(1)-(n) during training.

[0179] In the illustrated procedure 1500, blocks 1508-1514 may be repeated until the stack of multiple machine learning models is suitably trained, such as until each of the stacked machine learning models "converges" to a solution (e.g., until the internal weights of the models are suitably adjusted through training iterations such that the models consistently produce predictions that substantially match the expected output portion). Additionally or alternatively, blocks 1508-1514 may be repeated for multiple instances (e.g., all instances) of the training data.

[0180] The instances of training data and their respective event profiles are provided as inputs to a stack of machine learning models, including at least one model trained to generate glucose measurement predictions and at least one model trained to generate event predictions (block 1508). By way of example, the model manager 1202 provides the instances of training data generated in block 1504 and the respective event profiles generated in block 1506 as inputs to the stacked machine learning models 412(1)-(n).

[0181] An event prediction is received as output from a stack of machine learning models (block 1510). By way of example, a machine learning model 412(n) generates an event prediction 414(2), such as a prediction that an insulin administration event will occur in a future time step.

[0182] The event predictions are compared to the event profiles of each of the instances in the training data (block 1512). By way of example, the model manager 1202 compares the event predictions generated in block 1510 to the event profiles of each of the training instances generated in block 1506 (e.g., by using a loss function such as mean squared error (MSE)). While described with respect to MSE, the model manager 1202 may use other loss functions during training to compare the predictions 312 output by the stacked machine learning models 412(1)-(n) to ground truth for output without departing from the spirit or scope of the described techniques.

[0183] The weights of one or more of the stacked machine learning models are adjusted based on the comparison (block 1514). By way of example, the model manager 1202 may adjust the internal weights of at least one machine learning model 412 based on the comparison so that the machine learning model 412 can substantially reproduce an expected event profile (e.g., whether an insulin administration event will occur) when one or more of the glucose measurement 118, the additional data 404, the event prediction 414, or the glucose measurement prediction 416 are provided as input in the future.

[0184] Having described exemplary procedures according to one or more implementations, we now turn to exemplary systems and devices that can be utilized to implement the various techniques described herein.

[0185] Exemplary Systems and Devices 16 illustrates an example system, generally 1600, that includes an example computing device 1602, which represents one or more computing systems and / or devices that may implement various techniques described herein. This is shown through the inclusion of a CGM platform 112. The computing device 1602 may be, for example, a service provider's server, a device associated with a client (e.g., a client device), an on-chip system, and / or any other suitable computing device or computing system.

[0186] The illustrated exemplary computing device 1602 includes a processing system 1604, one or more computer-readable mediums 1606, and one or more I / O interfaces 1608 communicatively coupled to each other. Although not shown, the computing device 1602 may further include a system bus or other data and command transfer system coupling various components together. The system bus may include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and / or a processor or local bus utilizing any of a variety of bus architectures. Various other examples, such as control and data lines, are also contemplated.

[0187] Processing system 1604 represents functionality for performing one or more operations using hardware. Accordingly, processing system 1604 is illustrated as including hardware elements 1610, which may be configured as processors, functional blocks, etc. This may include hardware implementations as application-specific integrated circuits or other logic devices formed using one or more semiconductors. Hardware elements 1610 are not limited by the materials from which they are formed or the processing mechanisms employed therein. For example, a processor may be composed of semiconductors and / or transistors (e.g., electronic integrated circuits (ICs)). In this context, processor-executable instructions may be electronically executable instructions.

[0188] Computer-readable media 1606 is shown as including memory / storage 1612. Memory / storage 1612 represents memory / storage capacity associated with one or more computer-readable media. Memory / storage component 1612 may include volatile media (such as random access memory (RAM)) and / or non-volatile media (such as read-only memory (ROM), flash memory, optical disks, magnetic disks, etc.). Memory / storage component 1612 may include fixed media (e.g., RAM, ROM, fixed hard drives, etc.) as well as removable media (e.g., flash memory, removable hard drives, optical disks, combinations thereof, etc.). Computer-readable media 1606 may be configured in a variety of other ways, as described further below.

[0189] Input / output interface 1608 represents functionality that allows a user to input commands and information into computing device 1602 and to present information to a user and / or other components or devices using various input / output devices. Examples of input devices include a keyboard, a cursor control device (e.g., a mouse), a microphone, a scanner, touch functionality (e.g., a capacitive or other sensor configured to detect physical touch), a camera (which may, for example, use visible or invisible wavelengths such as infrared frequencies to recognize movements as gestures without touch), etc. Examples of output devices include a display device (e.g., a monitor or projector), speakers, a printer, a network card, a tactile response device, etc. Accordingly, computing device 1602 may be configured in a variety of ways, described further below, to support user interaction.

[0190] Various techniques may be described herein in the general context of software, hardware elements, or program modules. Generally, such modules include routines, programs, objects, elements, components, data structures, etc. that perform particular tasks or implement particular abstract data types. As used herein, the terms "module," "functionality," and "component" generally refer to software, firmware, hardware, or combinations thereof. Aspects of the techniques described herein are platform-independent, meaning that the techniques can be implemented on a variety of commercial computing platforms having a variety of processors.

[0191] An implementation of the described modules and techniques may be stored on or transmitted across some form of computer-readable media. Computer-readable media may include a variety of media that can be accessed by computing device 1602. By way of example, and not limitation, computer-readable media may include “computer-readable storage media” and “computer-readable signal media.”

[0192] A "computer-readable storage medium" may refer to a medium and / or device that enables persistent and / or non-transitory storage of information, as opposed to merely a signal transmission, carrier wave, or signal itself. Thus, a computer-readable storage medium refers to a non-signal-bearing medium. Computer-readable storage media include hardware, such as volatile and non-volatile, removable and non-removable media, and / or storage devices implemented in any method or technology suitable for storing information, such as computer-readable instructions, data structures, program modules, logic elements / circuits, or other data. Examples of computer-readable storage media may include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical storage device, hard disk, magnetic cassette, magnetic tape, magnetic disk storage or other magnetic storage device, or other storage device, tangible media, or any article of manufacture suitable for storing the desired information and that can be accessed by a computer.

[0193] A "computer-readable signal medium" may refer to a signal-bearing medium configured to transmit instructions to the hardware of the computing device 1602, such as over a network. Signal media may typically embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave, data signal, or other transport mechanism. Signal media also includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared, and other wireless media.

[0194] As previously mentioned, hardware elements 1610 and computer-readable media 1606 represent modules, programmable device logic, and / or fixed device logic implemented in hardware that may be used in some embodiments to implement at least some aspects of the techniques described herein, such as to execute one or more instructions. Hardware may include integrated circuits or components of on-chip systems, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), and other implementations in silicon or other hardware. In this context, hardware may operate as a processing device that executes program tasks defined by instructions and / or logic embodied in the hardware, as well as hardware utilized to store instructions for execution, such as the computer-readable storage media described above.

[0195] A combination of the foregoing may be used to implement the various techniques described herein. Accordingly, software, hardware, or executable modules may be implemented as one or more instructions and / or logic embodied on some form of computer-readable storage medium and / or by one or more hardware elements 1610. Computing device 1602 may be configured to implement specific instructions and / or functionality corresponding to software and / or hardware modules. Thus, implementation aspects of modules executable by computing device 1602 as software may be achieved at least partially in hardware, for example, through the use of computer-readable storage media and / or hardware elements 1610 of processing system 1604. The instructions and / or functionality may be executable / operable by one or more articles of manufacture (e.g., one or more computing devices 1602 and / or processing system 1604) to implement the techniques, modules, and examples described herein.

[0196] The techniques described herein may be supported by various configurations of computing device 1602 and are not limited to the specific examples of the techniques described herein. This functionality may also be implemented in whole or in part through the use of a distributed system, such as via a "cloud" 1614 via platform 1616, as described below.

[0197] Cloud 1614 includes and / or represents a platform 1616 for resources 1618. Platform 1616 abstracts the underlying functionality of the hardware (e.g., servers) and software resources of cloud 1614. Resources 1618 may include applications and / or data available while computer processing is running on a server remote from computing device 1602. Resources 1618 may also include services provided over the Internet and / or through a subscriber network, such as a cellular or Wi-Fi network.

[0198] Platform 1616 may abstract resources and functionality for connecting computing device 1602 with other computing devices. Platform 1616 may also abstract resource scaling, functioning to provide a level of scale corresponding to the encountered demand of resources 1618 implemented via platform 1616. Thus, in embodiments of interconnected devices, implementation aspects of the functionality described herein may be distributed throughout system 1600. For example, functionality may be implemented partially on computing device 1602 and via platform 1616, which abstracts the functionality of cloud 1614.

[0199] conclusion Although the systems and techniques have been described in language specific to structural features and / or methodological acts, it should be understood that the systems and techniques defined in the appended claims are not necessarily limited to the particular features or acts described. Rather, the particular features and acts are disclosed as example forms of implementing the claimed subject matter. [Explanation of symbols]

[0200] 102 humans 104 System 106 Insulin Delivery System 108 Computing Devices 110 User Population 112 Platform 114 Internet of Things 116 Network 118 Glucose Measurements 120 Storage Devices 122 Data Analysis Platform 202 Sensors 204 Sensor Module 206 Skin 208 Transmitter 210 adhesive pad 212 Mounting mechanism 214 Device Data 216 Sensor Identification 218 Sensor Status 302 packages 304 Supplementary Data 306 Third Party 308 Third Party Data 310 Prediction System 312 Predictions 314 Notification 402 Timestamp 404 Additional Data 406 Sequencing Manager 408 Model Manager 410 Glucose Measurements 412 Machine Learning Models 414 Event Prediction 416 Glucose Measurement Prediction 502 Glucose Prediction Model 504 Motion Prediction Model 506 Insulin administration prediction model 508 Reliability 510 response 512 Reliability 514 response 516 Reliability 518 Feedback Loop 602 Glucose Prediction Model 604 Meal Prediction Model 606 Insulin administration prediction model 608 Glucose Prediction Model 610 Glucose Measurement Prediction 612 User Behavior Information 614 Meal Event Prediction 616 User Behavior Information 618 Insulin administration event prediction 702 Motion Prediction Model 704 Insulin administration prediction model 706 Meal Prediction Model 708 Glucose Prediction Model 710 Model Specific Data 712 Model Specific Data 714 Model Specific Data 802 First glucose trace 803 Glucose Trace 804 Glucose Trace 805 Glucose Trace 806 Glucose Trace 807 Glucose Trace 808 Glucose Trace 809 Glucose Trace 810 Glucose Trace 902 Data 904 Data 906 Event Profiles 1002 Trusted Filtering Manager 1004 Filtered Data 1008 Notification Manager 1010 prompt 1102 Scenario 1104 Scenario 1106 User Interface 1108 Options 1112 User Interface 1114 Icons 1116 Icons 1118 Icons 1120 Icons 1202 Model Manager 1204 Event Profile 1600 System 1602 Computing Devices 1604 Processing System 1606 Computer-readable medium 1608 I / O interface 1610 Hardware Elements 1612 Storage Components 1612 memory / storage 1614 Cloud 1616 Platform 1618 resources

Claims

1. 1. A method comprising: receiving glucose measurements up to a point in time, the glucose measurements being provided by a continuous glucose monitoring (CGM) system worn by a user; generating a glucose measurement prediction for a time interval following the time point by processing the glucose measurements using a stacked arrangement of multiple machine learning models configured such that an output generated by one of the machine learning models can be provided as an input to another one of the machine learning models, wherein at least one of the multiple machine learning models is generated based on glucose measurements of a user population and at least another one of the multiple machine learning models is generated based on additional data of the user population; and outputting the glucose measurement prediction.

2. generating the glucose measurement prediction, causing the at least one of the plurality of machine learning models generated based on the glucose measurements of the user population to output an initial glucose measurement prediction; providing the initial glucose measurement prediction as an input to the at least one of the plurality of machine learning models generated based on additional data of the user population.

3. generating the glucose measurement prediction, generating an event prediction from the at least one of the plurality of machine learning models generated based on the additional data of the user population; providing the event prediction as an input to the at least one of the plurality of machine learning models generated based on glucose measurements of the user population.

4. 4. The method of claim 3, wherein the event predictions are filtered based on a comparison of associated confidence scores to a confidence threshold, and the event predictions are provided as input to the at least one of the plurality of machine learning models generated based on the glucose measurements in response to the confidence scores meeting the confidence threshold; otherwise, the event predictions are withheld as input.

5. The method of claim 1 , wherein the additional data is temporally correlated with the glucose measurement.

6. generating an event prediction for the time interval following the time point using the at least one of the plurality of machine learning models generated based on additional data of the user population; The method of claim 1 , further comprising: outputting the event prediction.

7. 10. The method of claim 1, wherein the stacked configuration of the plurality of machine learning models enables an output generated by one of the plurality of machine learning models to be provided as an input to at least one other model of the plurality of machine learning models.

8. The method of claim 1 , wherein at least one of the plurality of machine learning models is configured as a neural network.

9. The method of claim 1 , wherein the glucose measurements comprise measurements provided by CGM systems worn by users of the user population.

10. one of the plurality of machine learning models, receiving historical glucose measurements of the user population, the historical glucose measurements being provided by continuous glucose monitoring (CGM) systems worn by users of the user population; generating instances of training data by, for each instance of training data, selecting a glucose measurement from the historical glucose measurements and generating an event profile defining the instance of training data as including an event and a glucose level change for the event; 10. The method of claim 1, further comprising: training the one of the plurality of machine learning models to predict occurrence of the event using instances of the training data and corresponding event profiles.

11. Training the one of the plurality of machine learning models includes: providing the training data instances and their respective event profiles to the one of the plurality of machine learning models; receiving, for each training data instance, an event prediction from the one of the plurality of machine learning models indicating whether the event will occur over a time step of the training data instance; comparing the event prediction to the event profile; The method of claim 10 , further comprising adjusting at least one weight of the one of the plurality of machine learning models based on the comparing.

12. 1. A system comprising: a storage device for maintaining glucose measurements provided by a continuous glucose monitoring (CGM) system worn by a user and additional data associated with said user; a stack of multiple machine learning models for generating a glucose measurement prediction over a time interval following a time, the stack of multiple machine learning models configured such that an output generated by one of the machine learning models can be provided as an input to another of the machine learning models, the glucose measurement prediction being generated by providing as input to at least one of the multiple machine learning models at least a portion of the glucose measurements up to the time and an output generated by at least another of the multiple machine learning models.

13. 13. The system of claim 12, wherein one of the plurality of machine learning models is a recurrent neural network configured to predictively generate the glucose measurement predictions iteratively, each iteration generating measurements for a portion of the glucose measurement predictions.

14. 14. The system of claim 13, wherein another one of the plurality of machine learning models is a reinforcement learning model that is updated with feedback regarding event predictions.

15. 13. The system of claim 12, further comprising a data analysis platform for generating a notification based on the glucose measurement prediction and communicating the notification over a network to one or more computing devices for output.

16. 13. The system of claim 12, further comprising a model manager configured to train each of the plurality of neural networks using at least one of glucose measurements of a user population or additional data associated with the user population.

17. The system of claim 12, further comprising a confidence filtering manager configured to identify the output generated by the at least one of the plurality of neural networks and provide the output as an input to the at least one of the plurality of neural networks based on a confidence level associated with the output.

18. 1. A method comprising: receiving data describing a user's behavior up to a certain point in time; generating an event prediction describing whether an event will occur during a time interval following the time point by providing the data describing the user's behavior as input to one of a plurality of machine learning models arranged in a stacked configuration such that an output generated by one of the machine learning models can be provided as input to another of the machine learning models; receiving glucose measurements for the user up to the time point, the glucose measurements being provided by a continuous glucose monitoring system worn by the user; generating a glucose measurement prediction for the time interval following the time point by providing the event prediction and the glucose measurement as inputs to another one of the plurality of machine learning models arranged in the stacked configuration; and outputting the glucose measurement prediction.

19. 20. The method of claim 18, wherein providing the event prediction as an input to the machine learning model used to generate the glucose measurement prediction comprises filtering information associated with the event prediction based on a confidence threshold associated with the machine learning model used to generate the event prediction.

20. the machine learning model configured to generate the event predictions, receiving data describing user behavior for users of a user population; The training data instances are selecting behavioral data exhibiting common patterns that can be used to describe a response of at least one user of the user population to an event; generating a response to the event by defining an event profile for the event, the event profile specifying a type of the event and the response to the event; training the machine learning model used to generate the event prediction to predict the occurrence of the event using instances of the training data; providing instances of the training data to the machine learning model; receiving, for each training data instance, an event prediction from the machine learning model indicating whether the event will occur over the time span encompassed by the training data instance; For each training data instance, comparing the event prediction to the event profile; 20. The method of claim 18, further comprising: training by predicting by adjusting at least one weight of the machine learning model based on the comparing.

Citation Information

Patent Citations

  • Blood sugar level prediction system

    JP2012058939A

  • Event estimation method, event estimation program, server device, biological information measuring device, and event estimation system

    JP2020031701A

  • System and method for decision support

    US20190246914A1

  • Patient day planning systems and methods

    US20200093988A1