¿Por qué mi red neuronal artificial predice demasiados falsos negativos (FN)?

Es difícil decir algo sobre una red neuronal artificial sin saber:

  • Cuál es la estructura de su red neuronal (por ejemplo, retroalimentación regular, recurrente, convolucional)
  • Cómo se entrena su red (por ejemplo, algoritmos evolutivos, propagación inversa) y cómo se define la función de costo
  • Cómo son los datos de entrenamiento que estás alimentando la red neuronal
  • Muchos otros factores que dependen más o menos de los tres anteriores

Solo para reiterar, nos ha dicho que lo que supongo es que su conjunto de verificación tiene 5000 ejemplos. De estos ejemplos, 476 eran falsos negativos, 24 eran verdaderos positivos, 333 eran falsos positivos y 4167 eran verdaderos negativos. Eso significa que 500 ejemplos se clasifican positivamente y 4500 se clasifican negativamente, lo que es muy probable que sea demasiado sesgado.

Cuando un conjunto de datos utilizado para entrenar un modelo está sesgado, proporciona un entorno donde se puede obtener una alta precisión utilizando una regla simple: siempre suponga que la entrada actual es negativa (o positiva, si está sesgada).

Una solución a este problema podría ser sobremuestrear los ejemplos positivos para que la distribución de ejemplos positivos y negativos utilizados para entrenar el modelo sea más o menos uniforme. Si es posible, también podría mejorar su modelo para hacer una ingeniería de características más extensa para que la entrada sea un poco menos ruidosa.

Las predicciones de tu ANN parecen completamente aleatorias.

Su ANN produjo 357 predicciones totalmente positivas (333 FP + 24 TP) y 4643 (5000-357) negativas.

Supongamos que adjunta estas predicciones completamente al azar, es decir, cada predicción tiene [matemática] 357 \ más de 5000 [/ matemática] posibilidad de ser positiva. Entonces produciría en promedio [matemática] {357 \ sobre 5000} \ cdot 500 \ aprox 36 [/ matemática] verdaderos positivos, y [matemática] {4643 \ sobre 5000} \ cdot 4500 \ aproximadamente 4179 [/ matemática] verdaderos negativos . En realidad, produjo solo 24 TP y solo 4167 TN, por lo que funciona peor que las predicciones aleatorias. La diferencia, sin embargo, no es estadísticamente significativa.

Qué significa eso? Significa que sus redes neuronales no aprenden nada . Tal vez hay errores en su código, o los parámetros de aprendizaje son completamente incorrectos. Intente utilizar el mismo ANN para aprender una función muy simple (pero no constante), es decir, la función logística de la suma de sus entradas, mientras que las entradas son aleatorias para cada ejemplo. Si ni siquiera aprende esto, busque el error. Si lo hace, gradualmente haga la tarea más desafiante.

No especificó si su matriz de confusión es para el conjunto de entrenamiento o para el conjunto de prueba. Piense por qué es importante y qué debe hacer en cada caso.

Posiblemente podría suceder debido al desequilibrio en el conjunto de datos. En este caso, puede intentar lo siguiente:

  • Utilice la validación cruzada para seleccionar el número de neuronas ocultas en la capa oculta.
  • Balancee el conjunto de datos antes de entrenar. Puede aplicar técnicas de sobremuestreo, como SMOTE ( https://www.jair.org/media/953/l …) para sobremuestrear la clase minoritaria o usar el submuestreo para submuestrear de la clase mayoritaria.
  • Utilice otros algoritmos específicos para problemas desequilibrados como RUSBoost (harusametime / RUSBoost)

También puede suceder que las características no sean buenas, en ese caso busque o cree otras características relevantes.