Как рассчитать ROC для многопеременной модели RNN?
Мне нужно рассчитать кривую ro c для моей модели RNN LSTM Keras с несколькими переменными.
Это мой набор данных
(число пациентов, время в миль / сек., нормализация X Y и Z, эксцесс, перекос, наклон, крен и рыскание, метка) соответственно.
1,15, -0.248010047716,0.00378335508419, -0,0152548459993, -86.3738760481,0.872322164158, -3.51314800063,0
1,31, -0.248010047716,0.00378335508419, -0,0152548459993, -86.3738760481,0.872322164158, -3.51314800063,0
1,46, -0.267422664673,0.0051143782875, -0,0191247001961, -85.7662354031,1.0928406847, -4.08015176908,0
1,62, -0.267422664673,0.0051143782875, -0,0191247001961, -85.7662354031,1.0928406847, -4.08015176908,0
Вот что я попробовал:
n = x_train.shape[0]
n2 = x_test.shape[0]
L = 32
X_train_seq = []
Y_train_seq = []
for k in range(n - L + 1):
X_train_seq.append(x_train[k : k + L])
Y_train_seq.append(y_train[k : k + L])
X_test_seq = []
Y_test_seq = []
for k in range(n2 - L + 1):
X_test_seq.append(x_test[k : k + L])
Y_test_seq.append(y_test[k : k + L])
X_train_seq = np.array(X_train_seq)
Y_train_seq = np.array(Y_train_seq)
X_test_seq = np.array(X_test_seq)
Y_test_seq = np.array(Y_test_seq)
model = Sequential()
model.add(LSTM(64, input_shape=(32, 5),
activation='tanh'))
model.add(Dense(32, activation='sigmoid' ))
model.compile(loss='binary_crossentropy',
optimizer='adam',
metrics=['accuracy'])
#ROC Curve
y_pred_keras = model.predict(X_test_seq, batch_size = 200).ravel()
fpr_keras, tpr_keras, thresholds_keras = roc_curve(y_test, y_pred_keras)
#AUC
auc_keras = auc(fpr_keras, tpr_keras)
Но это дает мне следующую ошибку:
ValueError: Found input variables with inconsistent numbers of samples: [502203, 16069504]
есть еще одна проблема: мои тренировочные образцы составляют 1 415 684, а тестирование - 502 203
Но при печати фигуры следующих х и у
X_train_seq = np.array(X_train_seq)
Y_train_seq = np.array(Y_train_seq)
X_test_seq = np.array(X_test_seq)
Y_test_seq = np.array(Y_test_seq)
Это дает мне 1 415 653 для обучения и 502 172 для тестирования