En el aprendizaje automático, se puede resolver el modelado predictivo mediante problemas de clasificación. Para cada observación en el modelo, debe predecir la etiqueta de clase. Los datos de entrada contendrán cualquiera de las siguientes variables: variables categóricas o variables continuas. Sin embargo, la salida siempre contendrá una variable categórica. Podemos entender este concepto con el siguiente ejemplo. Supongamos que estamos prediciendo el tiempo en el barrio. Consideraremos la época del año y la información meteorológica como características de entrada. La información meteorológica incluirá la temperatura, la velocidad del viento, la humedad y si está nublado o soleado. Generaremos una salida para saber si va a llover o no. En otro ejemplo, podemos predecir si el correo electrónico es spam o no considerando la información del remitente y el contenido del correo electrónico como salida.

Entender la pérdida de registros

La pérdida de registro es una métrica de clasificación esencial para las predicciones basadas en probabilidades. Aunque la interpretación de los valores brutos de log-loss es una tarea complicada, encontrará que log-loss es una técnica eficaz para comparar un modelo de aprendizaje automático con otro. Tenga en cuenta que para encontrar buenas predicciones para cualquier problema, debería considerar el valor más bajo de log-loss. También puede referirse a Log Loss como pérdida de entropía cruzada o pérdida logística.
La función de pérdida es útil para los modelos multinominales como la regresión logística y sus extensiones. Las extensiones incluyen redes neuronales y otros tipos de modelos. En otras palabras, la función de pérdida es la log-verosimilitud negativa en un modelo logístico. Siempre que el modelo devuelva (y_pred) probabilidades de entrenamiento de los datos (y_true).
Sólo se puede definir la pérdida logarítmica para dos etiquetas o más. La ecuación para la pérdida logarítmica, considerando la primera muestra con probabilidad estimada p=Pr (y=1) y etiqueta verdadera y∈{0,1} sería
Llog(y,p)=-(ylog(p)+(1-y)log(1-p))

Ejemplos de pérdida logarítmica

Supongamos que las probabilidades predichas del modelo para tres casas son [0,8, 0,4, 0,1]. Sólo la última de todas estas casas no se ha vendido. Por lo tanto, representará numéricamente el resultado final de estas entradas como [1, 1, 0].

Pérdida lógica y Python

A continuación, hablaremos de varios tipos de funciones de pérdida para la función de pérdida concreta. Utilizaremos Python para el cálculo:

– Pérdida de error medio cuadrático

La pérdida de error medio cuadrático es una función de pérdida de regresión. Calculará el MSE como la media de la varianza al cuadrado entre los valores predichos y los valores reales. No importa el signo que tengan los valores predichos y los valores reales, siempre recibirá un resultado positivo. El valor perfecto sería 0,0. A pesar de que puede hacer una puntuación negativa y utilizar el valor de la pérdida para el proceso de optimización de la maximización, el resultado será mínimo. La siguiente función de Python calculará el error medio cuadrático. Además, puede hacer una lista de cantidades de valor real predichas y reales.
# calcular el error medio al cuadrado
def error_medio_cuadrado(real, predicho):
sum_square_error = 0.0
for i in range(len(actual)):
sum_square_error += (real[i] – predicho[i])**2.0
error_cuadrado_medio = 1,0 / len(real) * error_cuadrado_medio
devolver error_cuadrado_medio
Debe utilizar la función error cuadrático medio() para implementar la pérdida de error de forma eficiente.

– Pérdida de entropía cruzada (o pérdida logarítmica)

Puede referirse a la pérdida de entropía cruzada como pérdida logarítmica, entropía cruzada, pérdida logarítmica o pérdida logística. Indica que cada probabilidad que se predice se compara con el valor real de salida de la clase como 0 o 1. Esta técnica calcula la puntuación. Esta puntuación penalizará la probabilidad debido a la distancia entre el valor de salida y el valor esperado. La naturaleza de la penalización será logarítmica. La diferencia grande contendrá una puntuación enorme, como 0,9 o 10. Sin embargo, las diferencias más pequeñas incluirán puntuaciones pequeñas, como 0,1 o 0,2.
El modelo con probabilidades precisas contendrá una pérdida logarítmica o entropía cruzada de 0,0. Esto indica que la pérdida de entropía cruzada es mínima, y los valores más pequeños representarán un buen modelo en lugar de los más grandes. Entre todos los ejemplos, la entropía cruzada para la predicción de dos clases o problemas binarios calculará la entropía cruzada media.
Las siguientes funciones de Python le ayudarán a calcular la Pérdida Log. Tiene que implementar este pseudocódigo y comparar los valores 0 y 1 y predecir las probabilidades para la clase 1. Por lo tanto, podrás calcular la Pérdida Log:
from math import log

# calcular la entropía cruzada binaria
def entropía_cruzada_binaria(real, predicha):
sum_score = 0.0
for i in range(len(actual)):
sum_score += real[i] * log(1e-15 + predicted[i])
puntuación_suma media = 1,0 / len(real) * puntuación_suma
return -puntuación_suma_media
Para evitar el error, debemos añadir un valor pequeño en las probabilidades predichas. Esto significa que la mejor pérdida posible será el valor más cercano a cero, pero no debe ser exactamente cero. Se puede calcular la entropía cruzada para la clasificación de clases múltiples. Basándose en cada clase, las predicciones deben incluir las posibilidades predichas y contener características binarias. Entonces, la entropía cruzada será la suma de las características medias y binarias de todos los ejemplos del conjunto de datos.
La siguiente función de Python le ayudará a calcular la entropía cruzada de la lista de valores codificados. Ayudará a comparar las posibilidades predichas y los valores codificados para cada clase:
from math import log

# calcular la entropía cruzada categórica
def entropía_cruzada_categórica(real, predicha):
sum_score = 0.0
for i in range(len(actual)):
for j in range(len(actual[i])):
puntuación_suma += real[i][j] * log(1e-15 + predicho[i][j])
puntuación_suma media = 1,0 / len(real) * puntuación_suma
return -puntuación_suma_media
Deberías utilizar la función log_loss() para implementar la entropía cruzada de forma eficiente.

Conclusión

Debe interpretar cuidadosamente las habilidades del modelo utilizando log-loss debido al bajo valor de log-loss y al conjunto de datos de desequilibrio. Al crear un modelo estadístico, debe lograr la puntuación log-loss de referencia en función del conjunto de datos dado. Si no logra la puntuación log, el modelo estadístico entrenado es inexacto y no es útil. En ese caso, debe utilizar un modelo mejor para encontrar la pérdida logarítmica de una probabilidad.