3.8 Übungsaufgabe Lineare Regression

Ziel der Übung

In dieser Übungsaufgabe werden wir mit KNIME zwei Workflows aufbauen, in denen Sie den Umgang mit der linearen Regression lernen und ein entsprechendes Modell auf die Daten trainieren. In dem abschließenden Aufgabenteil werden Sie die Kreuzvalidierung auf das Regressionsmodell anwenden und untersuchen.

Vorbereitetes Übungsmaterial:
Lineare Regression

3.8.1 Regression supereinfach

In dieser ersten Übungsaufgabe untersuchen Sie in einem Workflow einen einfachen Gehaltsdatensatz mit einer abhängigen Variable und einer unabhängigen Variable.

  1. Öffnen Sie den vorbereiteten Workflow 01-lr-salaries, prüfen Sie den File Reader-Knoten für salaries.csv und machen Sie sich mit den Daten vertraut.
  2. Verbinden Sie die Daten mit einem Linear Regression Learner Knoten und trainieren Sie das Modell.
  3. Schauen Sie sich das Ergebnis des Regressionsmodells an (Scatterplot sowie die Koeffizienten), verifizieren Sie Koeffizienten und .
    • Was bedeutet das Regressionsmodell in diesem Beispiel in Worten?
  4. Probieren Sie die Polynomial Regression Learner aus, verändern Sie in der Konfiguration den Grad des Polynoms und betrachten das Ergebnis.
  5. Speichern Sie Ihren Workflow!

3.8.2 Vorhersage von Krankenkosten mit einem Regressionsmodell

Im zweiten Beispiel nehmen wir Daten einer Versicherung, um mit einem Regressionsmodell die voraussichtlichen Kosten vorherzusagen. Wir gehen dabei nach CRISP-DM (Abschnitt 1.2) vor.

Aufgabe 1 — Business Understanding

Eine Versicherung hat Daten zu medizinischen Kosten sowie weiteren Daten von Versicherten. Ziel ist die Vorhersage von Kosten auf der Basis der Versichertendaten. Mit einem guten Modell kann das individuelle Risiko eines Versicherten ermittelt werden und darauf aufbauend könnten zum Beispiel Prämienbeiträge kalkuliert werden oder aber man kann diese Daten nutzen, um Marketing für spezielle Tarife zu betreiben. (Da wir nichts über das reale Szenario des Unternehmens, der Daten sowie des Machine Learning Projekts wissen, gibt es keine weiteren Aktivitäten zu diesem Schritt in dieser Aufgabe.)

Aufgabe 2 — Data Understanding

Im Data Understanding werden wir die Daten explorativ untersuchen und mit deskriptiven Methoden analysieren.

  1. Öffnen Sie den Workflow 02-lr-insurance, und machen Sie sich mit den Daten vertraut.
  2. Im ersten Schritt untersuchen wir die Daten explorativ
    • Welche Variablen gibt es (numerisch / nominal)?
    • Verteilungen, Wertebereiche, “missing values”?
    • Unsere Zielvariable ist die Variable charges
    • Über den Knoten Box Plot kann man prüfen, ob es Ausreißer gibt
  3. Nutzen Sie einen Scatterplot um die Daten zu visualisieren.
  4. Welches Attribut könnte für die spätere Analyse wenig hilfreich sein, warum ist das so?
  5. Korrelationen der unabhängigen Variablen: Hier helfen die Knoten Linear Correlation sowie die Scatter Matrix Welche Variablen sind korreliert?
  6. Außerdem erkennt man hier auch schon die dominante (numerische) Variable für die Zielvariable.

Aufgabe 3 — Data Preparation (Iteration 1)

Folgende Schritte sind bereits erledigt:

  • Alle Daten sind bereits in einer Tabelle zusammengefasst
  • Es gibt keine fehlenden Werte

Zur Vorbereitung der Daten werden folgende Aktionen benötigt:

  • Entfernen Sie extreme Ausreißer
  • Stellen Sie die Ergebnisse in einem 2D/3D Scatterplot dar. Um eine bessere Übersicht zu erhalten, sollten Sie einen Color Manager vorschalten – das Attribut smoker ist hier sehr aufschlussreich. (Diese Teilaufgabe kann auch dem Prozess des Data Understanding zugeordnet werden)

Aufgabe 4 — Modelling (Iteration 1)

  1. Wir können direkt einen Regression Learner Knoten anbinden und trainieren. Verwenden Sie zunächst alle Features. Die nominalen Variablen werden automatisch als numerische Dummyvariablen codiert.
  2. Wie ist die Interpretation der Koeffizienten?
  3. Welche Aussage über die Variablen können anhand der P-Werte getroffen werden?
  4. Welche Variablen haben keinen Einfluss auf die Zielvariable?

