Patent ID: 7194477

Claim:
A method in a computing system for modeling co-occurrence between items in a population using occurrence data identifying, for each of a number of instances, a subset of the population of items that occurred in the instance, comprising: (a) initializing a model tree data structure; (b) at a first level of the tree data structure, establishing a node for each of the items; (c) after (b), reading the occurrence data a first time to arrive at a count, stored in each node at the first level of the tree data structure, of the number of instances in which the item corresponding to the node occurred; (d) reading the occurrence data a second time, and, for each pair of items encountered in an instance while reading the occurrence data a second time that is comprised of items whose counts exceed a threshold number: (1) if no node has been established at the second level of the tree data structure for the pair of items, establishing a node at the second level of the tree data structure for the pair of items, initializing a count for the established node, and incrementing the count for the node established at the second level of the tree data structure for the pair of items; and (2) if a node has been established at the second level of the tree data structure for the pair of items, incrementing the count for the node established at the second level of the tree data structure for the pair of items; (e) at a third level of the tree data structure, establishing a node for each group of three items for which the counts of the pairs that are subsets of the group of three items each have a count that exceeds the threshold number; (f) after (e), reading the occurrence data a third time to arrive at a count, stored in each node at the third level of the tree data structure, of the number of instances in which the all three of the items corresponding to the node occurred; and (g) recommending an item based on the count.