IP Library Granted Patent US 12,586,102
Granted Patent B2
US 12,586,102 · App. 18/914,984 · Granted Mar 24, 2026

Heuristic clustering

Inventors: Burcu Aydin (Mountain View, CA); Michael Tamir (San Jose, CA)
Assignee: TRANSFORM SR BRANDS LLC
G06Q30/0269G06Q30/0242
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,586,102
App. No.
18/914,984
Granted
Mar 24, 2026
Kind
B2
Abstract

Methods and apparatus are disclosed regarding an e-commerce system that places customers into a plurality of clusters and tailors services provided to a customer based on the cluster in which the customer is placed. In one embodiment, the e-commerce system defines the clusters based on purchase history data for customers having sufficient purchase history data. The e-commerce system then places customers without sufficient purchase history data into one of the defined clusters based on demographic data for the customer and demographic data for the customers in the cluster.

Claims (72)

1 . A method, the method comprising:

splitting a plurality of records into a first group and a second group;

generating a matrix associated with data of the first group, wherein the matrix comprises a Customer-Item (CI) matrix that is standardized column-wise using bin-quantiles standardization (BQS) to produce a standardized transaction space with values between 0 and 1;

applying principal component analysis to the standardized transaction space to obtain a reduced matrix for the first group;

generating, in accordance with a clustering large applications (CLARA) procedure, a plurality of samples of the first group according to the reduced matrix;

partitioning each of the plurality of samples of the first group to reduce dissimilarities;

applying a partitioning-around-medoids (PAM) algorithm using Euclidean distance to each sample;

computing for each medoid set a sum of distances of all points to a nearest medoid;

selecting the medoid set having the smallest sum of distances;

clustering the first group into a plurality of clusters according to the selected medoid set; and

placing a record of the second group into a particular cluster, of the plurality of clusters, according to demographic data of the record and demographic data of the particular cluster.

2 . The method of claim 1 , comprising validating the plurality of clusters prior to placing the record into the particular cluster.

3 . The method of claim 1 , comprising recalibrating a quantity of dimensions of the reduced matrix until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

4 . The method of claim 1 , comprising recalibrating a quantity of clusters used by the clustering until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

5 . The method of claim 1 , comprising:

generating silhouette numbers for the first group, and

determining, according to the silhouette numbers for the first group, that the plurality of clusters are a valid clustering of the first group.

6 . The method of claim 1 , wherein:

partitioning comprises calculating distances between records in the first group,

a larger distance corresponds to a greater dissimilarity, and

each cluster, in the plurality of clusters, is defined according to a smallest sum of distances.

7 . The method of claim 1 , wherein:

partitioning comprises determining a particular record according to a sum of dissimilarities between the particular record and all other records of the first group, and

the sum associated with the particular record is a minimum.

8 . A non-transitory computer readable medium, comprising a plurality of instructions, that in response to being executed, result in a computing device:

splitting a plurality of records into a first group and a second group;

generating a matrix associated with data of the first group, wherein the matrix comprises a Customer-Item (CI) matrix that is standardized column-wise using bin-quantiles standardization (BQS) to produce a standardized transaction space with values between 0 and 1;

applying principal component analysis to the standardized transaction space to obtain a reduced matrix for the first group;

generating, in accordance with a clustering large applications (CLARA) procedure, a plurality of samples of the first group according to the reduced matrix;

partitioning each of the plurality of samples of the first group to reduce dissimilarities;

applying a partitioning-around-medoids (PAM) algorithm using Euclidean distance to each sample;

computing for each medoid set a sum of distances of all points to a nearest medoid;

selecting the medoid set having the smallest sum of distances;

clustering the first group into a plurality of clusters according to the selected medoid set; and

placing a record of the second group into a particular cluster, of the plurality of clusters, according to demographic data of the record and demographic data of the particular cluster.

9 . The non-transitory computer readable medium of claim 8 , wherein in response to being executed, the plurality of instructions result in the computing device validating the plurality of clusters prior to placing the record into the particular cluster.

10 . The non-transitory computer readable medium of claim 8 , wherein in response to being executed, the plurality of instructions result in the computing device recalibrating a quantity of dimensions of the reduced matrix until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

11 . The non-transitory computer readable medium of claim 8 , wherein in response to being executed, the plurality of instructions result in the computing device recalibrating a quantity of clusters used by the clustering until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

12 . The non-transitory computer readable medium of claim 8 , wherein in response to being executed, the plurality of instructions result in the computing device:

generating silhouette numbers for the first group, and

determining, according to the silhouette numbers for the first group, that the plurality of clusters are a valid clustering of the first group.

13 . The non-transitory computer readable medium of claim 8 , wherein:

partitioning comprises calculating distances between records of the first group,

a larger distance corresponds to a greater dissimilarity, and

each cluster, in the plurality of clusters, is defined according to a smallest sum of distances.

14 . The non-transitory computer readable medium of claim 8 , wherein:

partitioning comprises determining a particular record according to a sum of dissimilarities between the particular record and all other records of the first group, and

the sum associated with the particular record is a minimum.

15 . A system, the system comprising:

one or more processors configured to:

