Klassifikations- und Regressionsbäume mit Datenanalyse (Teil 2) (Stefan Bosse) [6.2024]

Übung 5 - Klassifikations- und Regressionsbäume mit Datenanalyse (Teil 2)

Übung 5 - Klassifikations- und Regressionsbäume mit Datenanalyse (Teil 2)
Vorwort
Literatur
Daten
Datenselektion
PCA
Datenpartitionierung
Entscheidungsbäume (1)
C4.5 T
C5.0 T
Entscheidungsbaumlerner (2)
ICE
RF
RT

Vorwort

Diese Übung baut auf der vorherigen auf. Hier soll nun die Datenanalyse und Datentransformation näher betrachtet werden.

Bitte folgenden Code ausführen um notwendige Bibliotheken zu laden. Nicht erforderlich bei nativer R Software.


R Set-up

 ▸ 
[]
 ✗ 
 ≡ 

Literatur

Daten

https://www.kaggle.com/datasets/purushottamnawale/materials

Materials and their Mechanical Properties - Mechanical Properties of Design Materials: A Comprehensive Material Dataset

The original material dataset includes the following mechanical properties of metals:

Es gibt eine zusäztliche Spalte MaterialClass die die Einträge in folgende Materialkassen unterteilt:

Aluminum, Brass, Copper, Magnesium, Iron, Steel

DATA: Variable dataMat Type: { Std : string [924], ID : string [924], Material : string [924], Heat treatment : string [924], Su : number [924], Sy : number [924], A5 : (number|string)[924], Bhn : (number|string)[924], E : number [924], G : number [924], mu : number [924], Ro : number [924], pH : (string|number)[924], Desc : string [924], HV : (string|number)[924], MaterialClass : string [924] }

Der Datensatz ist bereits im Notebook enthalten und wird als Datenrahmen/Datentabelle (data.frame) data.mat zur Verfügung gestellt!

Alle nachfolgenden Berechnungen sollen über den Punkt "." an den Namen des Datensatzes angehängt werden.


Zusammenfassung der Datensätze

 ▸ 
[]
 ✗ 
 ≡ 

Datenselektion

Wiederholung: Datentabllen lassen sich zeilen- und spaltenweise zerlegen bzw. filtern. Dazu reicht i.A. der Basisoperator [] bzw. [[]].

Teilweise wird bei einer Selektion ein Vektor oder einspaltiger Datenrahmen mit einem Element zurückgegeben. Um direkt den Elementwert zu erhaltn muss der [[]] Operator verwendet werden!

Die Datenselektoren können auf der linken und rechten Seite einer Zuweisung verwendet werden (schreiben und lesen). Datentabellen (und Matrizen) können mittels der cbind und rbind Funktionen spalten- oder zeilenweise kombiniert werden.

PCA

Die Hauptkomponentenanalyse kann wichtige Hinweise auf (lineare) Abhängigkeiten der Eingabeattribute liefern. Sie wird nur auf die Eingabeattribute X angewendet! Die prcomp(data,formula) Funktion führt die Hauptkomponentenanalyse durch. Sie gibt eine Art Liste mit den wichtigsten Elemente rotation und sdev. Die Datentabelle rotation enthält die Eigenvektoren, der Vektor sdev die Eigenwerte.

Aufgabe. Lese https://stat.ethz.ch/R-manual/R-devel/library/stats/html/prcomp.html. Führe die PCA für die Tabelle mit prcomp(data) durch. Analysiere die Ausgabe (z.b. mit summary und names). Was gibt prcomp aus?


PCA der Datensätze

 ▸ 
[]
 ✗ 
 ≡ 

predict gibt wieder eine Datentabelle (data.frame) zurück. Spalten können mit dem generischen Selektor [,c(1,2)] unter Verwendung der numerischen Spaltennummern oder unter Angabe der Spaltennamen [,c("PC1","PC2")] erfolgen. Die PC sind nach ihrer "Stärke" sortiert, daher verwendet man die PC Vektoren der Reihe nach. Wichtig: Die Datentabelle muss die gleiche Anzahl von Spalten wie die PCA Tabelle haben!


PCA-basierte (Matrix) Transformation eines Datensatzes

 ▸ 
[]
 ✗ 
 ≡ 

Die neue transformierte Datentabelle besitzt die Spaltennamen PC1 usw., d.h. die die jeweilige Spalte wurde mit dem jeweilgen PC Vektor erzeugt.

