Sementara jawaban yang ditandai di sini benar, saya pikir Anda mencari penjelasan berbeda untuk mengetahui apa yang terjadi dalam kode Anda. Saya memiliki masalah yang sama persis berjalan melalui model.
Inilah yang terjadi: Anda sedang melatih model Anda dengan variabel yang diprediksi sebagai bagian dari kumpulan data Anda. Inilah contoh apa yang terjadi pada saya tanpa menyadarinya:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns[:-1]]
Dalam kode ini, saya ingin memprediksi nilai 'COL3' ... tetapi, jika Anda melihat train_X, saya mengatakannya untuk mengambil setiap kolom kecuali yang terakhir, jadi itu memasukkan COL1 COL2 dan COL3, bukan COL4, dan mencoba memprediksi COL3 yang merupakan bagian dari train_X.
Saya memperbaikinya dengan hanya memindahkan kolom, secara manual memindahkan COL3 di Excel menjadi kolom terakhir dalam kumpulan data saya (sekarang mengambil tempat COL4), dan kemudian:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL4']
train_X = train[train.columns[:-1]]
Jika Anda tidak ingin memindahkannya di Excel, dan ingin melakukannya dengan kode saja:
df = pd.read_csv('file.csv')
df.columns = ['COL1','COL2','COL3','COL4']
train_Y = train['COL3']
train_X = train[train.columns['COL1','COL2','COL4']]
Perhatikan sekarang bagaimana saya menyatakan train_X, untuk memasukkan semua kolom kecuali COL3, yang merupakan bagian dari train_Y.
Saya harap itu membantu.