IP Library Granted Patent US 9,465,857
Granted Patent B1
US 9,465,857 · App. 14/038,661 · Granted Oct 11, 2016

Dynamic clustering for streaming data

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,465,857
App. No.
14/038,661
Granted
Oct 11, 2016
Kind
B1
Abstract

In general, embodiments of the present invention provide systems, methods and computer readable media for modeling multi-dimensional, dynamically evolving data using dynamic clustering. In one aspect, a method includes receiving a core group of clusters of objects, each object being represented by a corresponding instance of a multi-dimensional feature vector including a dimension k; receiving a stream of data points representing a group of objects, each data point respectively representing an instance of dimension k describing a feature of an object within the group of objects; and, for each data point, adding an object described by the data point to a first cluster of objects within the core group of clusters; updating properties of the first cluster of objects in response to adding the object; and determining whether to update the core group of clusters using the updated properties of the first cluster of objects.

Claims (61)

1. A computer-implemented method, comprising:

receiving a core group of clusters of objects, wherein each object is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters is clustered based on the dimension k; and wherein generating the core group of clusters is based in part on at least one tuning parameter representing clustering density;

receiving a stream of data points representing a group of objects, each data point respectively representing an instance of the dimension k describing a feature of an object within the group of objects; and

for said each data point,

adding an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating properties of the first cluster of objects in response to adding the object, wherein updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects; and

determining, by a processor, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein determining whether to update the core group of clusters comprises

comparing the first standard deviation of the clustering dimension k to a minimum standard deviation of the clustering dimension k;

in an instance in which the first standard deviation of the clustering dimension k is greater than the minimum standard deviation of the clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects;

in an instance in which the first standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects;

calculating a combined standard deviation of the clustering dimension k for combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

2. The method of claim 1 , further comprising:

in response to receiving a request for core cluster information, updating the core group of clusters based on the tuning parameter representing clustering density.

3. The method of claim 1 , wherein the tuning parameter is a minimum number of data points to form a core cluster.

4. The method of claim 1 , wherein the tuning parameter is a minimum number of neighborhood points for merging into core clusters.

5. The method of claim 1 , wherein calculating the first standard deviation of clustering dimension k includes using a cluster purity measure.

6. The method of claim 1 , wherein the stream of data points is collected during a particular time window.

7. The method of claim 1 , wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

8. A system, comprising:

one or more computers, each computer includes a processor and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising:

receiving a core group of clusters of objects, wherein each object is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters is clustered based on the dimension k; and wherein generating the core group of clusters is based in part on at least one tuning parameter representing clustering density;

receiving a stream of data points representing a group of objects, each data point respectively representing an instance of the dimension k describing a feature of an object within the group of objects; and

for said each data point,

adding an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating properties of the first cluster of objects in response to adding the object, wherein updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects; and

determining, by a processor, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein determining whether to update the core group of clusters comprises

comparing the first standard deviation of the clustering dimension k to a minimum standard deviation of the clustering dimension k;

in an instance in which the first standard deviation of the clustering dimension k is greater than the minimum standard deviation of the clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects;

in an instance in which the first standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects;

calculating a combined standard deviation of the clustering dimension k for combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

9. The system of claim 8 , further comprising:

in response to receiving a request for core cluster information, updating the core group of clusters based on the tuning parameter representing clustering density.

10. The system of claim 8 , wherein the tuning parameter is a minimum number of data points to form a core cluster.

11. The system of claim 8 , wherein the tuning parameter is a minimum number of neighborhood points for merging into core clusters.

12. The system of claim 8 , wherein calculating the first standard deviation of clustering dimension k includes using a cluster purity measure.

13. The system of claim 8 , wherein the stream of data points is collected during a particular time window.

14. The system of claim 8 , wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

15. A computer program product, stored on a non-transitory computer readable medium, comprising instructions that when executed on one or more computers cause the one or more computers to perform operations comprising:

receiving a core group of clusters of objects, wherein each object is represented by a corresponding instance of a multi-dimensional feature vector including a dimension k, wherein k is a number, wherein the core group of clusters is clustered based on the dimension k; and wherein generating the core group of clusters is based in part on at least one tuning parameter representing clustering density;

receiving a stream of data points representing a group of objects, each data point respectively representing an instance of the dimension k describing a feature of an object within the group of objects; and

for said each data point,

adding an object described by the data point to a first cluster of objects within the core group of clusters in response to classifying the object as belonging to the first cluster of objects;

updating properties of the first cluster of objects in response to adding the object, wherein updating the properties includes calculating a first standard deviation of clustering dimension k for the first cluster of objects; and

determining, by a processor, whether to update the core group of clusters using the updated properties of the first cluster of objects, wherein determining whether to update the core group of clusters comprises

comparing the first standard deviation of the clustering dimension k to a minimum standard deviation of the clustering dimension k;

in an instance in which the first standard deviation of the clustering dimension k is greater than the minimum standard deviation of the clustering dimension k, splitting the first cluster of objects by dividing the first cluster of objects into a second cluster of objects and a third cluster of objects;

in an instance in which the first standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k,

selecting a fourth cluster of objects that is closest to the first cluster of objects within the core group of clusters of objects;

calculating a combined standard deviation of the clustering dimension k for combined first cluster of objects and fourth cluster of objects; and

in an instance in which the combined standard deviation of the clustering dimension k is less than or equal to the minimum standard deviation of the clustering dimension k, generating a fifth cluster of objects within the core group of clusters by merging the first cluster of objects and the fourth cluster of objects.

16. The computer program product of claim 15 , further comprising:

in response to receiving a request for core cluster information, updating the core group of clusters based on the tuning parameter representing clustering density.

17. The computer program product of claim 15 , wherein the tuning parameter is a minimum number of data points to form a core cluster.

18. The computer program product of claim 15 , wherein the tuning parameter is a minimum number of neighborhood points for merging into core clusters.

19. The computer program product of claim 15 , wherein calculating the first standard deviation of clustering dimension k includes using a cluster purity measure.

20. The computer program product of claim 15 , wherein the stream of data points is collected during a particular time window.

21. The computer program product of claim 15 , wherein the core group of clusters of objects represents a group of objects belonging to a taxonomy hierarchy.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2024
From: GROUPON, INC.
To: BYTEDANCE INC.
Reel/Frame 068833/0811 →
RELEASE OF SECURITY INTEREST Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0001 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY RIGHTS Recorded Feb 26, 2024
From: JPMORGAN CHASE BANK, N.A.
To: GROUPON, INC.; LIVINGSOCIAL, LLC (F/K/A LIVINGSOCIAL, INC.)
Reel/Frame 066676/0251 →
SECURITY INTEREST Recorded Jul 23, 2020
From: GROUPON, INC.; LIVINGSOCIAL, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 053294/0495 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2014
From: IYER, CHANDER J.
To: GROUPON, INC.
Reel/Frame 032490/0250 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2013
From: DELAND, MATTHEW
To: GROUPON, INC.
Reel/Frame 031445/0157 →