Aufgabe 5 — Data Preparation (Iteration 2)

Nach dem Modelling stellen wir fest, dass einige Variablen keinen Einfluss auf das Modell haben. Die Daten sollen neu vorbereitet werden:

  • Entfernen Sie die Spalte region
  • Entfernen Sie die Spalte sex

Aufgabe 6 — Modelling (Iteration 2)

Nachdem Sie die überflüssigen Attribute entfernt haben, trainieren Sie das Modell neu. Wie ist die Interpretation der Koeffizienten?

Aufgabe 7 — Evaluation (Teil 1)

Mit Hilfe von Testdaten, die vor dem Trainieren eines Modells zur Seite gelegt wurden (partitioning), können wir überprüfen, ob eine Generalisierung unseres Modells stattfindet (Under-, Overfitting)

  1. Aufteilung in Test und Trainingsdaten: Damit wir herausfinden, wie gut unser Modell generalisiert, teilen wir die Daten in Test und Trainingsdaten auf. Fügen Sie dazu den Knoten Partitioning vor dem Learner ein. Konfigurieren Sie das Verhältnis (Trainings- zu Testdaten). Anschließend benötigen Sie noch den Regression Predictor und Numeric Scorer, der und die Fehler des Modells ausrechnet:
    • Was sagen der Wert des und die Fehler des Modells in diesem Anwendungsfall konkret aus? Lesen Sie in der Dokumentation der Knoten nach, wozu dient der blaue Ausgang / Eingang des Linear Regression Learner / Regression Predictor?
  2. Sie sollten nun die Güte des Modells mit anderen Modellen vergleichen. Als Alternative zum Linear Regression Learner bietet sich der Polynomial Regression Learner an. Führen Sie die Phase des Modelling erneut für den Polynomial Regression Learner aus.
    • Problem: Der Knoten kann nur numerische Variablen verwenden. Aufgrund des starken Einflusses der Variablen smoker muss diese vorher in eine Zahl umgewandelt werden, damit das Polynom-Modell funktioniert. Dies erfordert einen Rückschritt zum Prozess der Data Preparation.

Aufgabe 8 — Data Preparation (Iteration 3)

  1. Um das das genannte Problem zu lösen, wandeln Sie mithilfe des Category to Number Knoten das Attribut smoker in einen numerischen Wert um.
  2. Optimierung des Modells mit neuen Features: Sie können das Modell verbessern, indem Sie versuchen neue Variablen einzuführen. Über den Knoten Math Formula können Sie ein neues Feature einfügen, das Sie über eine Formel berechnen.
    • Wir können wir eine Variable einfügen, um den nichtlinearen Verlauf der Kosten mit dem Alter wiederzugeben.
    • Wir können besonders übergewichtige Versicherte (), die auch rauchen mit einem Extrafaktor gewichten: Dazu muss vorher die Kategorie smoker in einen numerischer Wert umgewandelt werden und anschließend folgende Formel verwendet werden:

      if($bmi$ > 30, 1, 0) * if($smoker$ == 0, 1, 0)

      Mit diesem “Feature Engineering” lässt sich steigern!

Aufgabe 9 — Modelling (Iteration 3)

Trainieren Sie ein neues Modell mit Hilfe des Polynomial Regression Learner. Stellen Sie bei der Konfiguration den maximum polynomial degree auf 5. Achtung, die Polynomial Regression erlaubt keine Auswertung von Attributen die direkt voneinander abhängen. Welche Attribute könnten in diesem Beispiel gemeint sein? Wie ist die Interpretation der Koeffizienten? Was sagen der Wert des und die Fehler des Modells in diesem Anwendungsfall konkret aus?

Aufgabe 10 — Evaluation (Teil 2)

Sie sollten nun die Güte der beiden trainierten Modelle vergleichen. Hierzu müssen Sie auch für das neu gelernte Modell wie in Evaluation (Teil 1) verfahren. Nehmen Sie 70 % der Daten zum Lernen und 30 % der Daten zum Testen. Werten Sie die Ergebnisse mit dem Regression Predictor Knoten und dem Numeric Scorer Knoten aus.

  • Welches Modell trifft bessere Vorhersagen?
  • Hatten Sie dieses Ergebnis erwartet? Begründen Sie Ihre Antwort.

Aufgabe 11 — Evaluation (Teil 3)

Erstellen Sie mit dem Metaknoten Cross Validation eine Kreuzvalidierung Ihres linearen Modells. Dazu müssen Sie den Linear Regression Learner und Regression Predictor in den Metaknoten einsetzen. An den Ausgang des Metaknotens können Sie ebenfalls wieder den Numeric Scorer anschließen.

  • Was ist eine Kreuzvalidierung?
  • verbessert sich das Ergebnis?