Computer implemented scalable, incremental and parallel clustering based on weighted divide and conquer
First Claim
1. A method for clustering a set S of n data points to find k final centers, comprising:
- partitioning said set S into P disjoint pieces S1, . . . ,SP;
for each said piece Si, determining a set Di of k intermediate centers;
assigning each data point in each piece Si to the nearest one of said k intermediate centers;
weighting each of said k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center; and
clustering said weighted intermediate centers together to find said k final centers, said clustering performed using a specific error metric and a clustering method A; and
wherein if P is not sufficiently large enough such that each piece Si obeys the constraint |Si|<
M, where M is the size of a physical memory or a portion thereof to be used in processing said each piece, then iteratively performing partitioning, determining, assigning, and weighting until the sets D′
of weighted intermediate centers generated thereby obeys the constraint |D′
|<
M.
9 Assignments
0 Petitions
Accused Products
Abstract
A technique that uses a weighted divide and conquer approach for clustering a set S of n data points to find k final centers. The technique comprises 1) partitioning the set S into P disjoint pieces S1, . . . , SP; 2) for each piece Si, determining a set Di of k intermediate centers; 3) assigning each data point in each piece Si to the nearest one of the k intermediate centers; 4) weighting each of the k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center; and 5) clustering the weighted intermediate centers together to find said k final centers, the clustering performed using a specific error metric and a clustering method A.
27 Citations
22 Claims
-
1. A method for clustering a set S of n data points to find k final centers, comprising:
-
partitioning said set S into P disjoint pieces S1, . . . ,SP;
for each said piece Si, determining a set Di of k intermediate centers;
assigning each data point in each piece Si to the nearest one of said k intermediate centers;
weighting each of said k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center; and
clustering said weighted intermediate centers together to find said k final centers, said clustering performed using a specific error metric and a clustering method A; and
wherein if P is not sufficiently large enough such that each piece Si obeys the constraint |Si|<
M, where M is the size of a physical memory or a portion thereof to be used in processing said each piece, then iteratively performing partitioning, determining, assigning, and weighting until the sets D′
of weighted intermediate centers generated thereby obeys the constraint |D′
|<
M.- View Dependent Claims (2, 3, 4, 5, 6, 7)
merging said weighted centers into a single dataset D′
prior to clustering.
-
-
3. The method according to claim 1 wherein P is sufficiently large enough such that each piece Si obeys the constraint |Si|<
- M, where M is the size of a physical memory or a portion thereof to be used in processing said each piece.
-
4. The method according to claim 1 wherein said clustering is performed upon iteratively obtained weighted intermediate clusters.
-
5. The method according to claim 1 wherein said set S is replaced by weighted intermediate centers of the previous iteration when iteratively performing said partitioning, determining, assigning, and weighting.
-
6. The method according to claim 1 wherein said determining is performed using said specific error metric and said clustering method A.
-
7. The method according to claim 1 wherein said specific error metric is the minimizing of the sum of the squares of the distances between points and their nearest centers.
-
8. A method for clustering a set S of n data points to find k final centers, comprising:
-
partitioning said set S into P disjoint pieces S1, . . . ,SP;
for each said piece Si, determining a set Di of k intermediate centers;
assigning each data point in each piece Si to the nearest one of said k intermediate centers;
weighting each of said k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center;
merging said weighted centers into a single dataset D′
; and
clustering said weighted intermediate centers together to find said k final centers, said clustering performed using a specific error metric and a clustering method A. - View Dependent Claims (9, 10, 11, 12, 13, 14, 15, 16, 17)
considering a second set of data points for obtaining a second k final centers after said set S is clustered;
repeating partitioning, determining, assigning and weighting for said second set of data points; and
clustering weighted intermediate centers obtained from said second set of data points together with said weighted intermediate centers obtained from said data set S, said clustering performed using said specific error metric and said clustering method A.
-
-
17. The method according to claim 8 wherein said partitioning, determining, assigning and weighting is performed in parallel for each piece Si.
-
18. An article comprising a computer readable medium having instructions stored thereon which when executed causes clustering a set S of n data points to find k final centers, said clustering implemented by:
-
partitioning said set S into P disjoint pieces S1, . . . ,SP;
for each said piece Si, determining a set Di of k intermediate centers;
assigning each data point in each piece Si to the nearest one of said k intermediate centers;
weighting each of said k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center;
merging said weighted centers into a single dataset D′
; and
clustering said weighted intermediate centers together to find said k final centers, said clustering performed using a specific error metric and a clustering method A. - View Dependent Claims (19, 20)
-
-
21. An apparatus for clustering a set S of n data points to find k final centers, said apparatus comprising:
-
a main memory;
at least one processor coupled to said memory, wherein at least one processor is configured to partition said set S into P disjoint pieces S1, . . . ,SP such that each piece Si fits in main memory, said each piece Si first stored separately in said main memory and then clustered by said processor performing;
for each said piece Si, determining a set Di of k intermediate centers;
assigning each data point in each piece Si to the nearest one of said k intermediate centers;
weighting each of said k intermediate centers in each set Di by the number of points in the corresponding piece Si assigned to that center;
merging said weighted centers into a single dataset D′
; and
clustering said weighted intermediate centers together to find said k final centers, said clustering performed using a specific error metric and a clustering method A. - View Dependent Claims (22)
-
Specification