CURRENT USAGE ESTIMATION FOR ELECTRONIC DEVICES
Various embodiments are described herein for a system and method for estimating current consumption for an electronic device by obtaining log data comprising a record of at least some activities of the electronic device during a selected time period, parsing the log data into a plurality of component digests, estimating current consumption values for the component digests based on component signatures of the component digests, a current consumption model and a machine learning technique; and processing the estimated current consumption values to estimate current consumption data for the electronic device.
1 . A method of estimating current consumption of an electronic device, the method comprising:
obtaining log data comprising a record of at least some activities of the electronic device during a selected time period;
parsing the log data into a plurality of component digests;
estimating current consumption values for the component digests based on component signatures of the component digests, a current consumption model and a machine learning technique; and
processing the estimated current consumption values to estimate current consumption data for the electronic device.
2 . The method of claim 1 , wherein estimating the current consumption value for a given component digest comprises:
determining the component signature of the given component digest;
locating a training signature from training set data that corresponds to the component signature; and
setting the estimated current consumption value to a current label associated with the located training signature.
3 . The method of claim 2 , wherein determining the component signature of the given component digest comprises mapping the component digest to an N-dimensional vector using a transformation that is at least approximate distance preserving.
4 . The method of claim 3 , wherein the mapping comprises mapping the component digest to a bag-of-word array by counting occurrences of text in the component digest and applying different weights to occurrences of different text in the component digest and then mapping the bag-of-word array to the component signature using the at least approximate distance preserving transformation.
5 . The method of claim 1 , wherein the method comprises estimating the current consumption model by:
obtaining training log data when executing a plurality of activities on the electronic device, the training log data comprising kernel event log data and current log data;
synchronizing the current log data with the kernel event log data when the current log data and the kernel event log data are not synchronized;
merging the kernel event log data with the current log data to form kernel-event-current log data;
parsing the kernel-event-current-log data into a plurality of raw digests;
determining training signatures for the raw digests after removing the current log values from the raw digests;
determining labels for the training signatures from the current usage values of the raw digests that correspond to the training signatures; and
applying the machine learning algorithm to the training signatures and corresponding labels to determine a relationship between the activities and the current usage used to generate the current consumption model.
6 . The method of claim 5 , wherein determining a label associated with a given raw digest further comprises:
extracting the current consumption values from the given raw digest;
computing an average current consumption value from averaging the current consumption values over the length of the given raw digest; and
assigning the average current consumption value as the label associated with the training signature corresponding to the given raw digest.
7 . The method of claim 1 , wherein the machine learning algorithm is one of a VP-tree based nearest-neighbor algorithm, a support vector machine algorithm, a decision-tree algorithm, a linear or logistic regression algorithm, a boosted decision tree and a neural network.
8 . An electronic device comprising:
a plurality of subsystems for providing various functions;
an operating system for enabling execution of software applications and operation of the subsystems as well as logging activity of the electronic device in log data;
a processor that controls the operation of the device, the processor being configured to estimate current consumption of the electronic device by obtaining log data comprising a record of at least some activities of the electronic device during a selected time period; parsing the log data into a plurality of component digests; estimating current consumption values for the component digests based on component signatures of the component digests, a current consumption model and a machine learning technique; and
processing the estimated current consumption values to estimate current consumption data for the electronic device.
9 . The device of claim 8 , wherein estimating the current consumption value for a given component digest comprises:
determining the component signature of the given component digest;
locating a training signature from training set data that corresponds to the component signature; and
setting the estimated current consumption value to a current label associated with the located training signature.
10 . The device of claim 9 , wherein determining the component signature of the given component digest comprises mapping the component digest to an N-dimensional vector using a transformation that is at least approximate distance preserving.
11 . The device of claim 10 , wherein the mapping comprises mapping the component digest to a bag-of-word array by counting occurrences of text in the component digest and applying different weights to occurrences of different text in the component digest and then mapping the bag-of-word array to the component signature using the at least approximate distance preserving transformation.
12 . The device of claim 8 , wherein the method comprises estimating the current consumption model by:
obtaining training log data when executing a plurality of activities on the electronic device, the training log data comprising kernel event log data and current log data;
synchronizing the current log data with the kernel event log data when the current log data and the kernel event log data are not synchronized;
merging the kernel event log data with the current log data to form kernel-event-current log data;
parsing the kernel-event-current-log data into a plurality of raw digests;
determining training signatures for the raw digests after removing the current log values from the raw digests;
determining labels for the training signatures from the current usage values of the raw digests that correspond to the training signatures; and
applying the machine learning algorithm to the training signatures and corresponding labels to determine a relationship between the activities and the current usage used to generate the current consumption model.
13 . The device of claim 12 , wherein determining a label associated with a given raw digest further comprises:
extracting the current consumption values from the given raw digest;
computing an average current consumption value from averaging the current consumption values over the length of the given raw digest; and
assigning the average current consumption value as the label associated with the training signature corresponding to the given raw digest.
14 . The device of claim 8 , wherein the machine learning algorithm is one of a VP-tree based nearest-neighbor algorithm, a support vector machine algorithm, a decision-tree algorithm, a linear or logistic regression algorithm, a boosted decision tree and a neural network.
15 . A computer readable medium comprising a plurality of instructions executable on a microprocessor of an electronic device for adapting the electronic device to implement a method of estimating current consumption for the electronic device, wherein the method comprises:
obtaining log data comprising a record of at least some activities of the electronic device during a selected time period;
parsing the log data into a plurality of component digests;
estimating current consumption values for the component digests based on component signatures of the component digests, a current consumption model and a machine learning technique; and
processing the estimated current consumption values to estimate current consumption data for the electronic device.
16 . The computer readable medium of claim 15 , wherein estimating the current consumption value for a given component digest comprises:
determining the component signature of the given component digest;
locating a training signature from training set data that corresponds to the component signature; and
setting the estimated current consumption value to a current label associated with the located training signature.
17 . The computer readable medium of claim 16 , wherein determining the component signature of the given component digest comprises mapping the component digest to an N-dimensional vector using a transformation that is at least approximate distance preserving.
18 . The computer readable medium of claim 17 , wherein the mapping comprises mapping the component digest to a bag-of-word array by counting occurrences of text in the component digest and applying different weights to occurrences of different text in the component digest and then mapping the bag-of-word array to the component signature using the at least approximate distance preserving transformation.
19 . The computer readable medium of claim 15 , wherein the method comprises estimating the current consumption model by:
obtaining training log data when executing a plurality of activities on the electronic device, the training log data comprising kernel event log data and current log data;
synchronizing the current log data with the kernel event log data when the current log data and the kernel log data are not synchronized;
merging the kernel event log data with the current log data to form kernel-event-current log data;
parsing the kernel-event-current-log data into a plurality of raw digests;
determining training signatures for the raw digests after removing the current log values from the raw digests;
determining labels for the training signatures from the current usage values of the raw digests that correspond to the training signatures; and
applying the machine learning algorithm to the training signatures and corresponding labels to determine a relationship between the activities and the current usage used to generate the current consumption model.
20 . The computer readable medium of claim 19 , wherein determining a label associated with a given raw digest further comprises:
extracting the current consumption values from the given raw digest;
computing an average current consumption value from averaging the current consumption values over the length of the given raw digest; and
assigning the average current consumption value to be the label associated with the training signature corresponding to the given raw digest.
21 . The computer readable medium of claim 15 , wherein the machine learning algorithm is one of a VP-tree based nearest-neighbor algorithm, a support vector machine algorithm, a decision-tree algorithm, a linear or logistic regression algorithm, a boosted decision tree and a neural network.