Im zweiten Teil wird das Modell um weitere Eingabevariablen erweitert, darunter Niederschlagsmenge und Vegetationsindex. Anschließend wird die erweiterte Modellversion mit dem ursprünglichen Modell verglichen, um die Auswirkungen zusätzlicher Informationen auf die Vorhersagegenauigkeit zu untersuchen.
Autor:in
Zugehörigkeit
Sören Sparmann
Universität Paderborn
Veröffentlichungsdatum
30. Mai 2025
1 Multiple Lineare Regression
In Teil 1 haben wir festgestellt, dass die Oberflächentemperatur als alleinige Eingabevariable nicht ausreicht, um die Waldbrandgefahr zufriedenstellend genau vorherzusagen.
Deshalb erweitern wir das Modell – wie ursprünglich vorgesehen – um die zusätzlichen Variablen Vegetationsindex und Niederschlag.
2 Daten einlesen
Zunächst werden die historischen Daten erneut eingelesen, die als Grundlage für das Training des Vorhersagemodells dienen.
# Pandas Bibliothek unter dem Namen pd importierenimport pandas as pd# Daten einlesendf = pd.read_csv('data/fire_prediction.csv', index_col='time')# Daten ausgebendf
land_surface_temp
ndvi
precipitation
active_fires
time
2000-06-01
25.375011
0.735735
53.923725
14.617312
2000-07-01
20.209670
0.683060
124.440530
6.449579
2000-08-01
22.556900
0.666294
75.619480
8.319817
2000-09-01
18.529358
0.670358
85.977740
9.897439
2000-10-01
13.169103
0.651168
65.449170
5.179492
...
...
...
...
...
2023-02-01
2.926635
0.588160
23.885208
7.762980
2023-03-01
6.234475
0.593562
106.197395
3.853576
2023-04-01
12.250342
0.651034
39.400890
11.083784
2023-05-01
19.863577
0.702562
39.259007
21.962063
2023-06-01
26.107157
0.692752
76.053820
19.537877
277 rows × 4 columns
3 Erweiterte Modellannahme
Nun erweitern wir das Modell wie ursprünglich geplant, sodass auch die Variablen Vegetationsindex und Niederschlag in die Vorhersage einbezogen werden.
Da nun mehr als eine unabhängige Variable verwendet wird, handelt es sich um eine Multiple Lineare Regression (MLR).
Jede Eingabevariable erhält dabei einen eigenen Koeffizienten , der den Einfluss dieser Variable auf die Vorhersage gewichtet. Das Modell besitzt somit insgesamt vier Parameter: , , und .
Mathematisch ausgedrückt sieht das Modell wie folgt aus:
Abbildung 1: Lineares Modell
from sklearn.linear_model import LinearRegressionmodel = LinearRegression()model
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
Teilen sie den Datensatz nun in Trainings- und Validierungsdaten auf.
Verwenden Sie die gleichen Parameter (random_state=42, test_size=0.25) wie zuvor, um die Vergleichbar sicher zu stellen.
(5 Minuten)
Lösung
from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42)
6 Modell trainieren
Aufgabe 8
Trainieren Sie das Modell mit den Trainingsdaten.
(5 Minuten)
Lösung
Wie zuvor wird das Modell mit der Methode .fit(X, y) an die Daten angepasst.
model.fit(X_train, y_train)
LinearRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
LinearRegression()
7 Vorhersage machen
Aufgabe 9
Stelle dir vor, du verwendest das Modell in der Zukunft, um die Waldbrandgefahr vorherzusagen.
Im August 2025 wird folgende Messungen gemacht
Oberflächentemperatur: 35 C°
Vegetationsindex: 0.7
Niederschlag: 25 mm
Bestimme die zu erwartende Anzahl an Waldbränden!
(10 Minuten)
Lösung
Mit der Methode .predict() können wir die Anzahl der Waldbrände vorhersagen. Dabei ist darauf zu achten, dass die Reihenfolge der Werte mit der Definition von X übereinstimmen.
model.predict([ [35, 0.7, 25]])
array([23.55662869])
8 Modell evaluieren
Aufgabe 10
Evaluiere das Modell wie in Teil 1 gezeigt:
Erstelle ein Streudiagramm, das die vorhergesagten Werte den tatsächlichen gegenüberstellt.
Berechne den Score () des neuen Modells.
Hat sich die Güte des Modells durch das Hinzufügen der Variablen verbessert? Begründe!