IP Library Granted Patent US 10,515,082
Granted Patent B2
US 10,515,082 · App. 15/265,676 · Granted Dec 24, 2019

Identifying frequent item sets

Inventor: Matthew Fuchs (Los Gatos, CA)
Assignee: salesforce.com, inc.
G06F16/24578G06F16/2228G06F16/285
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 10,515,082
App. No.
15/265,676
Granted
Dec 24, 2019
Kind
B2
Abstract

A system determines a count of each item in each item set, sorts each count into ascending order, assigns an ascending identifier to each item corresponding to each sorted count, and sorts each identifier in each item set in descending order. The system partitions item sets into a first group of item sets and a second group of item sets, each item set in the first group including a common largest identifier, determines a count for each subset of each item set of the first group, and determines a count of each subset of each item set by summing each count for each subset of each item set of the first group with each corresponding count for each corresponding subset of each item set of the second group. The system outputs a recommended item set based on the count of each subset of each item set.

Claims (64)

1. A system for identifying frequent item sets, the apparatus comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

determine, by a database system, a plurality of counts, each count representing the number of occurrences that each item is included in a plurality of item sets;

sort, by the database system, each count of the plurality of counts into an ascending order;

assign, by the database system, a numerical identifier to each item corresponding to each sorted count, the assigned numerical identifiers being in ascending order;

sort, by the database system, the numerical identifiers in each of the plurality of item sets into a descending order;

partition, by the database system, the plurality of item sets into a first group of item sets and a second group of item sets, each item set in the first group of item sets including a common largest numerical identifier;

determine, by the database system, one or more subsets of each item set of the first group, and one or more subsets of each item set of the second group of item sets;

determine a count of each subset of the first group, and the second group of item sets;

cause, by database system, each count for each subset of each item set of the first group to be added to each corresponding count for each corresponding subset of each item set of the second group of item sets to determine a count of each subset of each item set of the plurality of item sets; and

cause, by the database system, a recommended item set based on the count of each subset of each item set of the plurality of item sets to be outputted.

2. The system of claim 1 , comprising further instructions, which when executed, cause the one or more processors to:

determine, by the database system, a count of each original sequence of items in the plurality of item sets; and

associate, by the database system, each original sequence of items with a corresponding item set that has each numerical identifier sorted in the descending order.

3. The system of claim 1 , wherein partitioning the plurality of item sets into the first group of item sets comprises sorting each item set in the first group of item sets based on numerical identifiers in an item set position adjacent to an item set position for the common largest numerical identifier, and sorting each item set that includes a same numerical identifier in the item set position adjacent to the item set position for the largest numerical identifier, based on numerical identifiers in an item set position adjacent to the item set position that is adjacent to the item set position for the common largest numerical identifier.

4. The system of claim 1 , wherein determining the count for each subset of each item set of the first group of item sets comprises:

determining, by the database system, whether a first item set in the first group of item sets matches a second item set in the first group of item sets;

incrementing, by the database system, a count in a position in an array corresponding to a highest positioned item in the second item set, the array including array positions that correspond to items in a largest item set in the first group of item sets, in response to a determination that the first item set in the first group of item sets matches the second item set in the first group of item sets; and

identifying, by the database system, each subset of the first item set that includes an item in the first item set that lacks a match to a corresponding item in the second item set, a count for each subset of the first item set being based on a count in a position in the array that corresponds to the item, adding a count from a position in the array, corresponding to a highest positioned item in the first item set, to a position in the array that corresponds to a highest positioned item that matches between the first item set and the second item set, and adding a count in a position in the array that corresponds to the highest positioned item in the second item set, in response to a determination that the first item set in the first group of item sets does not match the second item set in the first group of item sets.

5. The system of claim 1 , wherein determining the count for each subset of each item set of the first group of item sets comprises identifying, by the database system, each subset of a final item set in the first group of item sets, a count for a subset of the final item set being based on a count in a position in the array that corresponds to a highest positioned item that is common to the subset.

6. The system of claim 1 , wherein outputting the recommended item set comprises outputting items in the recommended item set corresponding to numerical identifiers in the recommended item set that are greater than a numerical identifier threshold.

7. The system of claim 1 , wherein outputting the recommended item set is further based on an original sequence of items associated with the recommended item set.

8. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

determine, by a database system, a plurality of counts, each count representing the number of occurrences that of each item is included in each item set of a plurality of item sets, each item set including at least one item;

sort, by the database system, each count of the plurality of counts into an ascending order;

assign, by the database system, a numerical identifier to each item corresponding to each sorted count, the assigned numerical identifiers being in ascending order;

sort, by the database system, the numerical identifiers in each of the plurality of item sets into a descending order;

partition, by the database system, the plurality of item sets into a first group of item sets and a second group of item sets, each item set in the first group of item sets including a common largest numerical identifier;

determine, by the database system, one or more subsets of each item set of the first group, and one or more subsets of each item set of the second group of item sets;

determine a count of each subset of the first group, and the second group of item sets;

cause, by database system, each count for each subset of each item set of the first group to be added to each corresponding count for each corresponding subset of each item set of the second group of item sets to determine a count of each subset of each item set of the plurality of item sets; and

cause, by the database system, a recommended item set based on the count of each subset of each item set of the plurality of item sets to be outputted.

9. The computer program product of claim 8 , wherein the program code comprises further instructions to:

determine, by the database system, a count of each original sequence of items in the plurality of item sets; and

associate, by the database system, each original sequence of items with a corresponding item set that has each numerical identifier sorted in the descending order.

