Logotipo de Zephyrnet

Explicar los modelos de PNL con LIME

Fecha:

By Ayan Kundu, Científico de datos

Es muy importante saber cómo LIME llega a sus resultados finales para explicar una predicción realizada para datos de texto. En este artículo, he compartido ese concepto ilustrando los componentes de LIME.

Explicar los modelos de PNL con LIME


Foto por Ethan Medrano on Unsplash


 

Hace unas semanas escribí un blog sobre cómo se pueden usar diferentes herramientas de interpretabilidad para interpretar ciertas predicciones realizadas por los modelos de caja negra. En ese artículo, compartí las matemáticas detrás de LIME, SHAP y otras herramientas de interpretación, pero no profundicé mucho en los detalles de la implementación de esos conceptos en los datos originales. En este artículo, pensé en compartir cómo funciona LIME en datos de texto paso a paso.

Los datos que se utilizan para todo el análisis se toman de esta página . Estos datos son para predecir si un tweet determinado se trata de un desastre real (1) o no (0). Tiene las siguientes columnas:


Explicar los modelos de PNL con LIME
Fuente

 

Como el enfoque principal de este blog es interpretar LIME y sus diferentes componentes, por lo que construiremos rápidamente un modelo de clasificación de texto binario utilizando Random Forest y nos centraremos principalmente en la interpretación LIME.

Primero, comenzamos con la importación de los paquetes necesarios. Luego, leemos los datos y comenzamos el preprocesamiento, como la eliminación de palabras vacías, minúsculas, lematización, eliminación de puntuación, eliminación de espacios en blanco, etc. Todo el texto preprocesado limpio se almacena en una nueva columna 'cleaned_text' que se usará más adelante para el análisis y los datos se dividen en tren y la validación establecida en una proporción de 80:20.

Luego pasamos rápidamente a convertir los datos de texto en vectores usando TF-FDI vectorizador y ajustando un Bosque al azar modelo de clasificación en eso.


Explicar los modelos de PNL con LIME
Imagen del autor

 

Ahora comencemos con el interés principal de este blog, que es cómo interpretar los diferentes componentes de LIME.

Primero, veamos cuál es el resultado final de la interpretación LIME para una instancia de datos en particular. Luego profundizaremos en los diferentes componentes de LIME paso a paso, lo que finalmente dará como resultado el resultado deseado.


Explicar los modelos de PNL con LIME
Imagen del autor

 

Aquí las etiquetas = (1,) se pasan como un argumento que significa que queremos la explicación de la clase 1. Las características (palabras en este caso) resaltadas en naranja son las principales características que causan una predicción de clase 0 (no desastre) con probabilidad 0.75 y clase 1(desastre) con probabilidad 0.25.

NOTA: char_level es uno de los argumentos de LimeTextExplainer, que es un booleano que identifica que tratamos cada carácter como una ocurrencia independiente en la cadena. El valor predeterminado es Falso, por lo que no consideramos cada carácter de forma independiente y la función IndexedString se usa para tokenizar e indexar las palabras en la instancia de texto; de lo contrario, se usa la función IndexedCharacters.

Por lo tanto, debe estar interesado en saber cómo se calculan. ¿Correcto?

Veamos eso.

LIME comienza con la creación de algunas muestras perturbadas alrededor de la vecindad del punto de interés de los datos. Para los datos de texto, las muestras perturbadas se crean eliminando aleatoriamente algunas de las palabras de la instancia y la distancia del coseno se usa para calcular la distancia entre las muestras originales y perturbadas como métrica predeterminada.

Esto devuelve la matriz de 5000 muestras perturbadas (cada muestra perturbada tiene la longitud de la instancia original y 1 significa que la palabra en esa posición de la instancia original está presente en la muestra perturbada), sus probabilidades de predicción correspondientes y las distancias de coseno entre la original y muestras perturbadas. Un fragmento de eso es el siguiente:


Explicar los modelos de PNL con LIME
Imagen del autor

 

