Evalml: Advertencia de característica de texto en la importación de evalml

Creado en 3 ago. 2020  ·  7Comentarios  ·  Fuente: alteryx/evalml

En cada cuaderno user_guide , RTD genera una advertencia siempre que se importa evalml primera vez:

Ejemplo

La causa de este problema es get_importable_subclasses inicializando cada componente.

bug

Comentario más útil

nlp-primitives 1.0 ya está disponible en pypi y tensorflow ya no es una dependencia requerida

Todos 7 comentarios

Repro

import evalml

Apila el seguimiento aquí .

Causa principal

  • get_importable_subclasses intenta inicializar cada componente
  • Esto se ejecuta en el momento de la importación porque usamos get_importable_subclasses para generar las listas estáticas de estimadores y componentes.
  • La característica de texto genera actualmente una advertencia si no se proporcionan nombres de columna de texto al constructor

Parece que deberíamos hacer todo lo posible para evitar generar advertencias en el momento de la importación.

Ideas para una solución

  1. Actualice las listas generadas por get_importable_subclasses para que se generen en tiempo de ejecución, no en tiempo de importación. Es decir, en utilidades de componentes
def _all_estimators():
    return get_importable_subclasses(Estimator, used_in_automl=False)
...
  1. Asegúrese de que ninguno de nuestros componentes genere advertencias si están construidos con argumentos predeterminados. Actualice TextFeaturizer para no generar esta advertencia en particular. Agregue la prueba unitaria para verificar que no haya advertencias.
  2. Actualice get_importable_subclasses para suprimir cualquier advertencia proveniente de la inicialización del componente

Sugiero que hagamos los puntos 1 y 2.

Cuando se fusionó # 1022, se eliminó la advertencia de tiempo de ejecución. Sin embargo, sigo viendo la siguiente advertencia:

2020-08-11 12:17:34,559 featuretools - WARNING Featuretools failed to load plugin nlp_primitives from library nlp_primitives. For a full stack trace, set logging to debug.

@dsherry Pondré el PR para hacer los puntos 1 y 2 como mencionaste anteriormente, pero @eccabay me ha informado que esta advertencia no viene de nuestra parte.

Después de discutir con @rwedge , parece haber dos soluciones a la advertencia de featuretools anterior:

  1. utilizar el solucionador de dependencias beta

  2. featuretools está en proceso de hacer que tensorflow sea opcional y se puede hacer antes del 8/12/2020

Sugiero que esperemos a que se publique la nueva función de herramientas y confirmemos si la advertencia sigue siendo un problema.

¡Gracias @jeremyliweishih ! Estoy de acuerdo en que la opción 2 aquí es la mejor para manejar la advertencia de featuretools.

Aparte de eso, tengo entendido que actualmente está trabajando en las opciones 1 y 2 de mi comentario de la semana pasada , ¿correcto? Creo que ambos cambios, particularmente el primero, agregarán valor aquí.

nlp-primitives 1.0 ya está disponible en pypi y tensorflow ya no es una dependencia requerida

Confirmado que la advertencia no aparece con la última versión de nlp-primitives . ¡Gracias @rwedge! Puedes consultar aquí .

Impresionante, gracias a ambos!

¿Fue útil esta página
0 / 5 - 0 calificaciones