Evalúe la distorsión del modelo en SAS Viya 4

Evalúe la distorsión del modelo en SAS Viya 4


Autores: Ricky Tharrington y Jagruti Kanjia

En esta publicación, aprenderá a evaluar el sesgo del modelo de aprendizaje automático utilizando las herramientas disponibles en SAS Viya 4. A medida que la inteligencia artificial se vuelve más popular, la vida de las personas se ve cada vez más influenciada por lo que predicen los modelos de aprendizaje automático, desde sugerencias de anuncios en las redes sociales hasta aprobaciones de solicitudes de préstamos. Independientemente de la importancia del escenario, cada aplicación del modelo tiene el potencial de impactar de manera diferente a los segmentos individuales de la población de usuarios. Es importante que los científicos de datos comprendan los sesgos presentes en sus modelos para tomar las contramedidas adecuadas si es necesario.

Una breve introducción al sesgo

Hay muchas perspectivas a considerar cuando se describe el sesgo en la ciencia de datos. El sesgo puede ocurrir durante la recopilación de datos, el procesamiento de datos, el muestreo, la construcción de modelos, etc. Esta publicación se centra en el sesgo presente en las predicciones del modelo. Este sesgo se puede dividir en dos categorías: sesgo de rendimiento y sesgo de predicción.

Tanto el sesgo de rendimiento como el de predicción se calculan encontrando la mayor diferencia en una métrica determinada entre los niveles de una variable sensible. La diferencia es que el sesgo de rendimiento está interesado en las métricas de precisión, mientras que el sesgo de predicción se trata de predicciones promedio.

Idealmente, un científico de datos quiere eliminar todo tipo de sesgos que son importantes para una aplicación en particular. Sin embargo, debe tenerse en cuenta que el sesgo de rendimiento y el sesgo de predicción suelen ser opuestos en muchas aplicaciones. La mitigación del sesgo de predicción a menudo empeora el sesgo de rendimiento y viceversa. Al intentar mitigar el sesgo, depende del científico de datos consultar con expertos en el campo relevante para comprender qué tipo de sesgo es importante para su problema a fin de mitigarlo.

El récord del Titanic

Esta publicación utiliza el popular conjunto de datos Titanic para sus ejemplos. Estos datos fueron elegidos por su familiaridad e interpretabilidad. El conjunto de datos del Titanic incluye observaciones que muestran a los pasajeros a bordo del Titanic durante su fatal hundimiento en 1912. El objetivo de los modelos en esta publicación es predecir si una persona determinada sobrevivió al incidente.

El Titanic no tenía suficientes botes salvavidas para todos a bordo. Sabemos por los sobrevivientes que las mujeres y los niños tenían prioridad en los botes salvavidas. Por la disposición del barco, sabemos que los camarotes más caros estaban más cerca de los botes salvavidas. En conjunto, estos elementos significan que las mujeres y los individuos de alto rango sobrevivieron a un ritmo mayor que los hombres y las clases bajas. Los modelos de aprendizaje automático suelen reflejar este comportamiento. En esta publicación, entrenaremos algunos modelos para predecir la supervivencia utilizando estos datos. También mediremos el sesgo existente entre los diferentes géneros representados en los datos.

Antes de entrenar modelos con los datos del Titanic, es común realizar algunos trabajos básicos de ingeniería de características. Aplicamos el siguiente código de paso de DATOS SAS a los datos del Titanic para extraer información sobre los títulos de los pasajeros y las ubicaciones de cubierta de sus camarotes.

   data titanic;
       set titanic;
 
       /* Title */
       Title = scan(Name,2,",");
       Title = scan(Title,1," ");
       Title = tranwrd(Title,".","");
 
       /* Deck */
       Deck = " ";
       if Cabin ^= "" then Deck = substr(Cabin,1,1);
 
   run;

Tenga en cuenta que no estamos imputando valores faltantes, una característica común de los tutoriales basados ​​en Titanic, ya que usaremos un modelo de bosque en SAS Viya. Ofrece un excelente soporte para valores faltantes listos para usar.

Evaluación de sesgo en Model Studio

La evaluación de sesgo en Model Studio en SAS Visual Machine Learning se presenta en forma de una nueva sección en los resultados de un modelo de aprendizaje supervisado llamado Equidad y sesgo. Para ver estos informes para una variable de clasificación específica, como el sexo, debe seleccionar la opción Evaluar esta variable para el sesgo en la pestaña Datos de un proyecto de Model Studio. Una vez hecho esto, el indicador Evaluar sesgo para la variable dada reflejará el cambio. Esto se demuestra en la Figura 1.

Figura 1: Configuración del indicador Evaluar el sesgo en Model Studio