Ahora, después de crear las muestras perturbadas en la vecindad, es hora de dar pesos a esas muestras. Las muestras que están cerca de la instancia original reciben una ponderación más alta que las muestras que están lejos de la instancia original. Núcleo exponencial con kernel ancho 25 se usa por defecto para dar esos pesos.

Después de eso, las características importantes (según num_features: número máximo de características que se explicarán) se seleccionan mediante el aprendizaje de un modelo disperso localmente lineal a partir de datos perturbados. Hay varios métodos para elegir las características importantes utilizando el modelo disperso lineal local como 'auto' (predeterminado), 'forward_selection', 'lasso_path', 'highest_weights'. Si elegimos 'auto', entonces se usa 'forward_selection' si num_features≤6, de lo contrario, se usa 'highest_weights'.


Explicar los modelos de PNL con LIME
Imagen del autor

 

Aquí podemos ver que las características seleccionadas son [1,5,0,2,3] que son los índices de las palabras (o características) importantes en la instancia original. Como aquí num_features=5 y method='auto', el método 'forward_selection' se usa para seleccionar las funciones importantes.

Ahora veamos qué sucederá si elegimos el método como 'lasso_path'.


Explicar los modelos de PNL con LIME
Imagen del autor

 

Mismo. ¿Correcto?

Pero quizás te interese profundizar en este proceso de selección. No te preocupes, lo haré fácil.

Utiliza el concepto de Regresión de ángulo mínimo para seleccionar las características principales.

Veamos qué sucederá si seleccionamos el método como 'highest_weights'.


Explicar los modelos de PNL con LIME
Imagen del autor

 

Aférrate. Estamos profundizando en el proceso de selección.

Así que ahora las características importantes que hemos seleccionado usando cualquiera de los métodos. Pero finalmente tendremos que ajustar un modelo lineal local para explicar la predicción realizada por el modelo de caja negra. Para eso Regresión de cresta se utiliza por defecto.

Veamos cómo se verán las salidas finalmente.

Si seleccionamos el método como automático,highest_weights y lasso_path respectivamente, la salida se verá así:


Explicar los modelos de PNL con LIME
Imagen del autor

 

Estos devuelven una tupla (intersección del modelo lineal local, índices de características importantes y sus coeficientes, valor R² del modelo lineal local, predicción local del modelo de explicación en la instancia original).

Si comparamos la imagen de arriba con


Explicar los modelos de PNL con LIME
Imagen del autor

 

entonces podemos decir que las probabilidades de predicción dadas en el panel más a la izquierda es la predicción local realizada por el modelo de explicación. Las características y los valores dados en el panel central son las características importantes y sus coeficientes.

NOTA: En cuanto a esta instancia de datos en particular, la cantidad de palabras (o características) es solo 6 y estamos seleccionando las 5 características más importantes, todos los métodos brindan el mismo conjunto de 5 características importantes. Pero puede que no suceda para oraciones más largas.

Si te gusta este artículo, haz clic en recomendar. Eso sería sorprendente.

Para obtener el código completo, visite mi GitHub repositorio. Para mis futuros blogs por favor sígueme en Etiqueta LinkedIn y Medio.

Conclusión

En este artículo, traté de explicar el resultado final de LIME para los datos de texto y cómo ocurre todo el proceso de explicación para el texto paso a paso. Se pueden hacer explicaciones similares para datos tabulares y de imagen. Por eso recomiendo encarecidamente pasar por así.

Referencias

  1. Repositorio de GitHub para LIME: https://github.com/marcotcr/lime
  2. Documentación sobre LARS: http://www.cse.iitm.ac.in/~vplab/courses/SLT/PDF/LAR_hastie_2018.pdf
  3. https://towardsdatascience.com/python-libraries-for-interpretable-machine-learning-c476a08ed2c7

 
 
Ayan Kundu es un científico de datos con más de 2 años de experiencia en el campo de la banca y las finanzas y también un aprendiz apasionado para ayudar a la comunidad tanto como sea posible. Sigue a Ayan en Etiqueta LinkedIn y Medio.

Fuente: https://www.kdnuggets.com/2022/01/explain-nlp-models-lime.html

punto_img

Información más reciente

punto_img