Je veux calculer la précision, le rappel et le score F1 pour mon modèle binaire KerasClassifier, mais je ne trouve aucune solution.
Voici mon code actuel:
# Split dataset in train and test data
X_train, X_test, Y_train, Y_test = train_test_split(normalized_X, Y, test_size=0.3, random_state=seed)
# Build the model
model = Sequential()
model.add(Dense(23, input_dim=45, kernel_initializer='normal', activation='relu'))
model.add(Dense(1, kernel_initializer='normal', activation='sigmoid'))
# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
tensorboard = TensorBoard(log_dir="logs/{}".format(time.time()))
time_callback = TimeHistory()
# Fit the model
history = model.fit(X_train, Y_train, validation_split=0.3, epochs=200, batch_size=5, verbose=1, callbacks=[tensorboard, time_callback])
Et puis je prédit sur de nouvelles données de test, et j'obtiens la matrice de confusion comme ceci:
y_pred = model.predict(X_test)
y_pred =(y_pred>0.5)
list(y_pred)
cm = confusion_matrix(Y_test, y_pred)
print(cm)
Mais existe-t-il une solution pour obtenir le score d'exactitude, le score F1, la précision et le rappel? (Si ce n'est pas compliqué, également le score de validation croisée, mais pas nécessaire pour cette réponse)
Merci pour toute aide!
Vous pouvez utiliser le rapport de classification scikit-learn . Pour convertir vos étiquettes en un format numérique ou binaire jeter un oeil à l' encodeur d'étiquettes scikit-learn .
ce qui vous donne (sortie copiée de l'exemple scikit-learn):
la source
Vous pouvez également essayer comme mentionné ci-dessous.
la source
Essayez ceci: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html avec Y_test, y_pred comme paramètres.
la source