Para los fines de esta publicación, crearemos una canalización con un solo modelo Forest con todas las configuraciones predeterminadas, como se muestra en la Figura 2.

Figura 2: canalización de demostración con el modelo Forest

Una vez que se ha entrenado la canalización, se puede ver el informe de evaluación de sesgo abriendo los resultados de un modelo y seleccionando «Equidad y sesgo». Hay algunos gráficos diferentes en esta página, pero solo discutiremos dos de ellos en esta publicación.

El gráfico de varianza de predicción para este modelo Forest, que se muestra en la Figura 3, muestra el valor pronosticado promedio para el nivel de evento objetivo para este proyecto. En este proyecto, el nivel de evento de destino es «1», que indica si un pasajero sobrevivió. El gráfico de sesgo de predicción muestra que la predicción promedio para las mujeres es mucho más alta que para los hombres, lo que significa que el modelo predice una mayor probabilidad de supervivencia para las mujeres que para los hombres. Esto corresponde a nuestra comprensión histórica del problema.

Figura 3 – Gráfica de sesgo de predicción

El gráfico de sesgo de rendimiento que se muestra en la Figura 4 muestra algunas métricas de precisión diferentes para cada nivel de la variable sensible género. Los valores más altos de True Positive Rate (TPR) y maxKS y los valores más bajos de Multi-Class Log Loss (MCLL) indican un mejor ajuste. Las tres métricas muestran que la precisión del modelo es peor para los hombres que para las mujeres.

Figura 4 – Gráfica de distorsión de energía

Para obtener más información, consulte la sección Imparcialidad y sesgo de los resultados del modelo.

Estos resultados indican que el modelo es más preciso para las observaciones de las hembras y les da una mayor probabilidad de supervivencia. Ambos efectos se derivan de los datos de entrada que sugieren que las mujeres sobrevivieron al viaje a bordo del Titanic con más frecuencia que los hombres. El modelo Forest simplemente copia este patrón.

Evaluación del sesgo programático en SAS Viya

Algunos científicos de datos prefieren modelos de entrenamiento de las interfaces programáticas de SAS Viya. En esta sección repetimos los pasos del ejemplo de Model Studio en Python usando el paquete SWAT.

Los modelos forestales se entrenan llamando a la acción forestTrain del conjunto de acciones decisionTree. El siguiente fragmento de código de Python entrena un modelo Forest en el conjunto de datos Titanic como en el ejemplo de Model Studio.

   target = "Survived"
   inputs = ["Pclass","Sex","Embarked","Title",
          "Deck","Age","SibSp","Parch","Fare"]
   nominals = ["Survived","Pclass","Sex","Embarked","Title","Deck"]
   s.decisionTree.forestTrain(
       table = "TITANIC_TRAIN",
       target = target,
       inputs = inputs,
       nominals = nominal,
       seed = 12345,
       maxLevel = 21,
       nTrees = 1000,
       encodeName = True,
       varImp = True,
       savestate = dict(
           name = "FOREST_ASTORE",
           replace = True
       )
   )

Una vez que haya entrenado un modelo, puede calcular las estadísticas de sesgo llamando a la acción de evaluarBias del conjunto de acciones de fairAITools. En el siguiente código de Python, usamos nuestro modelo recién entrenado para calcular las estadísticas de sesgo para la variable Sexo.

   s.fairAITools.assessBias(
       table = "TITANIC_TRAIN",
       modelTable = "FOREST_ASTORE",
       modelTableType = "ASTORE",
       predictedVariables = ["P_Survived1","P_Survived0"],
       response = "Survived",
       responseLevels = ["1","0"],
       sensitiveVariable = "Sex"
   )

Esta es solo una forma posible de la sintaxis de acción de AssessmentBias aceptada. La acción puede aceptar modelos evaluables en muchas formas diferentes, incluidos SAS Data Step, DS2, ASTORE y tablas preevaluadas. Lea más aquí para ver ejemplos de cómo llamar a la acción de AssessmentBias con un motor de puntuación diferente y más detalles sobre la salida de resultados. Las tablas 1 y 2 contienen un subconjunto de los resultados de la llamada a la acción de AssessmentBias.

sexo MCLL TPR PREDICTED_EVENT
Femenino 0.313 0.957 0.775
masculino 0.345 0.422 0.135

Tabla 1 – Métricas de grupo para el modelo Titanic Forest

Métrico valor base Comparar
Paridad directa 0.641 Femenino masculino
Cuotas equilibradas 0.535 Femenino masculino

Tabla 2 – Estadísticas de sesgo para el modelo Titanic Forest

