Data Mining - Entscheidungsbauminduktion

Ein Entscheidungsbaum ist eine Struktur, die einen Wurzelknoten, Zweige und Blattknoten enthält. Jeder interne Knoten bezeichnet einen Test für ein Attribut, jeder Zweig bezeichnet das Ergebnis eines Tests und jeder Blattknoten enthält eine Klassenbezeichnung. Der oberste Knoten im Baum ist der Wurzelknoten.

Der folgende Entscheidungsbaum bezieht sich auf das Konzept buy_computer, das angibt, ob ein Kunde in einem Unternehmen wahrscheinlich einen Computer kauft oder nicht. Jeder interne Knoten repräsentiert einen Test für ein Attribut. Jeder Blattknoten repräsentiert eine Klasse.

Die Vorteile eines Entscheidungsbaums sind folgende:

  • Es sind keine Domänenkenntnisse erforderlich.
  • Es ist leicht zu verstehen.
  • Die Lern- und Klassifizierungsschritte eines Entscheidungsbaums sind einfach und schnell.

Entscheidungsbaum-Induktionsalgorithmus

Ein Maschinenforscher namens J. Ross Quinlan entwickelte 1980 einen Entscheidungsbaumalgorithmus namens ID3 (Iterative Dichotomiser). Später präsentierte er C4.5, den Nachfolger von ID3. ID3 und C4.5 verfolgen einen gierigen Ansatz. In diesem Algorithmus gibt es kein Backtracking. Die Bäume sind von oben nach unten rekursiv geteilt und erobert.

Generating a decision tree form training tuples of data partition D
Algorithm : Generate_decision_tree

Input:
Data partition, D, which is a set of training tuples 
and their associated class labels.
attribute_list, the set of candidate attributes.
Attribute selection method, a procedure to determine the
splitting criterion that best partitions that the data 
tuples into individual classes. This criterion includes a 
splitting_attribute and either a splitting point or splitting subset.

Output:
 A Decision Tree

Method
create a node N;

if tuples in D are all of the same class, C then
   return N as leaf node labeled with class C;
   
if attribute_list is empty then
   return N as leaf node with labeled 
   with majority class in D;|| majority voting
   
apply attribute_selection_method(D, attribute_list) 
to find the best splitting_criterion;
label node N with splitting_criterion;

if splitting_attribute is discrete-valued and
   multiway splits allowed then  // no restricted to binary trees

attribute_list = splitting attribute; // remove splitting attribute
for each outcome j of splitting criterion

   // partition the tuples and grow subtrees for each partition
   let Dj be the set of data tuples in D satisfying outcome j; // a partition
   
   if Dj is empty then
      attach a leaf labeled with the majority 
      class in D to node N;
   else 
      attach the node returned by Generate 
      decision tree(Dj, attribute list) to node N;
   end for
return N;

Baumschnitt

Das Beschneiden von Bäumen wird durchgeführt, um Anomalien in den Trainingsdaten aufgrund von Rauschen oder Ausreißern zu beseitigen. Die beschnittenen Bäume sind kleiner und weniger komplex.

Baumschnitt-Ansätze

Es gibt zwei Ansätze, um einen Baum zu beschneiden:

  • Pre-pruning - Der Baum wird beschnitten, indem der Bau vorzeitig eingestellt wird.

  • Post-pruning - Dieser Ansatz entfernt einen Teilbaum von einem ausgewachsenen Baum.

Kostenkomplexität

Die Kostenkomplexität wird anhand der folgenden zwei Parameter gemessen:

  • Anzahl der Blätter im Baum und
  • Fehlerrate des Baumes.