Aufgabe. Übertrage nun obiges Beispiel auf die Materialkennwerttabelle. Wähle einige Variablen aus der Tabelle aus, z.B. {E,G,Ro,Su,Sy,HV'}, und erzeuge eine reduzierte Tabelle. Wenn die PCA durchgeführt wurde, kann die ursprüngliche (reduzierte) Datentabelle transformiert werden. Führe dies mit der predict(pca,data.mat.x) Funktion durch und weise das Ergebnis einer Variablen zu (z.B. data.mat.pca.t). Wähle geeignete (Anzahl von) PC Vektoren aus. Was ist bei den Werteverteilungen der PCA-transformierten Variablen zu beobachten?


PCA Analyse und PCA-basierte Transformation der Datensätze.

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Welchen Vorteil hat die Verwendung der PCA-transformierten und reduzierten Tabellen (also weniger PCs als ursprüngliche Variablen)?

Datenpartitionierung

Aufgabe. Teile die Datentabellen data.mat und data.mat.t auf.


Aufteilung von Datensätzen in Trainings- und Testdaten mit split Funktion

 ▸ 
[]
 ✗ 
 ≡ 

Entscheidungsbäume (1)

Hier soll jetzt zur vorherigen Übung die Wirkung der PCA-transformierten und reduzierten Datentabellen untersucht werden. Wieder mit C4.5 und C5.0 Modellen.

C4.5 T


C4.5 Entscheidungsbaum aus Daten erstellen. Man ist frei in der Auswahl der Eingabevariable x, y=MaterialClass (immer als letzte Variable)

 ▸ 
[]
 ✗ 
 ≡ 

C5.0 T


C6.0 Entscheidungsbaum: Training und Inferenz

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Wie ist die Modellgenauigkeit beim C4.5 uim Vergleich zum C5.0 bei Verwendung von PC1 und PC2? Wie bei nur PC1? Verändere auch die C5.0 Trainingsparameter. Welche Wirkung haben sie? Reicht PC1? Warum nicht PC3? Wie groß sind jweils die Bäume (Tiefe usw.)?

Entscheidungsbaumlerner (2)

ICE

ICE ist ein Klassifikator der mit Intervallarithmetik arbeitet. D.h. jede Attributvariable und deren Werte werden mit einem Unsicherheitsintervall x±εx versehen. Zwei unterschiedliche Werte a und b (einer Variablen) werden als ununterscheidbar angesehen wenn sich deren Intervalle [*a*-ε*a*+ε] und [*b*-ε*b*+ε] überlappen.

Der ICE kann mit der ice(data,epc=c(e1,e2,..),formula=y~a+b+c) Funktion erstellt werden. Es gibt einen optionallen merge Parameter der Ergebnisknoten zusammenfasst. Zuässige Werte für merge sind 0, 1 und 2.

predict liefert bei ice eine Tabelle mit (value,score) Spalten!

Aufgabe. Wende den ICE Lerner auf den Material Datensatz an. Benutze die Trainingsdaten für das Training. Ermittle den Fehler für die Trainings- und Testdaten. Wird ein Unterschied in der Baumstruktur im Vergleich zum C4.5/C5.0 sichtbar? Wichtig: Wähle geeignete ε Werte für die einzelnen Variablen. Es ist anzunehmen dass die Messungen im Datensatz eine Messunsicherheit von 1ß% besitzen. D.h. wenn der Mttelwert einer Varibale 1000 ist, dann w+re ε=100 zu wählen (10%). Wie verhält sich die Modellgenauigkeit wenn man ε variiert? Was fällt an dem ICE Baum auf (Struktur, Tiefe, Art) verglichen mit C5.0?


ICE Entscheidungsbaum: Material Datensatz. Wichtig ist hier die Angabe eines Unsicherheitswvektors ε (ein Element für jede Eingabevariable die hier zum Training verwendet wird)

 ▸ 
[]
 ✗ 
 ≡ 

RF

Der Random Forest Tree Lerner (https://github.com/karpathy/forestjs) leitet eine Vielzahl einfacher Bäume mit einfachen Regeln aus dem Traingsdatensatz ab. Die Menge an Bäumen wird schließlich bei der Inferenz im Ergebnis kombiniert (fusioniert). Es gibt das R Paket randomForest als Alternative.

Der RF kann mit der rf(data,formula=y~a+b+c) Funktion erstellt werden. Es gibt zwei wesentlich Parameter:

Auch hier gibt predict wieder eine Tabelle (value,score) zurück, wobei value bei kategorischen Variablen das Klassensymbol angibt.

Aufgabe. Wende den RF Lerner auf den Material Datensatz an. Benutze die Trainingsdaten für das Training. Wähle geeignete Variablen aus. Ermittle den Fehler für die Trainings- und Testdaten. Variiere die Parameter: was ändert sich? Welche Qualität hat das RF Modell im Vergleich zu C5.0?


RF Entscheidungsbaum: Material Datensatz

 ▸ 
[]
 ✗ 
 ≡ 

RT

Der Regressionsbaum wird für kontinuierliche Zielvariablen verwendet. Jetzt drehen wir die Prädiktion um: Eingabe soll eine die Materialklasse sein, Ausgabe einer der Materialparameter, z.B. E. Es gibt also ein Modell für einen materialkennwert.

Der RT Lerner (hier wink-regression-tree) erwartet wenigstens 60 Dateninstanzen.

Der RT kann mit der rt(data,formula=y~a+b+c,) Funktion erstellt werden. Es gibt fünf einstellbare Parameter:

Der RT Lerner wendet Varianzreduktion (der Zielvariablen) an um geeignete Teilungspunkte zu finden und Teilbäume zu erstellen. Der Algorithmus findet die beste Kandidatenspalte für die Aufteilung auf der Grundlage der maximalen Reduzierung in der Varianz ("Unordnung" oder maximaler Gewinn). Dabei werden die obigen Parameter als Randbedingungen bei der Suche und Baumerstellung verwendet.

Aufgabe. Wende den RT Lerner auf den Material Datensatz an. Benutze die Trainingsdaten für das Training. Ermittle den Fehler für die Trainings- und Testdaten (hier RMSE). Variiere die Parameter: was ändert sich? Findet eine kontinuierliche Regression der Zielvariablen bei der Inferenz statt oder ist diese auf das Training (also der Erstellung des Baumes) beschränkt? Wie gut ist das Modell (RMSE) im Vergleich zum randomisierten RMSE (median-bezigen)?


RT Entscheidungsbaum: Material Datensatz - Reverserd

 ▸ 
[]
 ✗ 
 ≡ 



Hilfe



Einreichung (Assignment #01-26082 )



Prüfen



Bewerten (Lehrer)




Created by the NoteBook Compiler Ver. 1.27.2 (c) Dr. Stefan Bosse (Thu Jun 20 2024 19:10:18 GMT+0200 (Central European Summer Time))