La tabla 1 muestra parte de la salida de la tabla de métricas de grupo de la acción de evaluación del sesgo. Aquí vemos los valores de muchas métricas de desempeño diferentes para diferentes niveles de la variable sensible, en este caso el género. MCLL y TPR son mejores para las observaciones de las hembras que para las de los machos, y el valor promedio del evento previsto es mucho más alto para las hembras que para los machos.

La Tabla 2 muestra filas seleccionadas de la tabla de salida de estadísticas de sesgo, que proporciona nombres comunes para las diferencias en las métricas de la Tabla 1. La paridad predictiva mide la diferencia en la predicción promedio, y las probabilidades igualadas brindan la diferencia máxima a lo largo de TPR y FPR (no se muestra aquí). Ejemplo).

Estos resultados siguen los resultados del ejemplo del estudio de modelos y no son sorprendentes dada nuestra comprensión histórica del Titanic.

Reducción del sesgo al omitir variables

Digamos que estamos interesados ​​en reducir el sesgo del modelo entre hombres y mujeres. Una práctica común para lograr un sesgo intergrupal reducido es ocultar la información de ese grupo del modelo. Una forma de probar esto es eliminar esta variable como entrada al modelo durante el entrenamiento. La acción en este siguiente ejemplo de Python elimina el sexo y el título de las listas de variables de entrada. El título se omite debido a su fuerte asociación con el sexo.

   s.decisionTree.forestTrain(
       table = "TITANIC_TRAIN",
       target = target,
       inputs = ["Pclass","Embarked","Deck","Age","SibSp","Parch","Fare"],
       nominals = ["Survived","Pclass","Embarked","Deck"],
       seed = 12345,
       maxLevel = 21,
       nTrees = 1000,
       encodeName = True,
       varImp = True,
       savestate = dict(
           name = "FOREST_ASTORE",
           replace = True
       )
   )

Aquí están las mismas tablas de resultados que antes, pero en el nuevo modelo que no tenía acceso directo al género y título.

sexo MCLL TPR PREDICTED_EVENT
Femenino 0.522 0.695 0.514
masculino 0.369 0.606 0.256

Tabla 3 – Métricas de grupo para el modelo Titanic Forest sin género y título

Métrico valor base Comparar
Paridad directa 0.259 Femenino masculino
Cuotas equilibradas 0.090 Femenino masculino

Tabla 4 – Estadísticas de sesgo para el modelo Titanic Forest sin género ni título

Curiosamente, la diferencia en MCLL entre los dos grupos aumentó. Esto parece ser causado en gran parte por un aumento dramático en MCLL para el grupo femenino. Sin embargo, la diferencia de TPR se redujo significativamente, al igual que la diferencia en la probabilidad promedio de eventos previstos.

Existen otros métodos para mitigar el sesgo en los modelos de aprendizaje automático que no se tratan en esta publicación, p. B. Sobremuestreo o ponderación de los datos de entrada en función de la variable sensible. Como sabemos por información histórica, el sexo era un factor importante para determinar si un pasajero sobrevivía a bordo del Titanic. De ello se deduce que si el modelo no tiene acceso a esta información, la precisión debería verse afectada. Sin embargo, esto muestra que es posible cambiar la precisión del modelo por una reducción del sesgo. Es probable que esta compensación de sesgo de precisión sea deseable en muchas situaciones, particularmente en aplicaciones de alto riesgo.

Conclusión

Es importante conocer las diferentes fuentes de sesgo en cualquier aplicación de ciencia de datos y la magnitud de su impacto en la predicción del modelo. En esta publicación, mostramos cómo evaluar modelos creados en Model Studio en SAS Visual Machine Learning y directamente en el servidor CAS en SAS Viya. Esperamos que encuentre útiles las herramientas que se muestran en esta publicación al evaluar el sesgo presente en sus propios modelos.

SAS Viya

Related post

Resumen del laboratorio de aplicaciones: misterio y destrucción

Resumen del laboratorio de aplicaciones: misterio y destrucción

Cada semana echamos un vistazo a algunos de los próximos videojuegos, demostraciones y experiencias únicas que llegarán a los visores Meta…
Una nueva depuradora llevará el agua del inodoro al grifo

Una nueva depuradora llevará el agua del inodoro al…

A la mayoría de las personas no les gusta la idea de tirar de la cadena y dejar que salga la…
Detalles del informe Retrasos en el desarrollo perturbado Auriculares de Apple

Detalles del informe Retrasos en el desarrollo perturbado Auriculares…

Un informe detallado de The Information revela las decisiones detrás del aparente retraso de un año de los próximos auriculares AR/VR…

Leave a Reply

Tu dirección de correo electrónico no será publicada.