Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

424
Views
Cómo calcular precisión y recuperación en Keras

Estoy construyendo un clasificador multiclase con Keras 2.02 (con backend de Tensorflow) y no sé cómo calcular la precisión y la recuperación en Keras. Por favor, ayúdame.

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

El paquete de Python keras-metrics podría ser útil para esto (soy el autor del paquete).

 import keras import keras_metrics model = models.Sequential() model.add(keras.layers.Dense(1, activation="sigmoid", input_dim=2)) model.add(keras.layers.Dense(1, activation="softmax")) model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=[keras_metrics.precision(), keras_metrics.recall()])

ACTUALIZACIÓN : a partir de la versión 2.3.0 de Keras , se proporcionan métricas como precisión, recuperación, etc. dentro del paquete de distribución de la biblioteca.

El uso es el siguiente:

 model.compile(optimizer="sgd", loss="binary_crossentropy", metrics=[keras.metrics.Precision(), keras.metrics.Recall()])
over 4 years ago · Santiago Trujillo Report

0

A partir de Keras 2.0, la precisión y la recuperación se eliminaron de la rama maestra. Tendrás que implementarlos tú mismo. Siga esta guía para crear métricas personalizadas: Aquí .

La ecuación de precisión y recuperación se puede encontrar aquí

O reutilice el código de keras antes de eliminarlo aquí .

Se eliminaron las métricas porque eran por lotes, por lo que el valor puede o no ser correcto.

over 4 years ago · Santiago Trujillo Report

0

Mi respuesta se basa en el comentario del tema Keras GH . Calcula la precisión de validación y la recuperación en cada época para una tarea de clasificación codificada en caliente. También mire esta respuesta SO para ver cómo se puede hacer con la funcionalidad keras.backend .

 import keras as keras import numpy as np from keras.optimizers import SGD from sklearn.metrics import precision_score, recall_score model = keras.models.Sequential() # ... sgd = SGD(lr=0.001, momentum=0.9) model.compile(optimizer=sgd, loss='categorical_crossentropy', metrics=['accuracy']) class Metrics(keras.callbacks.Callback): def on_train_begin(self, logs={}): self._data = [] def on_epoch_end(self, batch, logs={}): X_val, y_val = self.validation_data[0], self.validation_data[1] y_predict = np.asarray(model.predict(X_val)) y_val = np.argmax(y_val, axis=1) y_predict = np.argmax(y_predict, axis=1) self._data.append({ 'val_recall': recall_score(y_val, y_predict), 'val_precision': precision_score(y_val, y_predict), }) return def get_data(self): return self._data metrics = Metrics() history = model.fit(X_train, y_train, epochs=100, validation_data=(X_val, y_val), callbacks=[metrics]) metrics.get_data()
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!