IP Library Granted Patent US 12,625,885
Granted Patent B1
US 12,625,885 · App. 17/867,652 · Granted May 12, 2026

Unsupervised information-based hierarchical clustering of big data

Inventors: Marc Jaffrey (Seattle, WA); Michael Dushkoff (Colden, NY)
Assignee: Pattern Computer, Inc.
G06F16/285G06F16/2246G06F16/2379G06N20/20
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 12,625,885
App. No.
17/867,652
Filed
Jul 18, 2022
Granted
May 12, 2026
Kind
B1
Art Unit
2159
USPC
707/737
Abstract

A hierarchical cluster analyzer identifies clusters in a big data set by identifying topological structure without distance-based metrics. The hierarchical cluster analyzer stochastically partitions the big data set to create pseudo-partitions of the big data set. The stochastic partitioning may be implemented with a random forest classifier that uses ensemble techniques to reduce variance and prevent overfitting. The hierarchical cluster analyzer implements random intersection leaves (RIL), a data mining technique that grows an intersection tree by intersecting candidate sets generated from the pseudo-partitions. The hierarchical cluster analyzer updates an association matrix according to co-occurrences of data points within each leaf node of the intersection tree. These co-occurring data points exhibit a high degree of similarity, which is recorded in the association matrix. A hierarchy of clusters may then be formed by finding community structure in the association matrix.

Claims (43)

1 . A method, comprising:

stochastically partitioning a data set to create a plurality of pseudo-partitions of the data set, the data set comprising a plurality of data points, each of the plurality of pseudo-partitions comprising a plurality of subsets whose union is a subset of the data set;

forming each of a plurality of candidate sets based on one or more subsets selected from the plurality of subsets of each pseudo-partition of two or more pseudo-partitions of the plurality of pseudo-partitions;

creating each of a plurality of intersection sets based on two or more candidate sets selected from the plurality of candidate sets;

identifying, within each of the plurality of intersection sets, one or more co-occurrences of a plurality of co-occurrences of the plurality of data points;

constructing a graph having a plurality of vertices connected by a plurality of edges, each vertex of the plurality of vertices representing a respective one of the plurality of data points, each edge of the plurality of edges connecting two vertices of the plurality of vertices, said each edge representing a number of the co-occurrences for the two data points represented by the two vertices;

identifying a community in the graph, the community comprising member vertices of the plurality of vertices; and

outputting a cluster of the data set, the cluster comprising member data points, of the plurality of data points, that are represented by the member vertices of the community.

2 . The method of claim 1 , wherein said creating the plurality of pseudo-partitions comprises partitioning the data set.

3 . The method of claim 1 , wherein said forming each of the plurality of candidate sets comprises:

selecting the one or more subsets from the plurality of subsets of each pseudo-partition of the two or more pseudo-partitions; and

taking a union of the selected one or more subsets.

4 . The method of claim 3 , wherein said selecting comprises randomly selecting the one or more subsets.

5 . The method of claim 1 , wherein said creating each of the plurality of intersection sets comprises:

selecting the two or more candidate sets from the plurality of candidate sets; and

taking an intersection of the selected two or more candidate sets.

6 . The method of claim 5 , wherein said selecting comprises randomly selecting the two or more candidate sets.

7 . The method of claim 1 , wherein said identifying the one or more co-occurrences comprises generating an association matrix of the plurality of co-occurrences.

8 . The method of claim 7 , wherein said identifying the community comprises clustering the association matrix.

9 . The method of claim 1 , wherein said creating each of the plurality of intersection sets comprises growing an intersection tree with at least some of the plurality of candidate sets such that each of a plurality of leaf nodes of the intersection tree stores an intersection of several of the plurality of candidate sets.

10 . A system, comprising:

storage configured to store a data set comprising a plurality of data points;

a processor; and

a hierarchical clustering engine, implemented as machine-readable instructions stored in a memory in electronic communication with the processor, that, when executed by the processor, control the system to:

stochastically partition a data set to create a plurality of pseudo-partitions of the data set, each of the plurality of pseudo-partitions comprising a plurality of subsets whose union is a subset of the data set,

form each of a plurality of candidate sets based on one or more subsets selected from the plurality of subsets of each pseudo-partition of two or more pseudo-partitions of the plurality of pseudo-partitions,

