Как рассчитать 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 для тестирования

0 ответов

Другие вопросы по тегам