He estado tratando de revisar mi código python para la predicción en la red neuronal y me di cuenta después de ejecutar el código que model.predict_classes está obsoleto desde el 1 de enero de 2021.
Amablemente, ¿puede ayudarme a saber qué puedo usar en su lugar para mi código?
La línea de código es:
y_pred_nn = model.predict_classes(X_test)La cuestión:
NameError Traceback (most recent call last) <ipython-input-11-fc1ddbecb622> in <module> ----> 1 print(y_pred_nn) NameError: name 'y_pred_nn' is not definedSi su modelo realiza una clasificación de clases múltiples (por ejemplo, si usa una activación de última capa softmax), use: np.argmax(model.predict(x), axis=-1)
Si su modelo realiza una clasificación binaria (por ejemplo, si utiliza una activación de la última capa sigmoidea), use:
(model.predict(X_test) > 0.5).astype("int32")
La mejor explicación de cómo manejar esto se da en:
https://androidkt.com/get-class-labels-from-predict-method-in-keras/
Primero use model.predict() para extraer las probabilidades de clase. Luego, dependiendo del número de clases, haga lo siguiente:
Utilice un umbral para seleccionar las probabilidades que determinarán la clase 0 o 1
np.where(y_pred > threshold, 1,0)
Por ejemplo, utilice un umbral de 0,5
Seleccione la clase con la probabilidad más alta
np.argmax(predictions, axis=1)
Cuando pueda tener varias clases de salida por ejemplo, use un umbral para seleccionar qué etiquetas se aplican.
y_pred = model.predict(x, axis=1) [i for i,prob in enumerate(y_pred) if prob > 0.5]