Luego de de nuestra larga selección de datos dimos con la respuesta esta duda que pueden tener algunos de nuestros usuarios. Te compartimos la respuesta y nuestro objetivo es serte de mucha apoyo.
Solución:
Su modelo parece corresponder a un modelo de regresión por las siguientes razones:
-
Tu estas usando
linear
(el predeterminado) como una función de activación en la capa de salida (yrelu
en la capa anterior). -
tu pérdida es
loss='mean_squared_error'
.
Sin embargo, la métrica que usas- metrics=['accuracy']
corresponde a un problema de clasificación. Si quieres hacer una regresión, elimina metrics=['accuracy']
. es decir, usar
model.compile(optimizer='adam',loss='mean_squared_error')
Aquí hay una lista de métricas de keras para regresión y clasificación (tomada de esta publicación de blog):
Métricas de regresión de Keras
•Error cuadrático medio: mean_squared_error, MSE o mse
•Error absoluto medio: error_absoluto_medio, MAE, mae
•Error porcentual absoluto medio: mean_absolute_percentage_error, MAPE, mape
•Proximidad del coseno: coseno_proximidad, coseno
Métricas de clasificación de Keras
• Precisión binaria: binary_accuracy, acc
• Precisión categórica: categorical_accuracy, acc
• Precisión categórica escasa: sparse_categorical_accuracy
•Precisión categórica Top k: top_k_categorical_accuracy (requiere que especifique el parámetro ak)
• Precisión categórica de Sparse Top k: sparse_top_k_categorical_accuracy (requiere que especifique el parámetro ak)
Agregue lo siguiente para obtener métricas:
history = model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mean_squared_error'])
# OR
history = model.compile(optimizer='adam', loss='mean_absolute_error', metrics=['mean_absolute_error'])
history.history.keys()
history.history
Prueba este.
mientras intentaba resolver el problema del Titanic de kaggle, olvidé completar los datos faltantes del marco de datos, por lo que los datos faltantes se llenaron con “nan”.
El modelo arrojó una salida similar.
#------------------------------------------------------
Epoch 1/50
891/891 [==============================] - 3s 3ms/step - loss: 9.8239 - acc: 0.0000e+00
Epoch 2/50
891/891 [==============================] - 1s 2ms/step - loss: 9.8231 - acc: 0.0000e+00
Epoch 3/50
891/891 [==============================] - 1s 1ms/step - loss: 9.8231 - acc: 0.0000e+00
Epoch 4/50
891/891 [==============================] - 1s 1ms/step - loss: 9.8231 - acc: 0.0000e+00
Epoch 5/50
891/891 [==============================] - 1s 1ms/step - loss: 9.8231 - acc: 0.0000e+00
#------------------------------------------------------
Asegúrese de preparar sus datos antes de enviarlos al modelo.
En mi caso tuve que hacer los siguientes cambios
+++++++++++++++++++++++++++++++++++
dataset[['Age']] = dataset[['Age']].fillna(value=dataset[['Age']].mean())
dataset[['Fare']] = dataset[['Fare']].fillna(value=dataset[['Fare']].mean())
dataset[['Embarked']] = dataset[['Embarked']].fillna(value=dataset['Embarked'].value_counts().idxmax())
Sección de Reseñas y Valoraciones
Al final de todo puedes encontrar las reseñas de otros usuarios, tú incluso puedes insertar el tuyo si lo crees conveniente.