Bien que la réponse qui a été marquée ici soit correcte, je pense que vous cherchiez une explication différente pour découvrir ce qui s'est passé dans votre code. J'ai eu exactement le même problème lors de l'exécution d'un modèle.
Voici ce qui se passe: vous entraînez votre modèle avec la variable prédite dans le cadre de votre ensemble de données. Voici un exemple de ce qui m'arrivait sans même le remarquer:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns[:-1]]
Dans ce code, je veux prédire la valeur de 'COL3' ... mais, si vous regardez train_X, je lui dis de récupérer chaque colonne sauf la dernière, donc son entrée COL1 COL2 et COL3, pas COL4, et essayer de prédire COL3 qui fait partie de train_X.
J'ai corrigé cela en déplaçant simplement les colonnes, en déplaçant manuellement COL3 dans Excel pour être la dernière colonne de mon ensemble de données (maintenant en remplacement de COL4), puis:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL4']
train_X = train[train.columns[:-1]]
Si vous ne voulez pas le déplacer dans Excel et que vous voulez simplement le faire par code, alors:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns['COL1','COL2','COL4']]
Notez maintenant comment j'ai déclaré train_X, pour inclure toutes les colonnes sauf COL3, qui fait partie de train_Y.
J'espère que ça aide.