How to get accuracy, F1, precision and recall, for a keras model?












3












$begingroup$


I want to compute the precision, recall and F1-score for my binary KerasClassifier model, but don't find any solution.



Here's my actual code:



# 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])


And then I am predicting on new test data, and getting the confusion matrix like this:



y_pred = model.predict(X_test)
y_pred =(y_pred>0.5)
list(y_pred)

cm = confusion_matrix(Y_test, y_pred)
print(cm)


But is there any solution to get the accuracy-score, the F1-score, the precision, and the recall? (If not complicated, also the cross-validation-score, but not necessary for this answer)



Thank you for any help!










share|improve this question









$endgroup$

















    3












    $begingroup$


    I want to compute the precision, recall and F1-score for my binary KerasClassifier model, but don't find any solution.



    Here's my actual code:



    # 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])


    And then I am predicting on new test data, and getting the confusion matrix like this:



    y_pred = model.predict(X_test)
    y_pred =(y_pred>0.5)
    list(y_pred)

    cm = confusion_matrix(Y_test, y_pred)
    print(cm)


    But is there any solution to get the accuracy-score, the F1-score, the precision, and the recall? (If not complicated, also the cross-validation-score, but not necessary for this answer)



    Thank you for any help!










    share|improve this question









    $endgroup$















      3












      3








      3





      $begingroup$


      I want to compute the precision, recall and F1-score for my binary KerasClassifier model, but don't find any solution.



      Here's my actual code:



      # 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])


      And then I am predicting on new test data, and getting the confusion matrix like this:



      y_pred = model.predict(X_test)
      y_pred =(y_pred>0.5)
      list(y_pred)

      cm = confusion_matrix(Y_test, y_pred)
      print(cm)


      But is there any solution to get the accuracy-score, the F1-score, the precision, and the recall? (If not complicated, also the cross-validation-score, but not necessary for this answer)



      Thank you for any help!










      share|improve this question









      $endgroup$




      I want to compute the precision, recall and F1-score for my binary KerasClassifier model, but don't find any solution.



      Here's my actual code:



      # 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])


      And then I am predicting on new test data, and getting the confusion matrix like this:



      y_pred = model.predict(X_test)
      y_pred =(y_pred>0.5)
      list(y_pred)

      cm = confusion_matrix(Y_test, y_pred)
      print(cm)


      But is there any solution to get the accuracy-score, the F1-score, the precision, and the recall? (If not complicated, also the cross-validation-score, but not necessary for this answer)



      Thank you for any help!







      machine-learning neural-network deep-learning classification keras






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked 13 hours ago









      ZelelBZelelB

      1526




      1526






















          3 Answers
          3






          active

          oldest

          votes


















          0












          $begingroup$

          Metrics have been removed from Keras core. You need to calculate them manually. They removed them on 2.0 version. Those metrics are all global metrics, but Keras works in batches. As a result, it might be more misleading than helpful.



          However, if you really need them, you can do it like this



          from keras import backend as K

          def recall_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
          recall = true_positives / (possible_positives + K.epsilon())
          return recall

          def precision_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
          precision = true_positives / (predicted_positives + K.epsilon())
          return precision

          def f1_m(y_true, y_pred):
          precision = precision_m(y_true, y_pred)
          recall = recall_m(y_true, y_pred)
          return 2*((precision*recall)/(precision+recall+K.epsilon()))

          # compile the model
          model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

          # fit the model
          history = model.fit(Xtrain, ytrain, validation_split=0.3, epochs=10, verbose=0)

          # evaluate the model
          loss, accuracy, f1_score, precision, recall = model.evaluate(Xtest, ytest, verbose=0)





          share|improve this answer









          $endgroup$













          • $begingroup$
            if they can be misleading, how to evaluate a Keras' model then?
            $endgroup$
            – ZelelB
            13 hours ago






          • 1




            $begingroup$
            Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
            $endgroup$
            – Tasos
            12 hours ago



















          1












          $begingroup$

          You could use the scikit-learn classification report. To convert your labels into a numerical or binary format take a look at the scikit-learn label encoder.



          y_pred = model.predict(x_test, batch_size=64, verbose=1)
          y_pred_bool = np.argmax(y_pred, axis=1)

          print(classification_report(y_test, y_pred_bool))


          which gives you (output copied from the scikit-learn example):



                       precision  recall   f1-score    support

          class 0 0.50 1.00 0.67 1
          class 1 0.00 0.00 0.00 1
          class 2 1.00 0.67 0.80 3





          share|improve this answer








          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          $endgroup$













          • $begingroup$
            This is what I use, simple and effective.
            $endgroup$
            – Matthew
            10 hours ago



















          0












          $begingroup$

          Try this: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html with Y_test, y_pred as parameters.






          share|improve this answer









          $endgroup$













          • $begingroup$
            I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
            $endgroup$
            – ZelelB
            13 hours ago










          • $begingroup$
            You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
            $endgroup$
            – Viacheslav Komisarenko
            12 hours ago











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "557"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f45165%2fhow-to-get-accuracy-f1-precision-and-recall-for-a-keras-model%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          3 Answers
          3






          active

          oldest

          votes








          3 Answers
          3






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0












          $begingroup$

          Metrics have been removed from Keras core. You need to calculate them manually. They removed them on 2.0 version. Those metrics are all global metrics, but Keras works in batches. As a result, it might be more misleading than helpful.



          However, if you really need them, you can do it like this



          from keras import backend as K

          def recall_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
          recall = true_positives / (possible_positives + K.epsilon())
          return recall

          def precision_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
          precision = true_positives / (predicted_positives + K.epsilon())
          return precision

          def f1_m(y_true, y_pred):
          precision = precision_m(y_true, y_pred)
          recall = recall_m(y_true, y_pred)
          return 2*((precision*recall)/(precision+recall+K.epsilon()))

          # compile the model
          model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

          # fit the model
          history = model.fit(Xtrain, ytrain, validation_split=0.3, epochs=10, verbose=0)

          # evaluate the model
          loss, accuracy, f1_score, precision, recall = model.evaluate(Xtest, ytest, verbose=0)





          share|improve this answer









          $endgroup$













          • $begingroup$
            if they can be misleading, how to evaluate a Keras' model then?
            $endgroup$
            – ZelelB
            13 hours ago






          • 1




            $begingroup$
            Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
            $endgroup$
            – Tasos
            12 hours ago
















          0












          $begingroup$

          Metrics have been removed from Keras core. You need to calculate them manually. They removed them on 2.0 version. Those metrics are all global metrics, but Keras works in batches. As a result, it might be more misleading than helpful.



          However, if you really need them, you can do it like this



          from keras import backend as K

          def recall_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
          recall = true_positives / (possible_positives + K.epsilon())
          return recall

          def precision_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
          precision = true_positives / (predicted_positives + K.epsilon())
          return precision

          def f1_m(y_true, y_pred):
          precision = precision_m(y_true, y_pred)
          recall = recall_m(y_true, y_pred)
          return 2*((precision*recall)/(precision+recall+K.epsilon()))

          # compile the model
          model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

          # fit the model
          history = model.fit(Xtrain, ytrain, validation_split=0.3, epochs=10, verbose=0)

          # evaluate the model
          loss, accuracy, f1_score, precision, recall = model.evaluate(Xtest, ytest, verbose=0)





          share|improve this answer









          $endgroup$













          • $begingroup$
            if they can be misleading, how to evaluate a Keras' model then?
            $endgroup$
            – ZelelB
            13 hours ago






          • 1




            $begingroup$
            Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
            $endgroup$
            – Tasos
            12 hours ago














          0












          0








          0





          $begingroup$

          Metrics have been removed from Keras core. You need to calculate them manually. They removed them on 2.0 version. Those metrics are all global metrics, but Keras works in batches. As a result, it might be more misleading than helpful.



          However, if you really need them, you can do it like this



          from keras import backend as K

          def recall_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
          recall = true_positives / (possible_positives + K.epsilon())
          return recall

          def precision_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
          precision = true_positives / (predicted_positives + K.epsilon())
          return precision

          def f1_m(y_true, y_pred):
          precision = precision_m(y_true, y_pred)
          recall = recall_m(y_true, y_pred)
          return 2*((precision*recall)/(precision+recall+K.epsilon()))

          # compile the model
          model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

          # fit the model
          history = model.fit(Xtrain, ytrain, validation_split=0.3, epochs=10, verbose=0)

          # evaluate the model
          loss, accuracy, f1_score, precision, recall = model.evaluate(Xtest, ytest, verbose=0)





          share|improve this answer









          $endgroup$



          Metrics have been removed from Keras core. You need to calculate them manually. They removed them on 2.0 version. Those metrics are all global metrics, but Keras works in batches. As a result, it might be more misleading than helpful.



          However, if you really need them, you can do it like this



          from keras import backend as K

          def recall_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          possible_positives = K.sum(K.round(K.clip(y_true, 0, 1)))
          recall = true_positives / (possible_positives + K.epsilon())
          return recall

          def precision_m(y_true, y_pred):
          true_positives = K.sum(K.round(K.clip(y_true * y_pred, 0, 1)))
          predicted_positives = K.sum(K.round(K.clip(y_pred, 0, 1)))
          precision = true_positives / (predicted_positives + K.epsilon())
          return precision

          def f1_m(y_true, y_pred):
          precision = precision_m(y_true, y_pred)
          recall = recall_m(y_true, y_pred)
          return 2*((precision*recall)/(precision+recall+K.epsilon()))

          # compile the model
          model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc',f1_m,precision_m, recall_m])

          # fit the model
          history = model.fit(Xtrain, ytrain, validation_split=0.3, epochs=10, verbose=0)

          # evaluate the model
          loss, accuracy, f1_score, precision, recall = model.evaluate(Xtest, ytest, verbose=0)






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 13 hours ago









          TasosTasos

          710425




          710425












          • $begingroup$
            if they can be misleading, how to evaluate a Keras' model then?
            $endgroup$
            – ZelelB
            13 hours ago






          • 1




            $begingroup$
            Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
            $endgroup$
            – Tasos
            12 hours ago


















          • $begingroup$
            if they can be misleading, how to evaluate a Keras' model then?
            $endgroup$
            – ZelelB
            13 hours ago






          • 1




            $begingroup$
            Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
            $endgroup$
            – Tasos
            12 hours ago
















          $begingroup$
          if they can be misleading, how to evaluate a Keras' model then?
          $endgroup$
          – ZelelB
          13 hours ago




          $begingroup$
          if they can be misleading, how to evaluate a Keras' model then?
          $endgroup$
          – ZelelB
          13 hours ago




          1




          1




          $begingroup$
          Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
          $endgroup$
          – Tasos
          12 hours ago




          $begingroup$
          Since Keras calculate those metrics at the end of each batch, you could get different results from the "real" metrics. An alternative way would be to split your dataset in training and test and use the test part to predict the results. Then since you know the real labels, calculate precision and recall manually.
          $endgroup$
          – Tasos
          12 hours ago











          1












          $begingroup$

          You could use the scikit-learn classification report. To convert your labels into a numerical or binary format take a look at the scikit-learn label encoder.



          y_pred = model.predict(x_test, batch_size=64, verbose=1)
          y_pred_bool = np.argmax(y_pred, axis=1)

          print(classification_report(y_test, y_pred_bool))


          which gives you (output copied from the scikit-learn example):



                       precision  recall   f1-score    support

          class 0 0.50 1.00 0.67 1
          class 1 0.00 0.00 0.00 1
          class 2 1.00 0.67 0.80 3





          share|improve this answer








          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          $endgroup$













          • $begingroup$
            This is what I use, simple and effective.
            $endgroup$
            – Matthew
            10 hours ago
















          1












          $begingroup$

          You could use the scikit-learn classification report. To convert your labels into a numerical or binary format take a look at the scikit-learn label encoder.



          y_pred = model.predict(x_test, batch_size=64, verbose=1)
          y_pred_bool = np.argmax(y_pred, axis=1)

          print(classification_report(y_test, y_pred_bool))


          which gives you (output copied from the scikit-learn example):



                       precision  recall   f1-score    support

          class 0 0.50 1.00 0.67 1
          class 1 0.00 0.00 0.00 1
          class 2 1.00 0.67 0.80 3





          share|improve this answer








          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          $endgroup$













          • $begingroup$
            This is what I use, simple and effective.
            $endgroup$
            – Matthew
            10 hours ago














          1












          1








          1





          $begingroup$

          You could use the scikit-learn classification report. To convert your labels into a numerical or binary format take a look at the scikit-learn label encoder.



          y_pred = model.predict(x_test, batch_size=64, verbose=1)
          y_pred_bool = np.argmax(y_pred, axis=1)

          print(classification_report(y_test, y_pred_bool))


          which gives you (output copied from the scikit-learn example):



                       precision  recall   f1-score    support

          class 0 0.50 1.00 0.67 1
          class 1 0.00 0.00 0.00 1
          class 2 1.00 0.67 0.80 3





          share|improve this answer








          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          $endgroup$



          You could use the scikit-learn classification report. To convert your labels into a numerical or binary format take a look at the scikit-learn label encoder.



          y_pred = model.predict(x_test, batch_size=64, verbose=1)
          y_pred_bool = np.argmax(y_pred, axis=1)

          print(classification_report(y_test, y_pred_bool))


          which gives you (output copied from the scikit-learn example):



                       precision  recall   f1-score    support

          class 0 0.50 1.00 0.67 1
          class 1 0.00 0.00 0.00 1
          class 2 1.00 0.67 0.80 3






          share|improve this answer








          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.









          share|improve this answer



          share|improve this answer






          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.









          answered 11 hours ago









          matzematze

          112




          112




          New contributor




          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.





          New contributor





          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.






          matze is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
          Check out our Code of Conduct.












          • $begingroup$
            This is what I use, simple and effective.
            $endgroup$
            – Matthew
            10 hours ago


















          • $begingroup$
            This is what I use, simple and effective.
            $endgroup$
            – Matthew
            10 hours ago
















          $begingroup$
          This is what I use, simple and effective.
          $endgroup$
          – Matthew
          10 hours ago




          $begingroup$
          This is what I use, simple and effective.
          $endgroup$
          – Matthew
          10 hours ago











          0












          $begingroup$

          Try this: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html with Y_test, y_pred as parameters.






          share|improve this answer









          $endgroup$













          • $begingroup$
            I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
            $endgroup$
            – ZelelB
            13 hours ago










          • $begingroup$
            You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
            $endgroup$
            – Viacheslav Komisarenko
            12 hours ago
















          0












          $begingroup$

          Try this: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html with Y_test, y_pred as parameters.






          share|improve this answer









          $endgroup$













          • $begingroup$
            I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
            $endgroup$
            – ZelelB
            13 hours ago










          • $begingroup$
            You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
            $endgroup$
            – Viacheslav Komisarenko
            12 hours ago














          0












          0








          0





          $begingroup$

          Try this: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html with Y_test, y_pred as parameters.






          share|improve this answer









          $endgroup$



          Try this: https://scikit-learn.org/stable/modules/generated/sklearn.metrics.precision_recall_fscore_support.html with Y_test, y_pred as parameters.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 13 hours ago









          Viacheslav KomisarenkoViacheslav Komisarenko

          1062




          1062












          • $begingroup$
            I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
            $endgroup$
            – ZelelB
            13 hours ago










          • $begingroup$
            You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
            $endgroup$
            – Viacheslav Komisarenko
            12 hours ago


















          • $begingroup$
            I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
            $endgroup$
            – ZelelB
            13 hours ago










          • $begingroup$
            You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
            $endgroup$
            – Viacheslav Komisarenko
            12 hours ago
















          $begingroup$
          I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
          $endgroup$
          – ZelelB
          13 hours ago




          $begingroup$
          I tried this: model.recision_recall_fscore_support(Y_test, y_pred, average='micro') and get this error on execution: AttributeError: 'Sequential' object has no attribute 'recision_recall_fscore_support'
          $endgroup$
          – ZelelB
          13 hours ago












          $begingroup$
          You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
          $endgroup$
          – Viacheslav Komisarenko
          12 hours ago




          $begingroup$
          You don't need to specify model.recision_recall_fscore_support(), rather just recision_recall_fscore_support(Y_test, y_pred, average='micro') (without "model." and make sure you have the correct import: from sklearn.metrics import precision_recall_fscore_support)
          $endgroup$
          – Viacheslav Komisarenko
          12 hours ago


















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Data Science Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdatascience.stackexchange.com%2fquestions%2f45165%2fhow-to-get-accuracy-f1-precision-and-recall-for-a-keras-model%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          How to label and detect the document text images

          Vallis Paradisi

          Tabula Rosettana