← Back to Patent Explorer
US6230151B1 Expired / Lapsed US ⏱️ 0.0 years remaining

Parallel classification for data mining in a shared-memory multiprocessor system

Assignee: International Business Machines Corp
•
Filing: 1998-04-16
•
Granted: 2001-05-08
•
Expires: 2018-04-16
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and system for generating a decision-tree classifier in parallel in a shared-memory multiprocessor system is disclosed. The processors first generate in the shared memory an attribute list for each record attribute. Each attribute list is assigned to a processor. The processors independently determine the best splits for their respective assigned lists, and cooperatively determine a global best split for all attribute lists. The attribute lists are reassigned to the processors and split according to the global best split into the lists for child nodes. The split attribute lists are again assigned to the processors and the process is repeated for each new child node until each attribute list for the new child nodes includes only tuples of the same record class or a fixed number of tuples.

Inventors

  • 👤 Rakesh Agrawal
  • 👤 Ching-Tien Ho
  • 👤 Mohammed J. Zaki

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 21:31
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/45; G06F8/453; G06F16/00; G06F16/20; G06F16/28; G06F16/284; G06F16/285; G06N; G06N20/00; G06N5/00; G06N5/01; G06F2216/00; G06F2216/03; Y; Y10; Y10S; Y10S707/00; Y10S707/99941; Y10S707/99942

Claims Analysis

