Übung 4.8 zu Einführung in Maschinelles Lernen (PD Stefan Bosse)

Prädiktorfunktionen mit Neuronalen Netzen

Prädiktorfunktionen mit Neuronalen Netzen
Allgemeine Hinweise
Daten
Numerische Daten
Ein einfaches Netzwerk
Vorbermerkung
Eine KNN-basierte Prädiktorfunktion
Daten und Datenteilung
Die MLP Prädiktorfunktion
Test
Datennormalisierung
Das EXOR Beispiel
Daten
Modell
Training
Test
Aufgaben

Allgemeine Hinweise

this.data=[];
var self=this;
function foo( )  {
  self.push([1,2,3,4])
}

Daten

Numerische Daten

DATA: Variable State.dataTI01 Type: {pclass, survived, name, sex, age, sibsp, parch, ticket, fare, cabin, embarked, boat, body, home.dest} []

X: { class,name,sex,age,sibsp,parch,ticket,fare,cabin,embarked,boat,body }
Y: { survival }

"This is a classic dataset used in many data mining tutorials and demos -- 
perfect for getting started with exploratory analysis and building binary 
classification models to predict survival."

Data covers passengers only, not crew.
Features

    survival - Survival (0 = No; 1 = Yes)
    class - Passenger Class (1 = 1st; 2 = 2nd; 3 = 3rd)
    name - Name
    sex - Sex
    age - Age
    sibsp - Number of Siblings/Spouses Aboard
    parch - Number of Parents/Children Aboard
    ticket - Ticket Number
    fare - Passenger Fare
    cabin - Cabin
    embarked - Port of Embarkation (C = Cherbourg; Q = Queenstown; S = Southampton)
    boat - Lifeboat (if survived)
    body - Body number (if did not survive and body was recovered)

Instances: 1309 (one instance per passenger)
X,Y=Klasse={N,P}

 ▸ 
 ✗ 
 ≡ 

Ein einfaches Netzwerk

Vorbermerkung

Eine KNN-basierte Prädiktorfunktion

Nachfolgend wird gezeigt wie auf einfachen numerischen oder kategorischen Daten eine einfache Prädiktorfunktion algorithmisch durch Tarining erzeugt werden kann.

Daten und Datenteilung

Beispiel Datentabelle

 ▸ 
 ✗ 
 ≡ 

Die MLP Prädiktorfunktion

Beispiel Erzeugung Prädiktorfunktion MLP

 ▸ 
 ✗ 
 ≡ 

Anders als bei Entscheidungsbäumen können KNN mehrere Zielvariablen ausgeben!

Beispiel Training Prädiktorfunktion MLP

 ▸ 
 ✗ 
 ≡ 

Test

Test Prädiktorfunktion MLP

 ▸ 
 ✗ 
 ≡ 

Test Prädiktorfunktion MLP

 ▸ 
 ✗ 
 ≡ 

Datennormalisierung

Datennormalisierung

 ▸ 
 ✗ 
 ≡ 

Frage. Warum ist die automatische Skalierung der Trainings- und Testdaten evtl. problematisch?

Datenexpansion

 ▸ 
 ✗ 
 ≡ 

Das EXOR Beispiel

Daten

EXOR Daten

 ▸ 
 ✗ 
 ≡ 

Modell

EXOR KNN Modell

 ▸ 
 ✗ 
 ≡ 

Training

EXOR KNN Modell Training

 ▸ 
 ✗ 
 ≡ 

Test

EXOR KNN Modell Test

 ▸ 
 ✗ 
 ≡ 

Aufgaben

Punkte:1./22./23./24./25./2
Die Daten

 ▸ 
 ✗ 
 ≡ 

Aufgabe.

Benutze D=this.data und führe bei Datenteilung wieder die Transformation und Skalierung durch (siehe oben).

Versuche zunächst ein Modell mit einem Ausgangsneuron für y. Wenn es keine gute Fehlerkonvergenz beim Training gibt können auch zwei getrennte Ausgangsneuronen für y=0 und y=1 erzeugt und trainiert werden (d.h. One-hot Kodierung der y-Variable für die beiden Klassensymbol 0 und 1) Dann muss die y-Spalte der Datentabelle entsprechend überarbeitet werden.

  1. Teile den Datensatz in Trainings- und Testdaten. Wähle eine geeignete Verteilung. Wiedehole die Parititionierung ggfs. wenn 2./3./4. keine guten Ergebnisse liefern.
  2. Erstelle das MLP Modell (this.model). Wähle mindestens drei Konfigurationen (Variation der inneren Schichten des KNN, auch ohne innere Schicht)
  3. Mit dem MLP Algorithmus soll ein Modell trainiert werden. Bestimme die Trainingszeit (model.time gibt die Trainingszeit des letzten Durchlaufs an), in Abähngigkeit der Epochen (Trainingsdurchläufe). Wie ist der Fortschritt beim MSE und der KE?
  4. Teste Ergebnisse und bestimme die Fehlerrate für die Trainings- und Testdaten. Dazu muss der Wert des Ausgangsneurons diskretisiert werden (Threshold z.B. 0.5). Untersuche die Fehlerraten (Gesamt, FP, FN). Am Schwellwert drehen und optimeiren.
  5. Woran könnte es liegen dass eine Reihe von Instanzen schlecht vorhergesagt werden? Dazu die Eingabevariablen untersuchen (auch die kont. Ausgabewerte von y). Auch den Ursprung der Daten und die Ereignissituation bewerten (Schiffsunglück!)

Datenteilung

 ▸ 
 ✗ 
 ≡ 

Erstellung MLP Modell

 ▸ 
 ✗ 
 ≡ 

MLP Modell und Training

 ▸ 
 ✗ 
 ≡ 

MLP Test

 ▸ 
 ✗ 
 ≡ 




Hilfe



Einreichung (Assignment #08-34505 )



Prüfen



Bewerten (Lehrer)




Created by the NoteBook Compiler Ver. 1.8.11 (c) Dr. Stefan Bosse (Thu Jan 14 2021 16:15:27 GMT+0100 (CET))