10. The computer program product of claim 8 , wherein partitioning the plurality of item sets into the first group of item sets comprises sorting each item set in the first group of item sets based on numerical identifiers in an item set position adjacent to an item set position for the common largest numerical identifier, and sorting each item set that includes a same numerical identifier in the item set position adjacent to the item set position for the largest numerical identifier, based on numerical identifiers in an item set position adjacent to the item set position that is adjacent to the item set position for the common largest numerical identifier.

11. The computer program product of claim 8 , wherein determining the count for each subset of each item set of the first group of item sets comprises:

determining, by the database system, whether a first item set in the first group of item sets matches a second item set in the first group of item sets;

incrementing, by the database system, a count in a position in an array corresponding to a highest positioned item in the second item set, the array including array positions that correspond to items in a largest item set in the first group of item sets, in response to a determination that the first item set in the first group of item sets matches the second item set in the first group of item sets; and

identifying, by the database system, each subset of the first item set that includes an item in the first item set that lacks a match to a corresponding item in the second item set, a count for each subset of the first item set being based on a count in a position in the array that corresponds to the item, adding a count from a position in the array, corresponding to a highest positioned item in the first item set, to a position in the array that corresponds to a highest positioned item that matches between the first item set and the second item set, and adding a count in a position in the array that corresponds to the highest positioned item in the second item set, in response to a determination that the first item set in the first group of item sets does not match the second item set in the first group of item sets.

12. The computer program product of claim 8 , wherein determining the count for each subset of each item set of the first group of item sets comprises identifying, by the database system, each subset of a final item set in the first group of item sets, a count for a subset of the final item set being based on a count in a position in the array that corresponds to a highest positioned item that is common to the subset.

13. The computer program product of claim 8 , wherein outputting the recommended item set comprises outputting items in the recommended item set corresponding to numerical identifiers in the recommended item set that are greater than a numerical identifier threshold.

14. The computer program product of claim 8 , wherein outputting the recommended item set is further based on an original sequence of items associated with the recommended item set.

15. A method for identifying frequent item sets, the method comprising:

determining, by a database system, a plurality of counts, each count representing the number of occurrences that of each item is included in each item set of a plurality of item sets, each item set including at least one item;

sorting, by the database system, each count of the plurality of counts into an ascending order;

assigning, by the database system, a numerical identifier to each item corresponding to each sorted count, the assigned numerical identifiers being in ascending order;

sorting, by the database system, the numerical identifiers in each of the plurality of item sets into a descending order;

partitioning, by the database system, the plurality of item sets into a first group of item sets and a second group of item sets, each item set in the first group of item sets including a common largest numerical identifier;

determining, by the database system, one or more subsets of each item set of the first group and one or more subsets of each item set of the second group of item sets;

determining a count of each subset of the first group and the second group of item sets;

causing, by database system, each count for each subset of each item set of the first group to be added to each corresponding count for each corresponding subset of each item set of the second group of item sets to determine a count of each subset of each item set of the plurality of item sets; and

causing, by the database system, a recommended item set based on the count of each subset of each item set of the plurality of item sets to be outputted.

16. The method of claim 15 , wherein the method further comprises:

determining, by the database system, a count of each original sequence of items in the plurality of item sets; and

associating, by the database system, each original sequence of items with a corresponding item set that has each numerical identifier sorted in the descending order.

17. The method of claim 15 , wherein partitioning the plurality of item sets into the first group of item sets comprises sorting each item set in the first group of item sets based on numerical identifiers in an item set position adjacent to an item set position for the common largest numerical identifier, and sorting each item set that includes a same numerical identifier in the item set position adjacent to the item set position for the largest numerical identifier, based on numerical identifiers in an item set position adjacent to the item set position that is adjacent to the item set position for the common largest numerical identifier.

18. The method of claim 15 , wherein determining the count for each subset of each item set of the first group of item sets comprises:

determining, by the database system, whether a first item set in the first group of item sets matches a second item set in the first group of item sets;

incrementing, by the database system, a count in a position in an array corresponding to a highest positioned item in the second item set, the array including array positions that correspond to items in a largest item set in the first group of item sets, in response to a determination that the first item set in the first group of item sets matches the second item set in the first group of item sets; and

identifying, by the database system, each subset of the first item set that includes an item in the first item set that lacks a match to a corresponding item in the second item set, a count for each subset of the first item set being based on a count in a position in the array that corresponds to the item, adding a count from a position in the array, corresponding to a highest positioned item in the first item set, to a position in the array that corresponds to a highest positioned item that matches between the first item set and the second item set, and adding a count in a position in the array that corresponds to the highest positioned item in the second item set, in response to a determination that the first item set in the first group of item sets does not match the second item set in the first group of item sets.

19. The method of claim 15 , wherein determining the count for each subset of each item set of the first group of item sets comprises identifying, by the database system, each subset of a final item set in the first group of item sets, a count for a subset of the final item set being based on a count in a position in the array that corresponds to a highest positioned item that is common to the subset.

20. The method of claim 15 , wherein outputting the recommended item set comprises outputting items in the recommended item set corresponding to numerical identifiers in the recommended item set that are greater than a numerical identifier threshold, and outputting the recommended item set is further based on an original sequence of items associated with the recommended item set.

Assignments (2)
CHANGE OF NAME Recorded Oct 3, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 065114/0983 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2016
From: FUCHS, MATTHEW
To: SALESFORCE.COM, INC.
Reel/Frame 039743/0140 →
Continuity (1)
Related Publication 20180075036A1 · Mar 15, 2018