Mentre la risposta che è stata contrassegnata qui è corretta, penso che stavi cercando una spiegazione diversa per scoprire cosa è successo nel tuo codice. Ho avuto lo stesso identico problema nell'esecuzione di un modello.
Ecco cosa sta succedendo: stai addestrando il tuo modello con la variabile prevista come parte del tuo set di dati. Ecco un esempio di ciò che mi stava accadendo senza nemmeno accorgermene:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns[:-1]]
In questo codice, voglio prevedere il valore di "COL3" ... ma, se guardi train_X, gli dico di recuperare ogni colonna tranne l'ultima, quindi sta introducendo COL1 COL2 e COL3, non COL4, e cercando di prevedere COL3 che fa parte di train_X.
Ho corretto questo semplicemente spostando le colonne, spostando manualmente COL3 in Excel per essere l'ultima colonna nel mio set di dati (ora in corso di COL4), quindi:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL4']
train_X = train[train.columns[:-1]]
Se non vuoi spostarlo in Excel e vuoi farlo semplicemente per codice, allora:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns['COL1','COL2','COL4']]
Nota ora come ho dichiarato train_X, per includere tutte le colonne tranne COL3, che fa parte di train_Y.
Spero che aiuti.