Wie erstellt man in Python einen Plot der die Regressionsgerade einer multiplen linearen Regression darstellt?
Moin, ich bin gerade dabei die explainable AI Methode LIME selber zu implementieren und habe habe gerade ein Problem damit die Ergebnisse darzustellen.
Kurz zu meinem Vorgehen:
- ich habe ein neuronales Netz auf einem Datensatz mit 4 Variablen trainiert: Temperatur, Luftfeuchtigkeit, Windgeschwindigkeit und ob die Anzahl der geliehenen Fahrräder an einem Tag über oder unter dem Durchschnitt liegen wird (Klassifikationsproblem)
- Dann habe ich Samples der Daten aus einer Normalverteilung gezogen und diese mit dem LIME Kernel gewichtet, wobei hier die Nähe zu dem Datenpunkt, der erklärt werden soll, eine Rolle spielt
- Anschließen habe ich die Samples mit dem ML Model klassifiziert
- Danach habe ich eine multiple gewichtete Lineare Regression mit den Samples, deren Gewichten und deren Klassifikation gefittet, wobei ich das feature Windgeschwindigkeit rausgeschmissen hab, damit man die Ergebnisse gut in einem Plot darstellen kann
- Mein Plot sieht folgendermaßen aus: Temperatur auf der X Achse, Luftfeuchtigkeit auf der Y Achse und die Farben der Punkte stellt deren Klassifikation dar -> Wie kann ich nun die Regressionsgerade in den Plot einzeichnen um die Entscheidungsgrenze darzustellen ? (Ich benutze Matplotlib)
import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
# Annahme: Du hast bereits deine Daten und deine Regression durchgeführt
# Beispiel-Daten
temperatur = np.random.rand(100) * 30 # Beispielwerte für Temperatur
luftfeuchtigkeit = np.random.rand(100) * 100 # Beispielwerte für Luftfeuchtigkeit
klassifikation = np.random.randint(0, 2, size=100) # Beispielwerte für Klassifikation (0 oder 1)
# Annahme: Du hast bereits LIME durchgeführt und die gewichtete lineare Regression durchgeführt
# Beispiel-Koeffizienten der linearen Regression
coefficients = np.array([2.5, -1.8])
# Plot der Datenpunkte
plt.scatter(temperatur, luftfeuchtigkeit, c=klassifikation, cmap=plt.cm.Paired)
# Berechne die Regressionsgerade
x_values = np.linspace(min(temperatur), max(temperatur), 100)
y_values = (-coefficients[0] * x_values) / coefficients[1]
# Füge die Regressionsgerade zum Plot hinzu
plt.plot(x_values, y_values, color=’black’, linewidth=2, label=’Regressionsgerade’)
# Beschriftungen und Legende
plt.xlabel(‘Temperatur’)
plt.ylabel(‘Luftfeuchtigkeit’)
plt.legend()
# Zeige den Plot
plt.show()
Stelle sicher, dass die Anzahl der Koeffizienten in
mit der Anzahl der Features in deinem Modell übereinstimmt. Dieses Beispiel geht von zwei Features aus (Temperatur und Luftfeuchtigkeit), daher gibt es zwei Koeffizienten.