create each of a plurality of intersection sets based on two or more candidate sets selected from the plurality of candidate sets,

identify, with each of the plurality of intersection sets, one or more co-occurrences of a plurality of co-occurrences of the plurality of data points,

construct a graph having a plurality of vertices connected by a plurality of edges, each vertex of the plurality of vertices representing a respective one of the plurality of data points, each edge of the plurality of edges connecting two vertices of the plurality of vertices, said each edge representing a number of the co-occurrences for the two data points represented by the two vertices,

identify a community in the graph, the community comprising member vertices of the plurality of vertices, and

output a cluster of the data set, the cluster comprising member data points, of the plurality of data points, that are represented by the member vertices of the community.

11 . The system of claim 10 , wherein the machine-readable instructions that, when executed by the processor, control the system to create the plurality of pseudo-partitions comprise machine-readable instructions that, when executed by the processor, control the system to partition the data set.

12 . The system of claim 10 , wherein the machine-readable instructions that, when executed by the processor, control the system to form each of the plurality of candidate sets comprise machine-readable instructions that, when executed by the processor, control the system to:

select the one or more subsets from the plurality of subsets of each pseudo-partition of the two or more pseudo-partitions, and

take a union of the selected one or more subsets.

13 . The system of claim 12 , wherein the machine-readable instructions that, when executed by the processor, control the system to select the one or more subsets comprise machine-readable instructions that, when executed by the processor, control the system to randomly select the one or more subsets.

14 . The system of claim 10 , wherein the machine-readable instructions that, when executed by the processor, control the system to create each of the plurality of intersection sets comprise machine-readable instructions that, when executed by the processor, control the system to:

select the two or more candidate sets from the plurality of candidate sets, and

take an intersection of the selected two or more candidate sets.

15 . The system of claim 14 , wherein the machine-readable instructions that, when executed by the processor, control the system to select the two or more candidate sets comprise machine-readable instructions that, when executed by the processor, control the system to randomly select the two or more candidate sets.

16 . The system of claim 10 , wherein the machine-readable instructions that, when executed by the processor, control the system to identify the one or more co-occurrences comprise machine-readable instructions that, when executed by the processor, control the system to generate an association matrix of the plurality of co-occurrences.

17 . The system of claim 16 , wherein the machine-readable instructions that, when executed by the processor, control the system to identify the community comprise machine-readable instructions that, when executed by the processor, control the system to cluster the association matrix.

