Seite 1 von 1

sklearn predict methode funktioniert zu gut?

Verfasst: Dienstag 19. April 2022, 14:22
von nichtSoGuter
Hallo,

ich habe die Trainigsdaten aufgesplittet in Labels und Features
Mit den Features (X) wird ein Model trainiert, welches "vorhersagen" treffen kann.
Label (y) sind die tatsächlichen Werte.

z.B.: die Daten über die Temperatur eines Gebiets über einen bestimmten Zeitraum sind Featuren Daten. Anhand dieser soll der Verbrauch an Heizöl in diesem Gebiet(=Label) "vorhergesagt" werden.
Also trainert man ein Model mit den Features. Das Model errechnet dann den Verbrauch an Heizöl der wahrscheinlich verbraucht wird. Die Ergebnisse des Models sollten bestenfalls so nah an den Label Werten sein wie möglich

Unten steht mein code bei dem ich die feature und label voneinander trenne (Achtung der Code unten hat nichts mit dem Heizölbeispiel zu tun)

Code: Alles auswählen

 
 # erstelle kopie der Trainingsdaten
trainingsdaten_kopie = strat_train_set.copy()
# y=Label, X=feature
y = trainingsdaten_kopie["median_house_value"].copy() #y ist ein Dataframe?
X = columnTransform.fit_transform(trainingsdaten_kopie) # X ist ein np.array
 
Dann trainiere ich das model mit den label und feature daten:

Code: Alles auswählen

# importiere LinearRegression Klasse
from sklearn.linear_model import LinearRegression
# erstelle Instanz der LinearRegressionKlasse
lin_reg = LinearRegression()
# Instanz lernt die Daten mit X
lin_reg.fit(X,y)
Nun möchte ich schauen wie gut die vorhersagen des Models sind:

Code: Alles auswählen

print("Prediction:", lin_reg.predict(X[:5]))
print("Labels:", list(some_label[:5]))

Die Ausgaben sind komplett identisch. Damit ist die Vorhersage entweder sehr gut oder das model funktioniert nicht so richtig bzw. ich habe einen fehler bei der implementierung der methode gemacht

Weiß jemand was der Grund ist, weshalb die vorhersage genau dem Ergebnis entspricht?

Vielen Dank im Voraus!

Re: sklearn predict methode funktioniert zu gut?

Verfasst: Dienstag 19. April 2022, 17:55
von ThomasL
Da sind zwei Riesenböcke drin.

1)
Du hast einen Datensatz strat_train_set
Daraus erstellst du die Labels y, die in der Spalte median_house_value stehen
Und dann erstellst du die Features X mit dem kompletten Datensatz, inklusive der Spalte median_house_value
und trainierst das Modell mit X und y.

2)
Wenn du dann mit den gleichen Features, mit denen du trainiert hast, dein Modell testest, kann gar nichts anderes bei rumkommen, als die Werte aus der Spalte median_house_value.

Also:

1) Die Labels müssen aus X verschwinden
2) Du muss deine Daten in Trainingsdaten und Testdaten aufteilen, das macht man so im ca. Verhältnis 80/20 oder 70/30.

Hier ein kostenloser Kurs, der das alles sehr gut erklärt.
https://courses.dataschool.io/introduct ... ikit-learn

Re: sklearn predict methode funktioniert zu gut?

Verfasst: Dienstag 19. April 2022, 18:19
von nichtSoGuter
Hallo ThomasL,

vielen Dank für deine große Hilfe. Das bringt mich schon sehr viel weiter:-)