Saya memiliki kumpulan data dengan bentuk (9430, 12). Masalahnya muncul saat pemasangan: semua 12 fitur adalah X dan Y saya. Maksud saya, ini adalah model pembelajaran online tempat saya melatih data[i] saya dan kemudian memprediksi data[i+1]. Jadi seperti yang Anda lihat, dan seperti yang saya katakan sebelumnya, Y = X.

data.shape = (9430, 12)
Y = X = data.values
model.fit(X, Y)

Apakah ini salah? Jika ya, bagaimana lagi saya bisa melatihnya?

0
yoyoyo 20 November 2020, 12:52

1 menjawab

Jawaban Terbaik

Saya mengerti bahwa tujuan Anda adalah, pada setiap langkah waktu, Anda ingin memprediksi masukan dari langkah waktu berikutnya.

Saat ini Anda mencoba memprediksi output yang sama dengan yang Anda lewati sebagai input. Mengingat Y[0] = X[0], Y[1] = X[1], dan seterusnya.

Anda harus memindahkan bingkai jendela satu per satu dalam matriks Ys. Misalnya, bayangkan X adalah array numpy, Anda dapat melakukan:

import tensorflow as tf
Y = tf.concat((np.copy(X[1:,:]),np.zeros((1,12))), axis=0)
X = tf.convert_to_tensor(X)

Kode ini akan mencapai: Y[0] = X[1] , Y[1] = X[2, yang merupakan output yang diinginkan untuk dapat memprediksi, pada setiap titik, yang berikut ini .

Setelah dua tensor siap, Anda dapat menyesuaikan model dengan Tensorflow atau Keras. Harap diingat bahwa baris terakhir dalam matriks Ys hanyalah baris dummy dari 0 karena Anda tidak tahu apa kebenaran dasar untuk langkah berikutnya. Mungkin Anda harus melewatkannya dari dataset Anda saat melakukan pelatihan.

Selain itu, untuk memprediksi data sekuensial, Jaringan Syaraf Tiruan (seperti LSTM, Long Short Term Memory) lebih sesuai. Saya sarankan Anda melihat mereka :)

2
rodvictor 20 November 2020, 10:25