split a plurality of records into a first group and a second group;

generate a matrix associated with data of the first group, wherein the matrix comprises a Customer-Item (CI) matrix that is standardized column-wise using bin-quantiles standardization (BQS) to produce a standardized transaction space with values between 0 and 1;

apply principal component analysis to the standardized transaction space to obtain a reduced matrix for the first group;

generate, in accordance with a clustering large applications (CLARA) procedure, a plurality of samples of the first group according to the reduced matrix;

partition each of the plurality of samples of the first group to reduce dissimilarities;

apply a partitioning-around-medoids (PAM) algorithm using Euclidean distance to each sample;

compute for each medoid set a sum of distances of all points to a nearest medoid;

select the medoid set having the smallest sum of distances;

cluster the first group into a plurality of clusters according to the selected medoid set; and

place a record of the second group into a particular cluster, of the plurality of clusters, according to demographic data of the record and demographic data of the particular cluster.

16 . The system of claim 15 , wherein the one or more processors are configured to validate the plurality of clusters prior to placing the record into the particular cluster.

17 . The system of claim 15 , wherein the one or more processors are configured to recalibrate a quantity of dimensions of the reduced matrix until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

18 . The system of claim 15 , wherein the one or more processors are configured to recalibrate a quantity of clusters used by the clustering until a cluster validation determines the plurality of clusters are a valid clustering of the first group.

19 . The system of claim 15 , wherein the one or more processors are configured to:

generate silhouette numbers for the first group, and

determine, according to the silhouette numbers for the first group, that the plurality of clusters are a valid clustering of the first group.

20 . The system of claim 15 , wherein:

partitioning comprises calculating distances between records of the first group,

a larger distance corresponds to a greater dissimilarity, and

each cluster, in the plurality of clusters, is defined according to a smallest sum of distances.

21 . The system of claim 15 , wherein:

partitioning comprises determining a particular record according to a sum of dissimilarities between the particular record and all other records of the first group, and the sum associated with the particular record is a minimum.

Assignments (2)
SECURITY INTEREST Recorded Jun 30, 2025
From: TRANSFORM SR BRANDS LLC
To: JPP, LLC
Reel/Frame 071565/0960 →
SECURITY INTEREST Recorded Jun 11, 2025
From: TRANSFORM SR BRANDS LLC
To: CANTOR FITZGERALD SECURITIES, AS AGENT
Reel/Frame 071392/0196 →
Continuity (7)
Continuation 18497067 · Oct 30, 2023
Continuation 18113196 · Feb 23, 2023
Continuation 17717365 · Apr 11, 2022
Continuation 17085858 · Oct 30, 2020
Continuation 16524938 · Jul 29, 2019
Continuation 14083815 · Nov 19, 2013
Related Publication 20250037167A1 · Jan 30, 2025
References Cited (22)
US 6134555A · Chadha · 2000 [cited by examiner]
US 6490582B1 · Fayyad · 2002 [cited by examiner]
US 8456633B2 · Lewis · 2013 [cited by examiner]
US 20080025596A1 · Podilchuk · 2008 [cited by examiner]
US 20100306029A1 · Jolley · 2010 [cited by examiner]
US 20110276160A1 · Kelly · 2011 [cited by examiner]
US 20120045106A1 · Razifar · 2012 [cited by examiner]
“Cluster Analysis”, Wikipedia, dated Nov. 12, 2013, 19 pages (cited in IDS filed on Oct. 14, 2024) (Year: 2013). [cited by examiner]
“Principal Component Analysis”, Wikipedia, dated Nov. 12, 2013, 16 pages (Year: 2013). [cited by examiner]
“Cluster Analysis”, Wikipedia, dated Nov. 12, 2013 (cited in IDS) (Year: 2013). [cited by examiner]
“Cluster Analysis”, Wikipedia, dated Nov. 12, 2013, 19 pages. [cited by applicant]
“Cross-Validation (statistics)”, Wikipedia, dated Nov. 12, 2013, 6 pages. [cited by applicant]
“K-Medoids”, Wikipedia, dated Nov. 12, 2013, 7 pages. [cited by applicant]
“Logisic Regression”, Wikipedia, dated Nov. 12, 2013, 18 pages. [cited by applicant]
“Maximum Likelihood”, Wikipedia, dated Nov. 12, 2013, 14 pages. [cited by applicant]
“Principal Component Analysis”, Wikipedia, dated Nov. 12, 2013, 16 pages. [cited by applicant]
“Silhouette (Clustering)”, Wikipedia, dated Nov. 12, 2013, 2 pages. [cited by applicant]
“Support Vector Machine”, Wikipedia, dated Nov. 12, 2013, 14 pages. [cited by applicant]
“Correlation and Dependence”, Wikipedia, dated Nov. 14, 2013, 9 pages. [cited by applicant]
Integer Programming, Wikipedia, dated Nov. 14, 2013, 6 pages. [cited by applicant]
“Jaccard Index”, Wikipedia, dated Nov. 14, 2013, 5 pages. [cited by applicant]
“Minkowski Distance”, Wikipedia, dated Nov. 14, 2013, 2 pages. [cited by applicant]