18 . The system of claim 10 , wherein the machine-readable instructions that, when executed by the processor, control the system to create each of the plurality of intersection sets comprises machine-readable instructions that, when executed by the processor, control the system to grow an intersection tree with at least some of the plurality of candidate sets such that each of a plurality of leaf nodes of the intersection tree stores an intersection of several of the plurality of candidate sets.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 1, 2026
From: JAFFREY, MARC; DUSHKOFF, MICHAEL
To: PATTERN COMPUTER, INC.
Reel/Frame 074252/0695 →
Continuity (2)
Continuation 16417945 · May 21, 2019
Provisional Application 62674373 · May 21, 2018
References Cited (50)
US 6741983B1 · Birdwell · 2004 [cited by applicant]
US 8015129B2 · Thiesson et al. · 2011 [cited by applicant]
US 8099733B2 · Birdwell et al. · 2012 [cited by applicant]
US 8583649B2 · Ailon et al. · 2013 [cited by applicant]
US 8838510B2 · Baughman et al. · 2014 [cited by applicant]
US 9286044B2 · Boehm et al. · 2016 [cited by applicant]
US 9634906B2 · Varney et al. · 2017 [cited by applicant]
US 9634918B2 · Lipstone et al. · 2017 [cited by applicant]
US 9645999B1 · Ciulla · 2017 [cited by examiner]
US 9892367B2 · Guo et al. · 2018 [cited by applicant]
US 10318584B2 · Kloke et al. · 2019 [cited by applicant]
US 10467234B2 · Nerurkar et al. · 2019 [cited by applicant]
US 10489605B2 · Nerurkar et al. · 2019 [cited by applicant]
US 10586068B2 · Nerurkar et al. · 2020 [cited by applicant]
US 10747740B2 · Majumdar et al. · 2020 [cited by applicant]
US 10891315B2 · Sexton et al. · 2021 [cited by applicant]
US 11055432B2 · Hockenbrocht et al. · 2021 [cited by applicant]
US 11080333B2 · Sexton et al. · 2021 [cited by applicant]
US 11182098B2 · Stevens et al. · 2021 [cited by applicant]
US 20030224344A1 · Shamir et al. · 2003 [cited by applicant]
US 20100005051A1 · Agrawal et al. · 2010 [cited by applicant]
US 20130097103A1 · Chari et al. · 2013 [cited by applicant]
US 20160042253A1 · Sawhney · 2016 [cited by applicant]
US 20160267171A1 · Wang · 2016 [cited by examiner]
US 20160283533A1 · Urmanov et al. · 2016 [cited by applicant]
US 20160364468A1 · Huang et al. · 2016 [cited by applicant]
US 20170161271A1 · Barel · 2017 [cited by examiner]
US 20170323206A1 · Alipour Khayer et al. · 2017 [cited by applicant]
US 20180018590A1 · Szeto et al. · 2018 [cited by applicant]
US 20180048653A1 · Nerurkar et al. · 2018 [cited by applicant]
US 20180131516A1 · Meng · 2018 [cited by applicant]
US 20190026489A1 · Nerurkar et al. · 2019 [cited by applicant]
US 20200042539A1 · Singh et al. · 2020 [cited by applicant]
US 20200125568A1 · Idicula et al. · 2020 [cited by applicant]
US 20210279265A1 · Stevens et al. · 2021 [cited by applicant]
Assent (2012) “Clustering high dimensional data,” WIREs Data Mining Knowl Discov 2012, 2, pp. 340-350. [cited by applicant]
Anaissi et al. (2013) “A balanced iterative random forest for gene selection from microarray data,” BMC Bioinformatics, 14, 10 pp. [cited by applicant]
Loh (2011) “Classification and regression trees,” WIREs Data Mining and Knowledge Discovery, vol. 1, 10 pp. [cited by applicant]
Jiang et al. (2004) “Cluster Analysis for Gene Expression Data: A Survey,” IEEE Transactions on Knowledge and Data Engineering, vol. 16, No. 11, 17 pp. [cited by applicant]
Liu et al. (2000) “Clustering Through Decision Tree Construction,” IBM Research Report RC 21695 (97737), Mar. 20, 2000, 21 pp. [cited by applicant]
Schaeffer et al. (2007) “Graph clustering,” Computer Science Review I (2007), pp. 27-64. [cited by applicant]
Basu et al. (2018) “Iterative random forests to discover predictive and stable high-order interactions,” PNAS, vol. 115, No. 8, pp. 1943-1948. [cited by applicant]
Ho et al. (1995) “Random Decision Forests,” IEEE Conference, Aug. 14-16, 1995, Montreal, Quebec, Canada, Xplore: Aug. 6, 2002, Print ISBN: 0-8186-7128-9, DOI: 10.1109/ICDAR.1995.598994, 5 pp. [cited by applicant]
Fang et al. (2011) “A Topology-Preserving Selection and Clustering Approach to Multidimensional Biological Data,” OMICS: A Journal of Integrative Biology, vol. 15, Nos. 7 and 8, 12 pp. [cited by applicant]
Breiman (2001) “Random Forests,” Machine Learning, 45, pp. 5-32. [cited by applicant]
Shah et al. (2013) “Random Intersection Trees,” Submitted to arXiv on Mar. 26, 2013 (303.6223v1), 23 pp. [cited by applicant]
Ho (1998) “The Random Subspace Method for Constructing Decision Forests,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 20, No. 8, 23 pp. [cited by applicant]
Shi et al. (2006) “Unsupervised Learning With Random Forest Predictors,” Journal of Computational and Graphical Statistics, vol. 15, No. 1, pp. 118-138. [cited by applicant]
Shah et al. (2014) “Random Intersection Trees,” Journal of Machine Learning Research, 15, pp. 629-654. [cited by applicant]
A.K. Jain and J.V. Moreau, Bootstrap Technique in Cluster Analysis, Sep. 16, 1986, Pattern Recognition, Pergamon Journals Ltd, vol. 20 Issue No. 5, pp. 547-568. [cited by applicant]