Obwohl die hier markierte Antwort korrekt ist, haben Sie nach einer anderen Erklärung gesucht, um herauszufinden, was in Ihrem Code passiert ist. Ich hatte genau das gleiche Problem beim Durchlaufen eines Modells.
Folgendes ist los: Sie trainieren Ihr Modell mit der vorhergesagten Variablen als Teil Ihres Datensatzes. Hier ist ein Beispiel von dem, was mir einfiel, ohne es überhaupt zu bemerken:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns[:-1]]
In diesem Code möchte ich den Wert von 'COL3' vorhersagen ... aber wenn Sie sich train_X ansehen, sage ich, dass jede Spalte außer der letzten abgerufen werden soll, sodass COL1 COL2 und COL3 eingegeben werden und nicht COL4. und versuchen, COL3 vorherzusagen, das Teil von train_X ist.
Ich habe dies korrigiert, indem ich nur die Spalten verschoben habe, COL3 manuell in Excel als letzte Spalte in meinem Datensatz verschoben habe (jetzt statt COL4) und dann:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL4']
train_X = train[train.columns[:-1]]
Wenn Sie es nicht in Excel verschieben möchten und es einfach per Code ausführen möchten, gehen Sie wie folgt vor:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns['COL1','COL2','COL4']]
Beachten Sie nun, wie ich train_X deklariert habe, um alle Spalten mit Ausnahme von COL3 einzuschließen, das Teil von train_Y ist.
Ich hoffe das hilft.