Determining a similar behavioral pattern between time-series data obtained from multiple sensors, and clustering thereof.
Patent Information
- Application Number
- DE602021040720
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-03-03
- Filing Date
- 2021-06-30
- Publication Date
- 2025-10-22
- Estimated Expiration
- 2041-06-30
AI Technical Summary
Existing machine learning-based approaches struggle to detect similar behavioral patterns among multiple sensors in large systems with a high number of input parameters, as sensor values often vary in different ranges and have phase differences, making it difficult for domain experts to identify sensor similarity.
A pattern recognition-based approach using Dynamic Programming (DP) to identify similar time series patterns across sensors, followed by clustering, which is computationally efficient and scalable.
Effectively clusters sensors with similar behavioral patterns, overcoming the limitations of traditional methods by accurately identifying sensor similarities despite value variations and phase differences.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS AND PRIORITY
[0001] The present application claims priority to Indian application, Application No. 202121008969, filed in India on March 3, 2021.TECHNICAL FIELD
[0002] The disclosure herein generally relates to sensor analysis, and, more particularly, to determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof.BACKGROUND
[0003] In manufacturing, such as telemetry, energy, utility, and health care industries, a plethora of sensors are normally attached to a system or human being, respectively. In the last few years, a trend has been observed to apply data analytics on those time series data to get actionable insight. Any such system aims to get the time series and then apply descriptive, predictive, or prognostic analytics to fetch insight to far sight from the data. But in traditional machine learning (ML) based approaches one important aspect is to analyse the feature or the characteristic of the data. In classical approach, feature engineering involves discovering the feature dependency. Similarly, under the scenario of multi-sensor environment there is a need to detect which sensors are behaving similarly within a time span. Moreover, it is not possible for a single domain expert to detect such sensor similarity in a large system where the number of input parameters / sensor observations are in nearly in the order of 10 3< . Over and above, the sensor values often vary in different range of values yet depict similar time series characteristic and sometimes the sensors have a phase difference in operation.
[0004] Document D1 US2015316666A1 teaches detection of repeating seismic events from long duration seismic data without prior knowledge of event waveforms is performed by computing compact binary fingerprints from seismic data, generating a similarity matrix from the fingerprints, and identifying seismic events from the similarity matrix, e.g., using a thresholding condition. Each element of the similarity matrix is a value representing similarity between a pair of fingerprints, where the value is calculated by hashing fingerprints to hash buckets in multiple hash tables and counting a fraction of the multiple hash tables containing a fingerprint match in the hash buckets. The similarity matrix may be combined with similarity matrices derived from other seismic data to produce a total network similarity matrix, increasing the sensitivity of the detection. Other seismic data may include multiple components recorded at a single station or data recorded at separately located stations.
[0005] Document D2 SAMET AYHAN ET AL discloses that at the heart of Air Traffic Management (ATM) lies the Decision Support Systems (DST) that rely upon accurate trajectory prediction to determine how the airspace will look like in the future to make better decisions and advisories. Dealing with airspace that is prone to congestion due to environmental factors still remains the challenge especially when a deterministic approach is used in the trajectory prediction process. In D2, a novel stochastic trajectory prediction approach for ATM that can be used for more efficient and realistic flight planning and to assist airspace flow management, potentially resulting in higher safety, capacity, and efficiency commensurate with fuel savings thereby reducing emissions for a better environment is described. This approach considers airspace as a 3D grid network, where each grid point is a location of a weather observation. D2, hypothetically build cubes around these grid points, so the entire airspace can be considered as a set of cubes. Each cube is defined by its centroid, the original grid point, and associated weather parameters that remain homogeneous within the cube during a period of time. Then, raw trajectories are aligned to a set of cube centroids which are basically fixed 3D positions independent of trajectory data. This creates a new form of trajectories which are 4D joint cubes, where each cube is a segment that is associated with not only spatio-temporal attributes but also with weather parameters. Next, machine learning techniques to train inference models from historical data and apply a stochastic model, a Hidden Markov Model (HMM), to predict trajectories taking environmental uncertainties into account are exploited. During the process, time series clustering to generate input observations are applied from an excessive set of weather parameters to feed into the Viterbi algorithm. The experiments use a real trajectory dataset with pertaining weather observations and demonstrate the effectiveness of this approach to the trajectory prediction process for ATM.
[0006] Document D3 US2021042357A1 discloses systems and methods for content quasi-personalization or anonymized content retrieval via aggregated browsing history of a large plurality of devices, such as millions or billions of devices. A sparse matrix may be constructed from the aggregated browsing history, and dimensionally reduced, reducing entropy, and providing anonymity for individual devices. Relevant content may be selected via quasi-personalized clusters representing similar browsing histories, without exposing individual device details to content providers.
[0007] Document D4 SANCHEZ IVAN ET AL discloses about explosion in the usage of trajectory data. Clustering is one of the simplest and most powerful approaches for knowledge discovery from trajectories. In order to produce meaningful clusters, well-defined metrics are required to capture the essence of similarity between trajectories. One such distance function is Dynamic Time Warping (DTW), which aligns two trajectories together in order to determine similarity. DTW has been widely accepted as a very good distance measure for trajectory data. However, trajectory clustering is very expensive due to the complexity of the similarity functions, for example, DTW has a high computational cost O(n^2), where n is the average length of the trajectory, which makes the clustering process very expensive. In D4, the use of hashing techniques based on Distance-Based Hashing (DBH) and Locality Sensitive Hashing (LSH) to produce approximate clusters and speed up the clustering process is proposed.
[0008] US 2020 / 082013 A1 (TRIPLET THOMAS [CA] ET AL) 12 March 2020. The document discloses systems and methods for automated feature selection and pattern discovery in multivariate time-series data, particularly from IoT and telecommunications networks.SUMMARY
[0009] The invention is set out in the appended set of claims.BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings, which are incorporated in and constitute a part of this disclosure, illustrate exemplary embodiments and, together with the description, serve to explain the disclosed principles: FIG. 1 depicts a system for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof, in accordance with an embodiment of the present disclosure. FIG. 2 depicts an exemplary flow chart illustrating a method for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof, using the system of FIG. 1, in accordance with an embodiment of the present disclosure. FIG. 3 depicts a graphical representation illustrating clustering of a first sensor S1 and a second sensor S2 and corresponding time series data into specific cluster, in accordance with an embodiment of the present disclosure. FIG. 4 depicts a graphical representation illustrating clustering of a third sensor S3, a fourth sensor S4, a fifth sensor S5, a sixth sensor S6, a seventh sensor S7 and corresponding time series data into another specific cluster, in accordance with an embodiment of the present disclosure. DETAILED DESCRIPTION OF EMBODIMENTS
[0011] Exemplary embodiments are described with reference to the accompanying drawings. In the figures, the left-most digit(s) of a reference number identifies the figure in which the reference number first appears. Wherever convenient, the same reference numbers are used throughout the drawings to refer to the same or like parts.
[0012] In manufacturing, various industries deploy a plethora of sensors wherein these sensors are normally attached to a system or human being, respectively. Any such system aims to get the time series and then apply descriptive, predictive, or prognostic analytics to fetch insight to far sight from the data. But in traditional machine learning (ML) based approaches one important aspect is to analyse the feature or the characteristic of the data. In classical approach, feature engineering involves discovering the feature dependency. Similarly, under the scenario of multi-sensor environment there is a need to detect which sensors are behaving similarly within a time span. Moreover, it is not possible for a single domain expert to detect such sensor similarity in a large system where the number of input parameters / sensor observations are in nearly in the order of 10 3< . Over and above, the sensor values often vary in different range of values yet depict similar time series characteristic and sometimes the sensors have a phase difference in operation. Conventional methods such as (i) Brute force-based method to plot pair wise time series graphs and get manual intervention to detect the similarity, (ii) Dendrogram based approach to find the sensor similarity wherein it fails when similar pattern is observed but the amplitude of the sensor observations is residing in different scale of values. But even in a multi-disciplinary analysis, sometimes these types of dependencies are being overlooked by any domain expert. Embodiments of the present disclosure provide systems and methods for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof. More specifically, system of the present disclosure implements a pattern recognition-based approach to find the similarity and then applies a Dynamic Programming (DP) based approach to detect the similarity in at least two time series data even when the time series data are out of phase and then cluster the sensors and corresponding time series data from various sensors into specific cluster(s). By implementing the DP based approach, the system proves to be computationally efficient, and makes the system highly scalable.
[0013] Referring now to the drawings, and more particularly to FIG. 1 through 4, where similar reference characters denote corresponding features consistently throughout the figures, there are shown preferred embodiments and these embodiments are described in the context of the following exemplary system and / or method.
[0014] FIG. 1 depicts a system 100 for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof, in accordance with an embodiment of the present disclosure. In an embodiment, the system 100 includes one or more hardware processors 104, communication interface device(s) or input / output (I / O) interface(s) 106 (also referred as interface(s)), and one or more data storage devices or memory 102 operatively coupled to the one or more hardware processors 104. The one or more processors 104 may be one or more software processing components and / or hardware processors. In an embodiment, the hardware processors can be implemented as one or more microprocessors, microcomputers, microcontrollers, digital signal processors, central processing units, state machines, logic circuitries, and / or any devices that manipulate signals based on operational instructions. Among other capabilities, the processor(s) is / are configured to fetch and execute computer-readable instructions stored in the memory. In an embodiment, the system 100 can be implemented in a variety of computing systems, such as laptop computers, notebooks, hand-held devices, workstations, mainframe computers, servers, a network cloud and the like.
[0015] The I / O interface device(s) 106 can include a variety of software and hardware interfaces, for example, a web interface, a graphical user interface, and the like and can facilitate multiple communications within a wide variety of networks N / W and protocol types, including wired networks, for example, LAN, cable, etc., and wireless networks, such as WLAN, cellular, or satellite. In an embodiment, the I / O interface device(s) can include one or more ports for connecting a number of devices to one another or to another server.
[0016] The memory 102 may include any computer-readable medium known in the art including, for example, volatile memory, such as static random access memory (SRAM) and dynamic random access memory (DRAM), and / or non-volatile memory, such as read only memory (ROM), erasable programmable ROM, flash memories, hard disks, optical disks, and magnetic tapes. In an embodiment, a database 108 is comprised in the memory 102, wherein the database 108 comprises one or more set of time series data captured by one or more sensors attached to various equipment / (or devices) deployed and being operated in an industry, or computing systems, or any other location. The database 108 further stores information on first order derivative over time being computed, gradient of change in value of the one or more sensors, derived angle of change in direction with associated measurement unit, details of alphanumeric codes assigned to each sensor or time-series data, set of sensors having similar time series pattern, sparse matrix, similarity score computed for the set of sensors, sensors and time-series data being clustered into one or more clusters.
[0017] The information stored in the database 108 further comprises various techniques such as edit distance technique as known in the art, depth first search (DFS) technique(s) as known in the art, and the like. The above-mentioned techniques comprised in the memory 102 / database 108 are invoked as per the requirement by the system 100 to perform the methodologies described herein. The memory 102 further comprises (or may further comprise) information pertaining to input(s) / output(s) of each step performed by the systems and methods of the present disclosure. In other words, input(s) fed at each step and output(s) generated at each step are comprised in the memory 102 and can be utilized in further processing and analysis.
[0018] FIG. 2, with reference to FIG. 1, depicts an exemplary flow chart illustrating a method for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof, using the system 100 of FIG. 1, in accordance with an embodiment of the present disclosure. In an embodiment, the system(s) 100 comprises one or more data storage devices or the memory 102 operatively coupled to the one or more hardware processors 104 and is configured to store instructions for execution of steps of the method by the one or more processors 104. The steps of the method of the present disclosure will now be explained with reference to components of the system 100 of FIG. 1, and the flow diagram as depicted in FIG. 2. In an embodiment, at step 202 of the present disclosure, the one or more hardware processors 104 assign an alphanumeric code to each observation property of each sensor from a plurality of sensors, based on a plurality of quantized values to obtain a plurality of alphanumeric strings. Each of the plurality of sensors being associated with a corresponding time series data. The step of assigning an alphanumeric code to each observation property of each sensor comprises obtaining a plurality of time series data from the plurality of sensors; computing a first order derivative over time using the obtained plurality of time series data; computing a gradient of change in value of the plurality of sensors over time based on the first order derivative; deriving an angle of change in direction based on the gradient of change in value of the plurality of sensors over time, and converting the derived angle to a measurement unit; and quantizing each time series data of the plurality of time series data into a plurality of bins based on the measurement unit, each of the plurality of bins corresponds to a quantized value; and assigning the alphanumeric code to each observation property of each sensor from the plurality of sensors based on the plurality of bins. The step of assigning an alphanumeric code can be better understood by way of following description. At first a plurality of time series data is obtained from the plurality of sensors. In an embodiment, at step 202 of the present disclosure, the one or more hardware processors 104 obtain the plurality of time series data corresponding to one or more sensors attached to (or internally connected to) at least one computing device. In an embodiment, the at least one computing device is an Internet of Things (IoT) sensing device. Example of the IoT sensing device, includes but is not limited to, computer systems, mobile communication devices, routers, televisions, and the like. Example of time series data obtained from one or more (or various sensors) is depicted in below tables, Table 1 and 2, respectively. Table 1Time stampSensor S1Sensor S22205565.5857483082.754488829862205565.5901394976.460448869662205565.5917497280.661431201012205565.5952264031.661890567362205565.5864257553.555671650242205565.5950307149.864463965932205565.5906683166.658599628402205565.5892435483.258325527082205565.5864422203.856832512372205565.5909378630.660504157662205565.5861532061.157196862912205565.5884042423.857263151862205565.591498462759642809172205565.5918403145.164807769802205565.597958443169074335072205565.5100160479372082098712205565.500 Table 2 Time stampSensor S3Sensor S4Sensor S5Sensor S6Sensor S72205565. 5111970325 71920160000 008415214202 919306300000 00135205245 262205565. 5118899578 92367520000 001104060000 0019438200000 00143775176 512205565. 5147331887 62462340000 001194080000 0020438300000 00168004533 572205565. 5108999330 32434090000 001149800000 0019898400000 00165209867 562205565. 5109344141 22191100000 001088540000 0019354900000 00126347144 562205565. 5993463299 .12272250000 001084180000 0021939500000 00184776785 342205565. 5965774693 .62567090000 001211170000 0020793800000 00160969678 592205565. 5116583985 22487760000 001164760000 0020509300000 00163658501 952205565. 5112797942 52114520000 009386132588 819445500000 00141151300 182205565. 5104302017 82398780000 001179940000 0019442800000 00134091929 702205565. 5121420920 32313450000 001132820000 0019636900000 00153634927 412205565. 5991292553 .12105110000 001023950000 0019721800000 00143141773 842205565. 5107985424 52278050000 001122810000 0020119900000 00143191667 192205565. 5110856438 73092770000 001399880000 0022596300000 00211241121 762205565. 5105174258 22648060000 001236320000 0020503200000 00171201330 272205565. 5155954448 92869440000 001433050000 0023343700000 00222636171 162205565. 502746720000 001405240000 0024221800000 00258778798 47
[0019] The sensors S1 and S2 corresponds to sensors values for as load_miss_completed_2M and load_miss_completed_4K respectively, wherein a load-miss refers to when a processor needing to fetch data from main memory, but data does not exist in the cache. Similar, sensor S3 corresponds to sensor values / time series data for ARITH_INST_RET_SCALAR (e.g., arithmetic instructions return scalar). For the sake of brevity, other sensors S3 through S7 are not specified or described. However, it is to be understood that these sensor names can be specified as mentioned for sensors S1 and S2 and such sensor listings shall not be construed as limiting the scope of the present disclosure. Once the above time series data is obtained from various sensors, a first order derivative over time is computed using the obtained plurality of time series data. The first order derivative is computed if the sensor records which stores the cumulative data as δs: δs = S n -S n-1 indicates the consumption of the physical property sensed by that specific sensor. The difference of sensor observation at the first two-time stamps is 43911893.65278. Hence the change in value is obtained by computing the difference in the sensor observation in two consecutive time stamps. Below tables Table 3 and 4 illustrate example of the first order derivative being computed over time using the obtained input time series data. Table 3Time stampFirst order derivative for sensor S1First order derivative for sensor S22205565.543911893.65596003980.52205565.516102304.25982331352205565.53476675145936634.632205565.5-88006478.13-621891711.42205565.586049596.31879231568.92205565.5-43623983.19-586433753.62205565.5-14247683.44-27410131.372205565.5-28013279.37-149301471.12205565.544956426.81367164528.32205565.5-47846569.5-330729474.22205565.522510362.696628894.1872205565.530942203.19237965731.12205565.53418518.063516496063.32205565.561181285.94426656527.22205565.522020361.563007763642205565.5-1001604793-7208209871 Table 4 Time stampFirst order derivative for sensor S3First order derivative for sensor S4First order derivative for sensor S5First order derivative for sensor S6First order derivative for sensor S72205565. 569292531.6 94473616401 72625370185 613185676712856993124. 42205565. 5284323087. 29481577644900211237510001377741 9242293570 62205565. 5- 383325572. 5- 2824663576- 4428045337- 53994813593- 279466600. 42205565. 53448108.62 5- 2429947648 5- 6126280920- 54351733515- 388627230 12205565. 5-999781138115191562- 435460994. 225846426734 4584296407 92205565. 5- 27688605.52948466188 31269837867 4- 11457257317 7- 238071067 62205565. 5200065158. 7- 7933124251- 4640178939- 28443436727268882336. 62205565. 5- 37860426.8 8- 3732457443 8- 2261504285 5- 10638720420 2- 225072017 72205565. 5- 84959247.7 52842630955 12413290884 4-270190892.1- 705937047. 42205565. 5171189025. 8- 8533033585- 471222757819412045786195429977 12205565. 5- 222916650. 2- 2083434127 1- 1088651123 88492592692- 104931535 72205565. 588561691.5 61729439507 39885822556398122999034989335.56 32205565. 528710141.8 78147152966 02770642944 424763503400 3680494545 72205565. 5- 56821804.3 7- 4447061878 7- 1635562438 7- 20930665612 1- 400397914 92205565. 5507801906. 82213786259 61967270767 028405218376 4514348408 92205565. 5- 155954448 9- 1227143131 6- 278128323287807905075361426273 1
[0020] A gradient of change in value of the plurality of time series data associated with the one or more sensors over time is computed based on the first order derivative. In an embodiment, the gradient of change in the value is computed based on one or more parameters of the one or more sensors associated with the computing device (e.g., the computer system). The one or more parameters comprise, but are not limited to, time, and the like. For instance, a sensor associated with information on (or time series data associated with) memory consumption is considered, wherein parameters could be memory read / write instructions, number of read / write instructions at various time instances, time taken to execute read / write instructions, and the like. In such scenarios, the gradient of change in value of the plurality of time series data associated with the one or more sensors over time is computed based on a difference in time taken to execute read / write instructions, in one embodiment of the present disclosure. For example, the gradient of change in value of the plurality of time series data associated with the one or more sensors over time is computed between a first time instance (e.g., say at 4.10 PM - time taken to execute read / write instructions is 'x' seconds or milliseconds) and a second time instance (e.g., say at 4.15 PM - time taken to execute read / write instructions is 'y' seconds or milliseconds), wherein value of 'x' is one of greater than, equal to, or less than value of 'y'. The gradient of change in value of the plurality of time series data associated with the one or more sensors over time is computed based on a change observed in memory consumption for read / write instructions, in another embodiment of the present disclosure. In case of other devices such as water pump, the gradient of change in the value is computed based on difference of diameter of the water pump and difference of time). In case of other IoT devices, such as an aerial vehicle (e.g., aircraft, drone, unmanned aerial, vehicles, and the like) the parameters of such vehicles include, altitude, GPS locations. Further example of devices includes land vehicles (e.g., a car). In such examples, parameters of the devices include, throttle position, torque, engine RPM. The gradient of change in the value is computed based on difference in throttle positions for each sensor and / or time instance.
[0021] Further, an angle of change in direction is derived based on the gradient of change in value of the plurality of sensors over time, and the derived angle is converted to a measurement unit. The above step is better understood by way of following description. If the first order difference is x and the time series data is sampled at every one unit of time, then the gradient also becomes x. As discussed above, now the theta is obtained as: theta = arc tan (x). Below Table 5 illustrates example of conversion of the derived angle to a measurement unit (e.g., theta): Table 51st order Diff (or derivative for S1Measurement unit (theta) for S11st order Diff (or derivative for S2Measurement unit (theta) for S243911893.6589.9999363596003980.589.9999967316102304.2589.999823629823313589.999972373476675189.9999191345936634.6389.99993917-88006478.13-89.99996898-621891711.4-89.9999969386049596.3189.99996824879231568.989.99999828-43623983.19-89.99993587-586433753.6-89.99999665-14247683.44-89.99980046-27410131.37-89.99989702-28013279.37-89.99989927-149301471.1-89.9999823544956426.8189.99993781367164528.389.99999373-47846569.5-89.99994166-330729474.2-89.9999928722510362.6989.999874276628894.18789.9995693730942203.1989.99990895237965731.189.99998953418518.06389.99916351516496063.389.9999959961181285.9489.99995471426656527.289.9999948222020361.5689.9998714430077636489.99999201-1001604793-89.99999868-7208209871-90.00000114
[0022] For the sake of brevity, theta or the measurement unit is not depicted for other sensors (S3 through S7). However, such depiction shall not be construed as limiting the scope of the present disclosure. Further, the one or more hardware processors 104 quantize the plurality of time series data into a plurality of bins based on the measurement unit to obtain a plurality of alphanumeric strings. Each bin from the plurality of bin is referred as an alphanumeric string. Each of the plurality of alphanumeric strings is tagged to or associated with a corresponding time series data (also referred as 'sensor property' or 'sensor observation' of the plurality of time series data obtained from corresponding sensors. Below Table 6 illustrates example of the plurality of bins obtained by quantizing the plurality of time series data based on the measurement unit (theta). Each of the plurality of bins corresponds to a quantized value. The expression 'plurality of bins' may be referred as 'the plurality of alphanumeric codes', or 'code' and interchangeably used herein. Table 6Cod e of S1Cod e of S2Cod e of S3Cod e of S4Cod e of S5Cod e of S6Cod e of S7Cod e of S8Cod e of S9Cod e of S10Cod e of S11Cod e of S12Cod e of SnjjjJJjjefjjAjjjjJJjjfejaajjjaAaaaefaajjaajJjjjffjaaajjaAaaaeeiJJjaaaAaaaffaaaaaajJjjjfejjjjaaaAaaaefjaaajjaAaaaffajjjaajJjjjefjcjjjjaAaaaffhijajjjJjjjfejcajjjjJjjjefjjajjjaAaaaffhgjjjjjJjjjeeaajaaaaAaaaeeaaaa
[0023] The step of assigning the alphanumeric code to each sensor observation property from the plurality of sensors comprising the steps of (i) obtaining a plurality of time series data from the plurality of sensors; (ii) computing a first order derivative over time using the obtained plurality of time series data; (iii) computing a gradient of change in value of the plurality of sensors over time based on the first order derivative; (iv) deriving an angle of change in direction based on the gradient of change in value of the plurality of sensors over time, and converting the derived angle to a measurement unit; and (v) quantizing each time series data of the plurality of time series data into a plurality of bins based on the measurement unit to obtain a plurality of alphanumeric strings can be further referred from Applicant's patent specification titled 'SYSTEMS AND METHODS FOR DETERMINING OCCURRENCE OF PATTERN OF INTEREST IN TIME SERIES DATA' with application number 202121001728, filed on January 13, 2021 with India Patent Office.
[0024] At step 204 of the present disclosure, the one or more hardware processors 104 perform a dynamic programming technique across the plurality of alphanumeric strings to identify a set of sensors having similar time series pattern. For instance, the plurality of alphanumeric strings of each sensor is compared with the plurality of alphanumeric strings obtained for other sensors. The comparison results in obtaining longest common subsequence (LCS) length between any 2 sensors across the sensors. The LCS length depicts the number of strings overlapping between the 2 sensors under consideration during comparison. Below table 7 depicts comparison of sensors for determining the set of sensors having similar time series pattern. Table 7SensorCompared withLCS lengthSensor S1Sensor S216Sensor S1Sensor S313Sensor S1Sensor S413Sensor S1Sensor S513Sensor S1....Sensor S1Sensor Sn14Sensor S2Sensor S313.........Sensor S2Sensor Sn14.........Sensor SnSensor Sn-1 (or sensor Sm)12
[0025] At step 206 of the present disclosure, the one or more hardware processors 104 construct a sparse matrix based on the set of sensors having similar time series pattern. In an embodiment, sparse matrix refers to a matrix that comprises values of LCS length. Below Table 8 illustrates an example of the sparse matrix: Table 8S1S2S3S4S5S6S7S8S9S10S11S12SnS101600000000000S20000000000000S300016161616000000S40000161616000000S5000001616000000S600000016000000S70000000000000S80000000000000S90000000000000S100000000000000S110000000000000S120000000000000Sn0000000000000
[0026] At step 208 of the present disclosure, the one or more hardware processors 104 compute a similarity score for the set of sensors using an edit distance technique. At step 210 of the present disclosure, the one or more hardware processors 104 update the sparse matrix with the similarity score for each pair of sensors in the set of sensors corresponding to the sparse matrix. Below Table 9 illustrates an example of the updated sparse matrix with similarity score for each pair of the sensors in the set of sensors having similar time series pattern: Table 9S1S2S3S4S5S6S7S8S9S10S11S12SnS100.9500000000000S20000000000000S30000.950.950.950.95000000S400000.950.950.95000000S5000000.950.95000000S60000000.95000000S70000000000000S80000000000000S90000000000000S100000000000000S110000000000000S120000000000000Sn0000000000000
[0027] The steps 206 till 210 are better understood by way of the following description. A Dynamic programming-based approach (e.g., an optimum parenthesis) is performed across the plurality of alphanumeric strings to obtain the LCS between the strings of two different time series within a given span of time. Let the total time span under consideration be 'm' and the LCS of two time series data (TS) is 'p', then the matching / similarity score is defined as p* 100 / m. Two TS to be similar in nature if their similarity score is greater than a predefined threshold (τ) defined by the user. In one scenario of the present disclosure, τ=95% as described above in the updated sparse matrix. A highly sparse kxk matrix is obtained where k is the number of sensors. In one typical realization, a Levenshtein distance was used by embodiment of the present disclosure to compute the distance between two TS and determine the LCS length.
[0028] At step 212 of the present disclosure, the one or more hardware processors 104 cluster the plurality of sensors into one or more clusters based on a comparison of (i) the similarity score of each pair of sensors with (ii) a threshold. In an embodiment, the step of clustering comprises identifying two or more sensors from the plurality of sensors based on a dependency factor and clustering the two or more sensors into a specific cluster. Dependency factor for example, includes, which sensor is dependent on (or associated with) another sensor. Based on the above updated sparse matrix, it was observed that sensor S1 is having time series pattern similar to that of sensor S2. Therefore, sensors S1 and S2 were clustered into one group or cluster. However, it may be observed that sensor S3 had a time series data similar to that of the sensor S4. It was further observed that S4 had a dependency over sensor S5 and S5 had dependency over S6 and S6 over S7. Therefore, S3 is indirectly dependent on S7. Thus, sensors S3 through S7 may be clustered into one cluster (or group). In an embodiment, the threshold is a pre-defined threshold or an empirically determined threshold. For instance, threshold say, x% (e.g., 95%) of maximum possible rows present in a dataset (e.g., time series data). In other words, value of 'x' is configurable. Identification of the sensors for clustering is performed using a search technique, in one embodiment of the present disclosure. The search technique, in one example is a depth first search (DFS) technique. FIGS. 3 and 4, depict graphical representations illustrating clustering of sensors and corresponding time series data into specific clusters, in accordance with an embodiment of the present disclosure. More specifically, FIG. 3, with reference to FIGS. 1 through 2, depicts a graphical representation illustrating clustering of a first sensor S1 and a second sensor S2 and corresponding time series data into specific cluster, in accordance with an embodiment of the present disclosure. FIG. 4, with reference to FIGS. 1 through 3, depicts a graphical representation illustrating clustering of a third sensor S3, a fourth sensor S4, a fifth sensor S5, a sixth sensor S6, a seventh sensor S7 and corresponding time series data into another specific cluster, in accordance with an embodiment of the present disclosure. The step 212 and the graphical representations may be better understood by way of following description.
[0029] All the pairs of sensors that have a similarity score greater than equal to the pre-defined value of τ (or threshold as mentioned herein) are listed. A tuple of 3 entities, namely sensor pair identifiers (IDs) and the similarity score has been defined for each non-zero entry of the sparse matrix defined in the above steps. A tuple (Si, Sj) is defined to be connected if and only if (Si, Sj) > τ. A new label (λ) is assigned to each connected pair of sensors. The depth first search technique is applied to all the sensors to identify one or more sensors connected with sensor Si with the similar label λ. If (Si, Sj) and (Sj , Sk) are pair wise connected, then (Si , Sk) is defined to be connected and the same label is assigned to all of these sensors Si , Sj, and Sk, respectively, thus achieving clusters of sensors which have a similar pattern. It is to be understood by a person having ordinary skill in the art or person skilled in the art that example of a device (e.g., computer system) and its sensors (e.g., say sensor S1 through S7) as described herein shall not be construed as limiting the scope of the present disclosure, and the system and method of the present disclosure can be implemented in computing device that is capable of obtaining various sensor data or time series data of the sensors associated with the computing device.
[0030] Embodiment of the present disclosure provide system and method for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof, wherein the similarity among cluster of sensors is determined based on their patterns and not based on their values as human vision is more sensible to pattern than the values while comparing two graphs (e.g., refer graphical representations depicted in FIGS. 3 and 4). More specifically, present disclosure provides system and method for clustering the similar behaving sensors based on their pattern over time.
[0031] It is to be understood that the scope of the protection is extended to such a program and in addition to a computer-readable means having a message therein; such computer-readable storage means contain program-code means for implementation of one or more steps of the method, when the program runs on a server or mobile device or any suitable programmable device. The hardware device can be any kind of device which can be programmed including e.g. any kind of computer like a server or a personal computer, or the like, or any combination thereof. The device may also include means which could be e.g. hardware means like e.g. an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination of hardware and software means, e.g. an ASIC and an FPGA, or at least one microprocessor and at least one memory with software processing components located therein. Thus, the means can include both hardware means and software means. The method embodiments described herein could be implemented in hardware and software. The device may also include software means. Alternatively, the embodiments may be implemented on different hardware devices, e.g. using a plurality of CPUs.
[0032] The embodiments herein can comprise hardware and software elements. The embodiments that are implemented in software include but are not limited to, firmware, resident software, microcode, etc. The functions performed by various components described herein may be implemented in other components or combinations of other components. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can comprise, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
[0033] The illustrated steps are set out to explain the exemplary embodiments shown, and it should be anticipated that ongoing technological development will change the manner in which particular functions are performed. These examples are presented herein for purposes of illustration, and not limitation. Further, the boundaries of the functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternative boundaries can be defined so long as the specified functions and relationships thereof are appropriately performed. Alternatives (including equivalents, extensions, variations, deviations, etc., of those described herein) will be apparent to persons skilled in the relevant art(s) based on the teachings contained herein. Such alternatives fall within the scope of the disclosed embodiments. Also, the words "comprising," "having," "containing," and "including," and other similar forms are intended to be equivalent in meaning and be open ended in that an item or items following any one of these words is not meant to be an exhaustive listing of such item or items, or meant to be limited to only the listed item or items. It must also be noted that as used herein and in the appended claims, the singular forms "a," "an," and "the" include plural references unless the context clearly dictates otherwise.
[0034] Furthermore, one or more computer-readable storage media may be utilized in implementing embodiments consistent with the present disclosure. A computer-readable storage medium refers to any type of physical memory on which information or data readable by a processor may be stored. Thus, a computer-readable storage medium may store instructions for execution by one or more processors, including instructions for causing the processor(s) to perform steps or stages consistent with the embodiments described herein. The term "computer-readable medium" should be understood to include tangible items and exclude carrier waves and transient signals, i.e., be non-transitory. Examples include random access memory (RAM), read-only memory (ROM), volatile memory, nonvolatile memory, hard drives, CD ROMs, DVDs, flash drives, disks, and any other known physical storage media.
Claims
1. A processor implemented method, comprising: assigning, via one or more hardware processors (104), an alphanumeric code to each observation property of each sensor from a plurality of sensors, based on a plurality of quantized values to obtain a plurality of alphanumeric strings, wherein each of the plurality of sensors being associated with a corresponding time series data of memory consumption in the at least one computing device, wherein the at least one computing device is an Internet of Things (IoT) sensing device, wherein the IoT sensing device is one of a computer system, mobile communication device, router, television, water pump, aerial vehicle, and land vehicle, wherein assigning the alphanumeric code to the observation property of each sensor from the plurality of sensors comprises computing a gradient of change in value of the plurality of sensors based on a change observed in parameters, wherein the parameters for the computing system include memory consumption for read / write instructions, number of the read / write instructions at multiple time instances, and a time taken to execute the read / write instructions, wherein the parameters for the aerial vehicle include altitude, GPS locations, and wherein the parameters of the land vehicle include throttle position, torque and engine RPM (202); performing, a dynamic programming technique executed by the one or more hardware processors (104), across the plurality of alphanumeric strings to identify a set of sensors from the plurality of sensors having similar time series pattern (204), wherein the plurality of alphanumeric strings of each sensor is compared with the plurality of alphanumeric strings obtained for other sensors from the plurality of sensors, wherein the comparison results in obtaining longest common subsequence (LCS) length between two sensors from the plurality of sensors and wherein the LCS length depicts the number of strings overlapping between the two sensors during comparison; constructing, via the one or more hardware processors (104), a sparse matrix based on the set of sensors having similar time series pattern (206), wherein the sparse matrix refers to a matrix that comprises values of LCS length; computing, via the one or more hardware processors, a similarity score for the set of sensors using an edit distance technique (208); updating, via the one or more hardware processors (104), the sparse matrix with the similarity score for each pair of sensors from the set of sensors corresponding to the sparse matrix (210); and clustering, via the one or more hardware processors (104), the set of sensors into one or more clusters based on a comparison of (i) the similarity score of each pair of sensors with (ii) a threshold , wherein the pairs of sensors having the similarity score greater than equal to the threshold are listed, wherein a tuple (Si, Sj) of three entities, namely sensor pair identifiers (IDs) for sensors Si and Sj, and the similarity score are defined for each non-zero entry of the sparse matrix, wherein the tuple (Si, Sj) are defined to be a connected pair of sensors when the similarity score greater than the threshold, and a label (λ) is assigned to each of the connected pair of sensors, wherein a depth first search technique is applied to the plurality of sensors to identify two or more sensors of the plurality of sensors that are connected to the sensor Si with the label (λ), wherein if (Si, Sj) and (Sj, Sk) are the connected pair of sensors, then (Si, Sk) is defined to be connected and the label (λ) is assigned to all of the sensors Si, Sj, and Sk, respectively, to obtain the one or more clusters of the plurality of sensors; and determining, via the one or more hardware processors (104), the plurality of sensors having the similar time series pattern based on the one or more clusters (212).
2. The processor implemented method of claim 1, wherein the threshold is a pre-defined threshold or an empirically determined threshold.
3. The processor implemented method of claim 1, wherein the step of assigning an alphanumeric code to the observation property of each sensor from the plurality of sensors comprises: obtaining a plurality of time series data from the plurality of sensors; computing a first order derivative over time using the obtained plurality of time series data; computing a gradient of change in value of the plurality of sensors over time based on the first order derivative; deriving an angle of change in direction based on the gradient of change in value of the plurality of sensors over time, and converting the derived angle to a measurement unit; and quantizing each time series data of the plurality of time series data into a plurality of bins based on the measurement unit to obtain the plurality of alphanumeric strings, each of the plurality of bins corresponds to a quantized value.
4. A system (100), comprising: a memory (102) storing instructions; one or more communication interfaces (106); and one or more hardware processors (104) coupled to the memory (102) via the one or more communication interfaces (106), wherein the one or more hardware processors (104) are configured by the instructions to: assign an alphanumeric code to each observation property of each sensor from a plurality of sensors, based on a plurality of quantized values to obtain a plurality of alphanumeric strings, wherein each of the plurality of sensors being associated with a corresponding time series data of memory consumption in the at least one computing device, wherein the at least one computing device is an Internet of Things (IoT) sensing device, wherein the IoT sensing device is one of a computer system, mobile communication device, router, television, water pump, aerial vehicle, and land vehicle, wherein the alphanumeric code is assigned to the observation property of each sensor from the plurality of sensors by computing a gradient of change in value of the plurality of sensors based on a change observed in parameters, wherein the parameters for the computing system include the memory consumption for read / write instructions, number of the read / write instructions at multiple time instances, and a time taken to execute the read / write instructions, wherein the parameters for the aerial vehicle include altitude, GPS locations, and wherein the parameters of the land vehicle include throttle position, torque and engine RPM; perform a dynamic programming technique across the plurality of alphanumeric strings to identify a set of sensors from the plurality of sensors having similar time series pattern, wherein the plurality of alphanumeric strings of each sensor is compared with the plurality of alphanumeric strings obtained for other sensors from the plurality of sensors, wherein the comparison results in obtaining longest common subsequence (LCS) length between two sensors from the plurality of sensors and wherein the LCS length depicts the number of strings overlapping between the two sensors during comparison; construct a sparse matrix based on the set of sensors having similar time series pattern, wherein the sparse matrix refers to a matrix that comprises values of LCS length; compute a similarity score for the set of sensors using an edit distance technique; update the sparse matrix with the similarity score for each pair of sensors from the set of sensors corresponding to the sparse matrix; and cluster the set of sensors into one or more clusters based on a comparison of (i) the similarity score of each pair of sensors with (ii) a threshold, wherein the pairs of sensors having the similarity score greater than equal to the threshold are listed, wherein a tuple (Si, Sj) of three entities, namely sensor pair identifiers (IDs) for sensors Si and Sj, and the similarity score are defined for each non-zero entry of the sparse matrix, wherein the tuple (Si, Sj) are defined to be a connected pair of sensors when the similarity score greater than the threshold, and a label (λ) is assigned to each of the connected pair of sensors, wherein a depth first search technique is applied to the plurality of sensors to identify two or more sensors of the plurality of sensors that are connected to the sensor Si with the label (λ), wherein if (Si, Sj) and (Sj, Sk) are the connected pair of sensors, then (Si, Sk) is defined to be connected and the label (λ) is assigned to all of the sensors Si, Sj, and Sk, respectively, to obtain the one or more clusters of the plurality of sensors; and determine the plurality of sensors having the similar time series pattern based on the one or more clusters.
5. The system of claim 4, wherein the threshold is a pre-defined threshold or an empirically determined threshold.
6. The system of claim 4, wherein the alphanumeric code is assigned to the observation property of each sensor from the plurality of sensors comprises by: obtaining the plurality of time series data from the plurality of sensors; computing a first order derivative over time using the obtained plurality of time series data; computing a gradient of change in value of the plurality of sensors over time based on the first order derivative; deriving an angle of change in direction based on the gradient of change in value of the plurality of sensors over time, and converting the derived angle to a measurement unit; and quantizing each time series data of the plurality of time series data into a plurality of bins based on the measurement unit to obtain the plurality of alphanumeric strings, each of the plurality of bins corresponds to a quantized value.
7. One or more non-transitory machine readable information storage mediums comprising one or more instructions which when executed by one or more hardware processors (104) causes a method for determining similar behavioral pattern between time series data obtained from multiple sensors and clustering thereof by: assigning, via one or more hardware processors (104), an alphanumeric code to each observation property of each sensor from a plurality of sensors, based on a plurality of quantized values to obtain a plurality of alphanumeric strings, wherein each of the plurality of sensors being associated with a corresponding time series data of memory consumption in the at least one computing device, wherein the at least one computing device is an Internet of Things (IoT) sensing device, wherein the IoT sensing device is one of a computer system, mobile communication device, router, television, water pump, aerial vehicle, and land vehicle, wherein the alphanumeric code is assigned to the observation property of each sensor from the plurality of sensors by computing a gradient of change in value of the plurality of sensors based on a change observed in parameters, wherein the parameters for the computing system include the memory consumption for read / write instructions, number of the read / write instructions at multiple time instances, and a time taken to execute the read / write instructions, wherein the parameters for the aerial vehicle include altitude, GPS locations, and wherein the parameters of the land vehicle include throttle position, torque and engine RPM (202); performing, a dynamic programming technique executed by the one or more hardware processors (104), across the plurality of alphanumeric strings to identify a set of sensors from the plurality of sensors having similar time series pattern (204), wherein the plurality of alphanumeric strings of each sensor is compared with the plurality of alphanumeric strings obtained for other sensors from the plurality of sensors, wherein the comparison results in obtaining longest common subsequence (LCS) length between two sensors from the plurality of sensors and wherein the LCS length depicts the number of strings overlapping between the two sensors during comparison; constructing, via the one or more hardware processors (104), a sparse matrix based on the set of sensors having similar time series pattern (206), wherein the sparse matrix refers to a matrix that comprises values of LCS length; computing, via the one or more hardware processors, a similarity score for the set of sensors using an edit distance technique (208); updating, via the one or more hardware processors (104), the sparse matrix with the similarity score for each pair of sensors from the set of sensors corresponding to the sparse matrix (210); and clustering, via the one or more hardware processors (104), the set of sensors into one or more clusters based on a comparison of (i) the similarity score of each pair of sensors with (ii) a threshold wherein the pairs of sensors having the similarity score greater than equal to the threshold are listed, wherein a tuple (Si, Sj) of three entities, namely sensor pair identifiers (IDs) for sensors Si and Sj, and the similarity score are defined for each non-zero entry of the sparse matrix, wherein the tuple (Si, Sj) are defined to be a connected pair of sensors when the similarity score greater than the threshold, and a label (λ) is assigned to each of the connected pair of sensors, wherein a depth first search technique is applied to the plurality of sensors to identify two or more sensors of the plurality of sensors that are connected to the sensor Si with the label (λ), wherein if (Si, Sj) and (Sj, Sk) are the connected pair of sensors, then (Si, Sk) is defined to be connected and the label (λ) is assigned to all of the sensors Si, Sj, and Sk, respectively, to obtain the one or more clusters of the plurality of sensors (212); and determine the plurality of sensors having the similar time series pattern based on the one or more clusters.
8. The one or more non-transitory machine readable information storage mediums of claim 7, wherein the threshold is a pre-defined threshold or an empirically determined threshold.
9. The one or more non-transitory machine readable information storage mediums of claim 7, wherein the step of assigning an alphanumeric code to each observation property of each sensor from the plurality of sensors comprises: obtaining a plurality of time series data from the plurality of sensors; computing a first order derivative over time using the obtained plurality of time series data; computing a gradient of change in value of the plurality of sensors over time based on the first order derivative; deriving an angle of change in direction based on the gradient of change in value of the plurality of sensors over time, and converting the derived angle to a measurement unit; and quantizing each time series data of the plurality of time series data into a plurality of bins based on the measurement unit to obtain the plurality of alphanumeric strings, each of the plurality of bins corresponds to a quantized value.