Estoy construyendo una red neuronal para un problema de clasificación binaria en el que el error de Bayes (la tasa de error más baja posible) es probablemente cercano al 50%.
Lo que facilita la tarea es que no necesito hacer una predicción para cada observación de la muestra de prueba. Sólo quiero hacer una predicción para las observaciones en las que el modelo tiene una confianza bastante alta. Sin embargo, es mejor que el porcentaje de predicciones sea alto que bajo.
Hasta ahora, he utilizado una red neuronal estándar (feed-forward, pérdida de entropía cruzada, regularización L2 y activación sigmoidea en el nodo final). En la muestra de prueba, sólo tengo en cuenta las observaciones para las que el valor del nodo final $(\hat{Y}_i)$ está fuera de un intervalo de confianza bajo: $$\text{predicted class}_i = \begin{cases} 1 &\text{ if } \hat{Y}_i > 0.5 + a \\ 0 &\text{ if } \hat{Y}_i < 0.5 - a \\ \text{NA} &\text{else} \end{cases} \\ \text{where } a\in [0, 0.5] \text{ indicates the level of confidence required}$$
Para ajustar los hiperparámetros (incluyendo $a$ ), he diseñado una métrica que depende positivamente de:
- Precisión de la muestra de prueba (sólo se cuentan las predicciones diferentes de NA)
- Porcentaje de predicciones que difieren de NA.
Todavía no estoy satisfecho con el rendimiento obtenido con este enfoque, y estoy seguro de que hay formas más inteligentes de enfocar esto, por ejemplo, una función de pérdida personalizada. Consejos, enlaces a artículos, o incluso palabras clave de búsqueda relacionadas son bienvenidos.