Total Claims: 54
Claim 1
Independent Claim 212 words
A method for generating a decision-tree classifier in a shared-memory multiprocessor system from a set of records, the tree having a plurality of nodes, the method comprising the steps of: (a) generating cooperatively by the processors, in the shared memory, an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; (b) assigning each attribute list of the current node to one of the processors; (c) each processor accessing the attribute lists assigned to the processor, in the shared memory, to determine a best split for each attribute list; (d) the processors cooperatively determining, through the shared memory, a global best split for all the attribute lists associated with the current node; (e) reassigning each attribute list of the current node to one of the processors; (f) each processor splitting the attribute lists reassigned to the processor according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and (g) repeating steps (b)-(f) with each newly created child node as the current node, until each attribute list for the newly created child nodes includes only tuples of the same record class.
Claim 2
Independent Claim 212 words
A method for generating a decision-tree classifier in a shared-memory multiprocessor system from a set of records, the tree having a plurality of nodes, the method comprising the steps of: (a) generating cooperatively by the processors, in the shared memory, an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; (b) assigning each attribute list of the current node to one of the processors; (c) each processor accessing the attribute lists assigned to the processor, in the shared memory, to determine a best split for each attribute list; (d) the processors cooperatively determining, through the shared memory, a global best split for all the attribute lists associated with the current node; (e) reassigning each attribute list of the current node to one of the processors; (f) each processor splitting the attribute lists reassigned to the processor according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and (g) repeating steps (b)-(f) with each newly created child node as the current node, until each attribute list for the newly created child nodes includes only tuples of the same record class.
Claim 3
Dependent Claim 43 words
The method as recited in claim 1 , wherein the steps (b)-(f) are repeated with each newly created child node as the current node, until each attribute list for the newly created child nodes includes no more than a predetermined number of tuples.
Claim 4
Dependent Claim 24 words
The method as recited in claim 1 , wherein the classifier is a multilevel tree structure, and each level has a plurality of nodes.
Claim 5
Dependent Claim 36 words
The method as recited in claim 1 , wherein each processor accesses the assigned attribute lists for all of the nodes at the same level of the tree only once in determining the respective best splits.
Claim 6
Dependent Claim 26 words
The method as recited in claim 4 , wherein a shared variable is used to dynamically synchronize the assignment of the attribute lists to the processors.
Claim 7
Dependent Claim 33 words
The method as recited in claim 5 , wherein the assignment of the attribute lists to the processors is the same for all of the nodes at the same level of the tree.
Claim 8
Dependent Claim 35 words
The method as recited in claim 1 , wherein each processor accesses the reassigned attribute lists for all of the nodes at the same level of the tree only once in splitting the reassigned lists.
Claim 9
Dependent Claim 25 words
The method as recited in claim 7 , wherein a shared variable is used to dynamically synchronize the reassignment of the attribute lists to processors.
Claim 10
Dependent Claim 32 words
The method as recited in claim 8 , wherein the reassignment of the attribute lists to processors is the same for all of the nodes at the same level of the tree.
Claim 11
Dependent Claim 39 words
The method as recited in claim 1 , further comprising the step of building a data structure to determine whether a tuple of an attribute list belongs to a left child attribute list or a right child attribute list.
Claim 12
Dependent Claim 89 words
The method as recited in claim 10 , wherein: the classifier is a multilevel tree structure, each level having a plurality of nodes; the method further comprises the step of creating, for every K consecutive nodes at the same level of the tree, K different files for storing the attribute lists of the K nodes; and the determination of the best splits for the respective attribute lists of the K nodes and the building of the data structure for the K nodes are done in parallel by each processor.
Claim 13
Dependent Claim 31 words
The method as recited in claim 11 , wherein a barrier synchronization between two groups of K nodes is used to prevent any two processors from simultaneously accessing a same file.
Claim 14
Dependent Claim 25 words
The method as recited in claim 11 , wherein K conditional variables are used to prevent any two processors from simultaneously accessing a same file.
Claim 15
Dependent Claim 71 words
The method as recited in claim 1 , wherein: all processors of the system are initially associated with the current node; the processors to which the attribute lists are assigned and reassigned are selected from the processors associated with the current node; and when the child nodes are created from the current node, the processors associated with the current node are divided into two subsets, each associated with a child node.
Claim 16
Dependent Claim 43 words
The method as recited in claim 14 , wherein: a processor becomes free when all the nodes associated with the processor can no longer be split; and the free processor would join the other processors in processing the attributes lists for other nodes.
Claim 17
Dependent Claim 23 words
The method as recited in claim 1 , further comprising the step of pruning the decision-tree classifier to obtain a more compact classifier.
Claim 18
Dependent Claim 24 words
The method as recited in claim 16 , wherein the step of pruning is based on a Minimum Description Length model of the classifier.
Claim 19
Dependent Claim 273 words
A computer program product for use with a shared-memory multiprocessor system for generating a decision-tree classifier from a set of records, the tree having a plurality of nodes, the product comprising: a computer-readable medium; means, provided on the computer-readable medium, for directing the processors to cooperatively generate in the shared memory an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; means, provided on the computer-readable medium, for directing the system to assign each attribute list of the current node to one of the processors; means, provided on the computer-readable medium, for directing each processor to access the attribute lists assigned to the processor, in the shared memory, and determine a best split for each attribute list; means, provided on the computer-readable medium, for directing the processors to cooperatively determine, through the shared memory, a global best split for all the attribute lists associated with the current node; means, provided on the computer-readable medium, for directing the processors to reassign each attribute list of the current node to one of the processors; means, provided on the computer-readable medium, for directing each processor to split the attribute lists reassigned to the processor according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and means provided on the computer-readable medium, for directing the processors to process each newly created child node as the current node, until each attribute list for the newly child nodes includes only tuples of the same record class.
Claim 20
Dependent Claim 273 words
A computer program product for use with a shared-memory multiprocessor system for generating a decision-tree classifier from a set of records, the tree having a plurality of nodes, the product comprising: a computer-readable medium; means, provided on the computer-readable medium, for directing the processors to cooperatively generate in the shared memory an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; means, provided on the computer-readable medium, for directing the system to assign each attribute list of the current node to one of the processors; means, provided on the computer-readable medium, for directing each processor to access the attribute lists assigned to the processor, in the shared memory, and determine a best split for each attribute list; means, provided on the computer-readable medium, for directing the processors to cooperatively determine, through the shared memory, a global best split for all the attribute lists associated with the current node; means, provided on the computer-readable medium, for directing the processors to reassign each attribute list of the current node to one of the processors; means, provided on the computer-readable medium, for directing each processor to split the attribute lists reassigned to the processor according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and means provided on the computer-readable medium, for directing the processors to process each newly created child node as the current node, until each attribute list for the newly child nodes includes only tuples of the same record class.
Claim 21
Dependent Claim 42 words
The computer program product as recited in claim 18 , wherein the each newly created child node is processed as the current node until each attribute list for the newly created child nodes includes no more than a predetermined number of tuples.
Claim 22
Dependent Claim 26 words
The computer program product as recited in claim 18 , wherein the classifier is a multilevel tree structure, and each level has a plurality of nodes.
Claim 23
Dependent Claim 39 words
The computer program product as recited in claim 18 , wherein each processor accesses the respective assigned attribute lists for all of the nodes at the same level of the tree only once in determining the respective best splits.
Claim 24
Dependent Claim 28 words
The computer program product as recited in claim 21 , wherein a shared variable is used to dynamically synchronize the assignment of the attribute lists to the processors.
Claim 25
Dependent Claim 35 words
The computer program product as recited in claim 22 , wherein the assignment of the attribute lists to the processors is the same for all of the nodes at the same level of the tree.
Claim 26
Dependent Claim 37 words
The computer program product as recited in claim 18 , wherein each processor accesses the reassigned attribute lists for all of the nodes at the same level of the tree only once in splitting the reassigned lists.
Claim 27
Dependent Claim 27 words
The computer program product as recited in claim 24 , wherein a shared variable is used to dynamically synchronize the reassignment of the attribute lists to processors.
Claim 28
Dependent Claim 34 words
The computer program product as recited in claim 25 , wherein the reassignment of the attribute lists to processors is the same for all of the nodes at the same level of the tree.
Claim 29
Dependent Claim 49 words
The computer program product as recited in claim 18 , further comprising means, provided on the computer-readable medium, for directing the system to build a data structure to determine whether a tuple of an attribute list belongs to a left child attribute list or a right child attribute list.
Claim 30
Dependent Claim 101 words
The computer program product as recited in claim 27 , wherein: the classifier is a multilevel tree structure, each level having a plurality of nodes; the computer program product further comprises means, provided on the computer-readable medium, for directing the system to create, for every K consecutive nodes at the same level of the tree, K different files for storing the attribute lists of the K nodes; and the determination of the best splits for the respective attribute lists of the K nodes and the building of the data structure for the K nodes are done in parallel by each processor.
Claim 31
Dependent Claim 33 words
The computer program product as recited in claim 28 , wherein a barrier synchronization between two groups of K nodes is used to prevent any two processors from simultaneously accessing a same file.
Claim 32
Dependent Claim 27 words
The computer program product as recited in claim 28 , wherein K conditional variables are used to prevent any two processors from simultaneously accessing a same file.
Claim 33
Dependent Claim 73 words
The computer program product as recited in claim 18 , wherein: all processors of the system are initially associated with the current node; the processors to which the attribute lists are assigned and reassigned are selected from the processors associated with the current node; and when the child nodes are created from the current node, the processors associated with the current node are divided into two subsets, each associated with a child node.
Claim 34
Dependent Claim 45 words
The computer program product as recited in claim 31 , wherein: a processor becomes free when all the nodes associated with the processor can no longer be split; and the free processor would join the other processors in processing the attributes lists for other nodes.
Claim 35
Dependent Claim 33 words
The computer program product as recited in claim 18 , further comprising means, provided on the computer-readable medium, for directing the system to prune the decision-tree classifier to obtain a more compact classifier.
Claim 36
Dependent Claim 24 words
The computer program product as recited in claim 33 , wherein the pruning is based on a Minimum Description Length model of the classifier.
Claim 37
Dependent Claim 210 words
A database system for generating a decision-tree classifier in a shared-memory multiprocessor computer from a set of records, the tree having a plurality of nodes, the system comprising: means for generating cooperatively by the processors, in the shared memory, an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; means for assigning each attribute list of the current node to one of the processors; means for accessing the attribute lists in the shared memory, by each processor, to determine a best split for each attribute list; means for cooperatively determining by the processors, through the shared memory, a global best split for all the attribute lists associated with the current node; means for reassigning each attribute list of the current node to one of the processors; means for splitting, by each processor, the reassigned attribute lists according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and means for processing each newly created child node as the current node, until each attribute list for the newly created child nodes includes only tuples of the same record class.
Claim 38
Dependent Claim 210 words
A database system for generating a decision-tree classifier in a shared-memory multiprocessor computer from a set of records, the tree having a plurality of nodes, the system comprising: means for generating cooperatively by the processors, in the shared memory, an attribute list for each attribute of the records, the attribute lists corresponding a current node and including tuples each having information on a record class; means for assigning each attribute list of the current node to one of the processors; means for accessing the attribute lists in the shared memory, by each processor, to determine a best split for each attribute list; means for cooperatively determining by the processors, through the shared memory, a global best split for all the attribute lists associated with the current node; means for reassigning each attribute list of the current node to one of the processors; means for splitting, by each processor, the reassigned attribute lists according to the global best split into new attribute lists, the new lists corresponding to child nodes of the current node and residing in the shared memory; and means for processing each newly created child node as the current node, until each attribute list for the newly created child nodes includes only tuples of the same record class.
Claim 39
Dependent Claim 39 words
The system as recited in claim 35 , wherein each newly created child node is processed as the current node until each attribute list for the newly created child nodes includes no more than a predetermined number of tuples.
Claim 40
Dependent Claim 24 words
The system as recited in claim 35 , wherein the classifier is a multilevel tree structure, and each level has a plurality of nodes.
Claim 41
Dependent Claim 36 words
The system as recited in claim 35 , wherein each processor accesses the assigned attribute lists for all of the nodes at the same level of the tree only once in determining the respective best splits.
Claim 42
Dependent Claim 26 words
The system as recited in claim 38 , wherein a shared variable is used to dynamically synchronize the assignment of the attribute lists to the processors.
Claim 43
Dependent Claim 33 words
The system as recited in claim 39 , wherein the assignment of the attribute lists to the processors is the same for all of the nodes at the same level of the tree.
Claim 44
Dependent Claim 35 words
The system as recited in claim 35 , wherein each processor accesses the reassigned attribute lists for all of the nodes at the same level of the tree only once in splitting the reassigned lists.
Claim 45
Dependent Claim 25 words
The system as recited in claim 41 , wherein a shared variable is used to dynamically synchronize the reassignment of the attribute lists to processors.
Claim 46
Dependent Claim 32 words
The system as recited in claim 42 , wherein the reassignment of the attribute lists to processors is the same for all of the nodes at the same level of the tree.
Claim 47
Dependent Claim 38 words
The system as recited in claim 35 , further comprising means for building a data structure to determine whether a tuple of an attribute list belongs to a left child attribute list or a right child attribute list.
Claim 48
Dependent Claim 88 words
The system as recited in claim 44 , wherein the classifier is a multilevel tree structure, each level having a plurality of nodes; the system further comprises means for creating, for every K consecutive nodes at the same level of the tree, K different files for storing the attribute lists of the K nodes; and the determination of the best splits for the respective attribute lists of the K nodes and the building of the data structure for the K nodes are done in parallel by each processor.
Claim 49
Dependent Claim 31 words
The system as recited in claim 45 , wherein a barrier synchronization between two groups of K nodes is used to prevent any two processors from simultaneously accessing a same file.
Claim 50
Dependent Claim 25 words
The system as recited in claim 45 , wherein K conditional variables are used to prevent any two processors from simultaneously accessing a same file.
Claim 51
Dependent Claim 71 words
The system as recited in claim 35 , wherein: all processors of the computer are initially associated with the current node; the processors to which the attribute lists are assigned and reassigned are selected from the processors associated with the current node; and when the child nodes are created from the current node, the processors associated with the current node are divided into two subsets, each associated with a child node.
Claim 52
Dependent Claim 43 words
The system as recited in claim 48 , wherein: a processor becomes free when all the nodes associated with the processor can no longer be split; and the free processor would join the other processors in processing the attributes lists for other nodes.
Claim 53
Dependent Claim 22 words
The system as recited in claim 35 , further comprising means for pruning the decision-tree classifier to obtain a more compact classifier.
Claim 54
Dependent Claim 23 words
The system as recited in claim 50 wherein the means for pruning is based on a Minimum Description Length model of the classifier.

References Cited (Backward Citations)

US4825354A Cited
US5463773A Cited
US5819266A Cited
US5864839A Cited
US5615341A Cited
US5668988A Cited
US5742811A Cited
US5875285A Cited
US5899992A Cited
US5884305A Cited
US5960446A Cited
US5884320A Cited
US6003029A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2004-05-07 2004-11-06 2005-05-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2008-05-07 2008-11-06 2009-05-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2012-05-07 2012-11-06 2013-05-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag