FH-Mannheim Studiengang Informatik SS2005 KDM Prof. Dr. A. Schmücker-Schend Ausarbeitung Übungsblatt 3 Abgabe bis zum 02.06.2005 Vorname Nachname Matrikelnummer Unterschrift Abel Vázquez 0210314 Uli Ruffler 0211288 1 Aufgabe 1 Im Gegensatz zum ID3 Algorithmus bietet der J.48 die Möglichkeit nominale Werte zu verarbeiten. Dies wird erreicht, indem die numerischen Werte so in zwei Teile geteilt werden, dass der maximale Informationsgewinn erzielt wird (BinC45Split.java: private void handleNumericAttribute). Außerdem kann der J.48 Algorithmus im Gegensatz zu ID3 mit fehlenden Attributwerten umgehen. Es wird dann die entsprechende Instanz im gleichen Verhältnis wie die Instanzmenge in die verschiedenen Zweige verteilt (Distribution.java: public final void addInstWithUnknown). Eine weitere Erweiterung des J.48 ist das Postpruning. Es wird der Baum, nach dem er komplett erstellt wurde wieder beschnitten. Es gibt zwei verschiedene Arten des Prunings im J.48, das Subtree-Replacement (PruneableClassifierTree.java: public void prune()) und das Subtree-Raising (C45PruneableClassifierTree .java: public void prune()). Beim Subtree-Replacement werden Unterbäume durch Blattknoten ersetzt. Beim Subtree-Raising werden übergeordnete Teilbäume durch untergeordnete Teilbäume ersetzt. Um zu entscheiden ob gepruned werden soll oder nicht, wird die entstehende Fehlerrate abgeschätzt. 2 Aufgabe 2a) • if then T— 3 20 – textilien=wenig — 0 10 – textilien=mittel — 1 4 – textilien=viel — 2 6 – geschenkartikel=wenig — 3 8 – geschenkartikel=mittel — 0 5 – geschenkartikel=viel — 0 7 1 8 – durchschnittspreis=niedrig — – durchschnittspreis=mittel — – durchschnittspreis=hoch — 2 6 0 6 • if geschenkartikel=wenig then T— – textilien=wenig — 0 2 – textilien=mittel — 1 3 – textilien=viel — 3 8 2 3 1 4 – durchschnittspreis=niedrig — – durchschnittspreis=mittel — – durchschnittspreis=hoch — 2 2 0 2 • if geschenkartikel=wenig && durchschnittspreis=mittel then T— • if 2 2 then T— 1 18 – textilien=wenig — 0 10 – textilien=mittel — 0 3 – textilien=viel — 1 5 – geschenkartikel=wenig — 3 1 6 – geschenkartikel=mittel — 0 5 – geschenkartikel=wenig — 0 7 1 8 – durchschnittspreis=niedrig — – durchschnittspreis=mittel — – durchschnittspreis=hoch — • if textilien=viel then T— 0 4 0 6 1 5 – geschenkartikel=wenig — 1 2 – geschenkartikel=mittel — 0 1 – geschenkartikel=viel — 0 2 1 2 – durchschnittspreis=niedrig — – durchschnittspreis=mittel — – durchschnittspreis=hoch — 0 1 0 2 • if textilien=viel && geschenkartikel=wenig then T— 1 1 – durchschnittspreis=niedrig — – durchschnittspreis=mittel — – durchschnittspreis=hoch — 1 2 0 0 0 1 • if textilien=viel && geschenkartikel=wenig && durchschnittspreis=niedrig then T— 1 1 4 Aufgabe 2b) === Run information === Scheme: weka.classifiers.rules.Prism Relation: daten_aufgabe1 Instances: 20 Attributes: 4 Textilien Geschenkartikel Durchschnittspreis Klasse Test mode: evaluate on training data === Classifier model (full training set) === Prism rules ---------If Geschenkartikel = wenig and Durchschnittspreis = mittel then T If Textilien = viel and Geschenkartikel = wenig and Durchschnittspreis = niedrig then T If Durchschnittspreis = niedrig and Textilien = mittel then N If Durchschnittspreis = niedrig and Textilien = wenig and Geschenkartikel = mittel then N If Durchschnittspreis = niedrig and Textilien = wenig 5 and Geschenkartikel = wenig then N If Geschenkartikel = viel and Durchschnittspreis = niedrig then G If Geschenkartikel = viel and Textilien = wenig and Durchschnittspreis = mittel then G If Durchschnittspreis = hoch then TG If Textilien = viel and Geschenkartikel = mittel then TG If Geschenkartikel = viel and Textilien = mittel then TG If Textilien = viel and Geschenkartikel = viel then TG Time taken to build model: 0.01 seconds === Evaluation on training set === === Summary === Correctly Classified Instances 20 100 % Incorrectly Classified Instances 0 0 % Kappa statistic 1 Mean absolute error 0 Root mean squared error 0 Relative absolute error 0 % Root relative squared error 0 % Total Number of Instances 20 === Detailed Accuracy By Class === 6 TP Rate FP Rate Precision Recall F-Measure Class 1 0 1 1 1 T 1 0 1 1 1 N 1 0 1 1 1 G 1 0 1 1 1 TG === Confusion Matrix === a b c d <-- classified as 3 0 0 0 | a = T 0 5 0 0 | b = N 0 0 3 0 | c = G 0 0 0 9 | d = TG 7