Dabl: Aprendizaje Automático Automático con la Participación Humana

This ad is not shown to multipass and full ticket holders
JSNation US
JSNation US 2025
November 17 - 20, 2025
New York, US & Online
See JS stars in the US biggest planetarium
Learn More
In partnership with Focus Reactive
Upcoming event
JSNation US 2025
JSNation US 2025
November 17 - 20, 2025. New York, US & Online
Learn more
Bookmark
Rate this content

En muchas aplicaciones del mundo real, la calidad y curación de los datos y el conocimiento del dominio juegan un papel mucho más importante en la construcción de modelos exitosos que la creación de técnicas de procesamiento complejas y la optimización de hiperparámetros. Por lo tanto, una caja de herramientas de aprendizaje automático debe permitir a los usuarios comprender tanto los datos como el modelo, y no cargar al profesional con la selección de pasos de preprocesamiento y hiperparámetros. La biblioteca dabl es un primer paso en esta dirección. Proporciona rutinas de visualización automáticas y capacidades de inspección de modelos al tiempo que automatiza la selección de modelos.


dabl contiene tipos de gráficos que no están disponibles en las bibliotecas estándar de Python hasta ahora, así como algoritmos novedosos para seleccionar visualizaciones interesantes. Se utilizan heurísticas para seleccionar el preprocesamiento adecuado para el aprendizaje automático, mientras que se utilizan algoritmos de selección de cartera de vanguardia para una búsqueda eficiente de modelos e hiperparámetros.


dabl también proporciona un fácil acceso a herramientas de evaluación e inspección de modelos proporcionadas por scikit-learn.

This talk has been presented at ML conf EU 2020, check out the latest edition of this Tech Conference.

FAQ

El flujo de trabajo estándar de aprendizaje automático incluye la declaración del problema, recolección de datos, limpieza de datos, visualización, construcción de un modelo inicial de aprendizaje automático, evaluación del modelo fuera de línea y evaluación en línea dentro de la aplicación.

La iteración es importante porque después de cada paso del proceso, es posible que se necesite volver a pasos anteriores para realizar ajustes basados en los nuevos hallazgos, lo que ayuda a mejorar continuamente el modelo y adaptarlo más efectivamente a las necesidades específicas.

Andreas Muller menciona herramientas como Scikit Learn, pandas para manipulación de datos, y matplotlib y seaborn para la visualización.

Dabble.clean es una función que ayuda en la limpieza de datos, detecta tipos de características, valores faltantes, valores raros y categoriza variables como ordinales o categóricas, facilitando una preparación inicial de los datos.

Dabble.plot está diseñada para la visualización orientada al aprendizaje automático supervisado, analiza características y muestra gráficos de mosaico y gráficos de pares que informan sobre la relación entre características y el objetivo del análisis.

Dabble implementa un enfoque de aprendizaje automático automático que utiliza un portafolio de modelos preseleccionados, como gradient boosting, modelos lineales, bosques aleatorios y máquinas de vectores de soporte, y selecciona el mejor modelo mediante un método de reducción sucesiva.

Las funciones futuras para Dabble incluyen el soporte para diferentes tipos de características como series de tiempo y datos de texto, así como mejoras en su portafolio de clasificadores para hacerlo sensible al tiempo y potencialmente incluir construcción de modelos explicables.

Las soluciones automáticas a menudo son lentas, especialmente en conjuntos de datos pequeños, y tienden a producir modelos de caja negra que pueden limitar la comprensión profunda del problema y las características importantes del modelo.

Andreas Müller
Andreas Müller
35 min
02 Jul, 2021

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Esta charla presenta Dabble, una biblioteca que permite a los científicos de datos iterar rápidamente e incorporar la entrada humana en el proceso de aprendizaje automático. Dabble proporciona herramientas para cada paso del flujo de trabajo de aprendizaje automático, incluyendo la declaración del problema, limpieza de datos, visualización, construcción de modelos e interpretación de modelos. Utiliza gráficos de mosaico y gráficos de pares para analizar características categóricas y continuas. Dabble también implementa un enfoque de aprendizaje automático automático basado en cartera utilizando el método de eliminación sucesiva para encontrar el mejor modelo. Los objetivos futuros de Dabble incluyen el soporte de más tipos de características, mejorar la cartera y construir modelos explicables.

1. Introducción al Aprendizaje Automático Automático

Short description:

Hola y bienvenidos a mi charla sobre Aprendizaje Automático Automático con la intervención humana con DABL. Mi nombre es Andreas Muller y soy co-desarrollador de Scikit-learn y Ingeniero de Software Principal en Microsoft. El flujo de trabajo estándar de aprendizaje automático involucra la declaración del problema, la recolección de datos, la limpieza de datos, la visualización, la construcción de un modelo de aprendizaje automático inicial, la evaluación del modelo fuera de línea y en línea. En las aplicaciones, la recolección de datos y el análisis exploratorio de datos a menudo son más importantes que la construcción del modelo.

Hola y bienvenidos a mi charla sobre Aprendizaje Automático Automático con la intervención humana con DABL. Mi nombre es Andreas Muller y soy co-desarrollador de Scikit-learn y Ingeniero de Software Principal en Microsoft.

Entonces, permítanme comenzar esto con lo que considero como el flujo de trabajo estándar de aprendizaje automático. Comenzamos con una declaración del problema y luego, por lo general, la recolección de datos, la limpieza de datos, la visualización, la construcción de un modelo de aprendizaje automático inicial, la evaluación del modelo fuera de línea y luego la evaluación en línea dentro de su aplicación. Creo que estos son los pasos fundamentales de cualquier proceso de aprendizaje automático, y generalmente no es un proceso lineal. Lo dibujé aquí como un círculo, pero en realidad es más un grafo completamente conectado. Después de cada paso, es posible que deba volver a pasos anteriores. Entonces, después de la limpieza de datos, es posible que vea que necesita cambiar la recolección de datos. Después de la construcción del modelo, es posible que vea que necesita cambiar algo en la limpieza de datos, y así sucesivamente. Creo que todos estos pasos son realmente críticos. Entonces, en una comunidad de aprendizaje automático, realmente se enfoca mucho en la construcción del modelo, mientras que en las aplicaciones, esto puede no ser realmente la parte más importante, y cosas como la recolección de datos y el análisis exploratorio de datos pueden ser más importantes.

2. Introducción a Dabble

Short description:

Hoy en día, comenzar un flujo de trabajo de aprendizaje automático en Python a menudo implica el uso de Scikit Learn y pandas, o matplotlib y seaborn para la visualización. Sin embargo, estas herramientas requieren mucho trabajo y codificación explícita. Las herramientas automáticas de aprendizaje automático como AutoSK Learn y AutoGlue1 pueden ayudar con la construcción del modelo, pero a menudo llevan mucho tiempo y dan como resultado modelos de caja negra. Para abordar estas limitaciones, presento Dabble, una biblioteca que permite a los científicos de datos iterar rápidamente e incorporar la intervención humana en el proceso de aprendizaje automático.

Entonces, en estos días, si comienzas tu flujo de trabajo de aprendizaje automático en Python, es posible que uses algo como Scikit Learn y pandas, o matplotlib y seaborn para la visualización. Aquí estoy usando pandas y seaborn para hacer alguna visualización inicial en el conjunto de datos estándar de adultos, que es un conjunto de datos de clasificación utilizando el censo de adultos. Obtengo algunas visualizaciones que me muestran cómo se relaciona la edad con los ingresos, pero en realidad requiere que haga bastante trabajo y conozca bastante seaborn para hacerlo de esta manera. Si quiero hacerlo con matplotlib, sería mucho más código. De manera similar, si quiero construir un modelo de aprendizaje automático simple con Scikit Learn, aquí estoy construyendo un modelo de regresión logística, pero si quiero hacer esto, tengo que escribir mucho código para escalar los datos, para imputar valores faltantes, para hacer codificación one-hot para variables categóricas, y así sucesivamente, y luego ajustar el parámetro de regularización del modelo de regresión logística. Para mí, esto es realmente el `hola mundo` del aprendizaje automático, simplemente construir un modelo de regresión logística, pero Scikit Learn requiere que seas muy, muy explícito, lo cual tiene muchos beneficios, pero si estás comenzando con tu proyecto, es importante que puedas iterar muy rápidamente. Y una forma de hacer esto es con algunas de las herramientas automáticas de aprendizaje automático que existen en la actualidad, como AutoSK Learn, o más recientemente, AutoGlue1. Y luego hay varias otras soluciones comerciales, como H2O y DataRobot, y así sucesivamente. Entonces, nuevamente, diría que estas soluciones automáticas de aprendizaje automático se centran mucho en la construcción del modelo. Y eso tiene dos desventajas, en mi opinión, especialmente para el análisis y la exploración inicial, que son, en primer lugar, que suelen llevar mucho tiempo. Aquí estoy tomando un ejemplo del sitio web de AutoSK Learn en este conjunto de datos de juguete muy pequeño. Y puedes ver que esta configuración predeterminada se ejecuta durante una hora, te da una precisión muy alta, pero se ejecuta durante mucho tiempo, incluso en un conjunto de datos pequeño. Creo que si tienes que esperar tanto tiempo para obtener un resultado inicial, eso realmente interrumpe tu flujo de trabajo. Y realmente me encantan las cosas que están haciendo en AutoSK Learn y otras bibliotecas de auto ML. Pero el objetivo aquí es construir un modelo realmente bueno, dado el conjunto de datos que tienes. Sin embargo, en muchas aplicaciones, el conjunto de datos no es tan fijo y la iteración es mucho más importante que ajustar los hiperparámetros o seleccionar el modelo. La otra desventaja es que terminas con un modelo de caja negra. Y en muchas aplicaciones, eso realmente te impide comprender más sobre tu problema. Te impide comprender cuáles son las características importantes o cómo debería haber realizado el preprocesamiento de manera diferente o qué datos debería haber recopilado. Como alternativa a esto, presento Dabble, la biblioteca de análisis de datos de referencia, que está diseñada para ayudar a los científicos de datos a iterar rápidamente y realizar ciencia de datos de aprendizaje automático con la intervención humana.

3. Flujo de trabajo y herramientas

Short description:

La idea es proporcionar herramientas para cada paso del flujo de trabajo, incluyendo la declaración del problema, limpieza de datos, visualización, construcción de modelos e interpretación de modelos. Dabble.clean puede detectar tipos, valores faltantes, valores raros, variables ordinales versus variables categóricas, y más. Proporciona una forma rápida y sencilla de limpiar los datos, y también está el preprocesador EZ para un enfoque más formalizado. Para la visualización, la función de gráfico de puntos dobles está orientada al aprendizaje automático supervisado e identifica características informativas sobre el objetivo.

La idea es seguir este flujo de trabajo e intentar brindarte herramientas para facilitar cada uno de estos pasos. Por lo tanto, la declaración del problema es algo que tendrás que hacer tú mismo, al igual que la recolección de datos. Pero desde el lado de las herramientas, Dabble te proporciona Dabble.clean para realizar la limpieza de datos, Dabble.plot para la visualización, Dabble.anyclassifier para construir modelos y realizar aprendizaje automático automático, y Dabble.explain para la interpretación de modelos. En cuanto a la evaluación de la aplicación, lo siento, aún tendrás que pensar por ti mismo, ya que se trata de cómo tu modelo de aprendizaje automático se ajusta a tu entorno particular.

Cada una de estas no es un módulo, sino una función individual. Por lo tanto, tienes una función única que te proporcionará muchos gráficos, o tienes una función única que realizará una limpieza inicial. Ninguna de estas será perfecta, pero cada una te dará un punto de partida muy bueno desde el cual puedes iterar más rápidamente y enfocarte en las partes que son realmente críticas para tu aplicación. Comencemos con la limpieza y el preprocesamiento.

Dabble.clean puede detectar tipos de características, valores faltantes, valores raros y variables ordinales versus variables categóricas. Todo esto se hace principalmente utilizando heurísticas, por lo que detecta características casi constantes y características de índice. Para las características que deseas utilizar, descubre cómo usarlas y cómo preprocesarlas, y para las otras características, descubre si deseas descartarlas, como un índice o un identificador único. Por lo general, no deseas incluir un modelo de aprendizaje automático. Quiero mencionar rápidamente un artículo que descubrí esta semana, que es el mldata prep zoo hacia la preparación de datos semiautomática para el aprendizaje automático de Shah y Kumar. En realidad, tienen una jerarquía muy interesante de los diferentes tipos de características y lo que debes hacer en la preparación de datos. Mi trabajo en Dabble crea algo similar, pero ellos tienen una taxonomía y un marco muy buenos para pensar en esta preparación de datos. Aquí tienes un ejemplo. Te doy el conjunto de datos de viviendas AIMS, que es un conjunto de datos de regresión con, como puedes ver, 82 columnas. Si llamas a devil.clean en él, te dará un marco de datos limpio que elimina las columnas innecesarias o los identificadores únicos e identifica qué es continuo y qué es categórico. Por lo tanto, la función clean es realmente una forma rápida y sencilla. Si deseas hacer esto de manera más formalizada en un flujo de trabajo de validación cruzada de scikit-learn, por ejemplo, hay un envoltorio llamado el preprocesador EZ. El preprocesador EZ es básicamente un transformador de scikit-learn que combina un transformador de columnas personalizado que incluye todo el preprocesamiento que necesitas. Por lo tanto, si hay valores faltantes, se incluirá la imputación. Si hay variables categóricas, se incluirá el codificador 100. Y se encarga de otros casos difíciles. Por lo tanto, puedes usar clean y obtener un marco de datos limpio o, si deseas tener cuidado en tu validación cruzada, puedes usar el preprocesador EZ y luego tener un control total sobre la construcción de tu modelo utilizando cualquier modelo de scikit-learn que desees. Para la visualización, está la función de gráfico de puntos dobles, que está realmente orientada al aprendizaje automático supervisado. Por lo tanto, hacia la clasificación y la regresión, y le proporcionas un marco de datos junto con una columna objetivo. Esto puede ser una columna dentro del marco de datos. Por ejemplo, aquí data tiene una columna llamada income y se usará income como la columna objetivo, o puedes proporcionarle una serie separada como en el estilo X e Y de scikit-learn. Luego, analizará las características y descubrirá qué características son más informativas sobre el objetivo.

4. Análisis de características categóricas y continuas

Short description:

Utilizando el conjunto de datos de adultos, analizo las características categóricas y continuas utilizando gráficos de mosaico y gráficos de pares. Estos gráficos proporcionan información sobre el tamaño y el equilibrio de las categorías, así como su influencia en la variable objetivo.

Aquí estoy utilizando el conjunto de datos de adultos y se identifican varias características categóricas y se muestran en un gráfico de mosaico las características categóricas más importantes. A continuación, en el lado derecho, puedes ver un gráfico de pares de algunas de las características continuas que se encontraron importantes. Me gustan mucho estos gráficos de mosaico porque te muestran tanto el tamaño de cada una de las categorías. Por ejemplo, aquí en la parte inferior izquierda, puedes ver que este conjunto de datos contiene más hombres que mujeres y también puedes ver que la fracción de naranja, que es el nivel de ingresos más alto, es aproximadamente el doble de tamaño en los hombres que en las mujeres. Por lo tanto, puedes ver tanto el equilibrio entre las categorías como también cómo las categorías influyen en el objetivo.

5. Selección de características y construcción de modelos

Short description:

Para conjuntos de datos de menor dimensionalidad, Dabble utiliza gráficos de pares. Selecciona interacciones de características informativas utilizando una versión de aprendizaje supervisado de Scacnomics. El análisis discriminante lineal es una herramienta subutilizada para la reducción de dimensionalidad y visualización. El clasificador simple permite prototipos rápidos con varios modelos. Dabble también implementa un enfoque de aprendizaje automático automático basado en cartera utilizando el método de reducción sucesiva para encontrar el mejor modelo de un conjunto diverso de modelos preseleccionados.

Para conjuntos de datos de menor dimensionalidad, simplemente se realiza un gráfico de pares. Por lo tanto, el conjunto de datos de adultos solo tenía dos variables continuas que se mostraron. Para conjuntos de datos de alta dimensionalidad, esto generalmente no es factible, por lo que Dabble selecciona características informativas.

En particular, selecciona interacciones informativas. Utiliza una versión de aprendizaje supervisado de Scacnomics para determinar qué gráficos son interesantes mediante el uso de árboles relativamente poco profundos en subconjuntos bidimensionales. Aquí se determinaron las interacciones de características interesantes en un conjunto de datos que tiene alrededor de 100 características. Esto puede ser mucho más informativo que simplemente observar las características más importantes univariadas y te muestra cómo separar mejor las clases en 2D. Luego, se aplica el mismo enfoque al análisis de componentes principales y al análisis discriminante lineal. Me gusta mucho el análisis discriminante lineal para la reducción de dimensionalidad y la visualización para la clasificación. Creo que es una herramienta muy subutilizada. La gente tiende a recurrir rápidamente a t-SNE y UMAP, pero generalmente encuentro que es más difícil de interpretar, mientras que el análisis discriminante lineal a menudo produce resultados muy buenos. Luego, hay un clasificador simple.

El clasificador simple es realmente para prototipos rápidos. Ejecuta muchos modelos que son prácticamente instantáneos, como modelos ficticios, modelos de Bayes, modelos de árboles pequeños y modelos lineales rápidos. Luego registra una serie de métricas y te indica cuál es el mejor entre ellos. En el conjunto de datos Delta, por ejemplo, la regresión logística es la mejor y obtengo varias métricas. La idea aquí es permitirte iterar muy rápidamente. Después de ejecutar este modelo, que es prácticamente instantáneo o ejecutar todos estos modelos, puedes pasar a la interpretación, ver cuáles son las características importantes y si hay alguna fuga de datos, por ejemplo, o si algo parece incorrecto o si el modelo no captó algo que consideraba importante. Luego puedes volver a la limpieza y recopilación de datos. Si deseas construir un modelo más complejo, también tendrás una búsqueda automática de modelos. Dabble implementa un enfoque de aprendizaje automático automático basado en cartera. Básicamente, tiene almacenado un conjunto de modelos diversos con buenos hiperparámetros. Hay muchos gradient boosting, pero también modelos lineales de bosques aleatorios y máquinas de vectores de soporte, y todos están clasificados. Estos modelos fueron seleccionados utilizando un conjunto de referencia amplio, el conjunto de datos de OpenML CC 18. Esta metodología se basa en el aprendizaje automático automático práctico para el desafío AutoML, que es un artículo de Feurer y Hutter de 2018. Esto es algo que también estamos implementando en Dabble. Luego, dado este conjunto de modelos, utilizamos el método de reducción sucesiva para encontrar el mejor candidato de este conjunto. Esto es mucho más rápido que probar todos los modelos. La reducción sucesiva es una alternativa rápida a la búsqueda en cuadrícula, básicamente cuando entrenas tus modelos en tamaños cada vez más grandes del conjunto de datos. Tomamos todo nuestro conjunto de modelos, lo entrenamos en una pequeña fracción del conjunto de datos, luego seleccionamos la mejor mitad o el mejor tercio de todos los modelos y descartamos los demás, y luego volvemos a entrenar utilizando más datos.

6. Explicación del modelo y objetivos futuros

Short description:

Eliminar los peores modelos y seleccionar del portafolio. Las herramientas de explicación del modelo incluyen informe de clasificación, matriz de confusión, curva de precisión-recuperación, importancia de características, importancia de permutación y gráficos de dependencia parcial. Los objetivos futuros incluyen admitir más tipos de características, mejorar el portafolio con sensibilidad al tiempo, compresión de modelos y construcción de modelos explicables. Las máquinas de refuerzo explicables son una adición potencial a Scikit-Learn.

Y así eliminamos los peores modelos y básicamente podemos seleccionar el modelo de nuestro portafolio en tamaño que es comparable a entrenar un solo modelo. Mostramos que este enfoque de portafolio es realmente efectivo. Hicimos esto para clasificadores individuales en nuestro artículo de aprendizaje de múltiples valores predeterminados. Y luego, como dije, hacer esto en todos los clasificadores se hizo en el NML automático práctico de Fiverr. Finalmente, también tenemos alguna explicación del modelo. Estas son herramientas relativamente básicas que están principalmente dentro de Scikit-Learn, pero están empaquetadas de una manera que las hace realmente fáciles de usar. Entonces, después de ajustar cualquier clasificador, simplemente puedes llamar a eso para explicar opcionalmente con un conjunto de prueba o un conjunto de validación. Y luego te dará métricas. Informe de clasificación, matriz de confusión aquí. Esto es en un conjunto de datos de clasificación de 10 clases. Curva de precisión-recuperación, que son todas las métricas estándar si quieres ver y luego algunas de las herramientas simples de depuración del modelo. Es como si hubiera un bosque aleatorio, obtendrás las importancias de características basadas en la impureza, que es la importancia de características de Sklearner. Estos suelen ser un poco engañosos. Entonces, para cualquier modelo, también calcularemos la importancia de permutación que se agregó a Sklearner un poco más recientemente. Entonces, la importancia de permutación te da una idea mucho mejor de cuáles son las características importantes en el conjunto de datos. Y luego hacemos gráficos de dependencia parcial. En scikit-learn, se aceleran para modelos basados en árboles, pero también podemos hacerlos a la fuerza bruta para cualquier tipo de modelo. Y obtienes todo esto simplemente llamando a la función de explicación. Entonces, algunos de los objetivos futuros para Dabble son admitir diferentes tipos de características, como series de tiempo y datos de texto. En este momento, se enfoca principalmente en características categóricas, ordinales y continuas. Y también queremos mejorar nuestro portafolio. En este momento, tenemos un portafolio de 100 clasificadores que están clasificados y que buscamos con reducción sucesiva, pero queremos que sean sensibles al tiempo. Entonces, queremos priorizar los clasificadores que son más rápidos de evaluar para gastar menos tiempo y dar comentarios más rápidamente. Otra cosa que realmente queremos incluir es la compresión de modelos y la construcción de modelos explicables. En lugar de construir modelos que sean una caja negra, como los modelos de refuerzo de gradiente y luego tratar de explicarlos con gráficos de dependencia parcial, idealmente podríamos intentar construir modelos que sean interpretables por sí mismos, ya sea comprimiendo un buen modelo existente o simplemente usando modelos explicables para comenzar. Mi favorito, que espero incluir pronto y que podríamos incluir en Scikit-Learn en este momento, son las máquinas de refuerzo explicables, que básicamente son un modelo aditivo basado en el refuerzo de gradiente y debido a que es un modelo aditivo, básicamente puedes ver toda la función simplemente mirando los gráficos univariados, lo cual es bastante agradable. Eso es todo por mi parte hasta ahora. Avísame si tienes alguna pregunta en la sesión de preguntas y respuestas. Además, si eres nuevo en el aprendizaje automático, echa un vistazo a mi libro que escribí con Sara Guido, Introducción al aprendizaje automático con Python, y puedes instalar Dabble con pip install dabble y la documentación está en dabble.github.io.

7. Estado del proyecto y enfoque

Short description:

El proyecto todavía se encuentra en una fase temprana, con aproximadamente dos años de antigüedad. Se agradecen los comentarios y las contribuciones. Dabble se centra en la clasificación y regresión, proporcionando una forma rápida de abordar estos casos de uso comunes. Envuelve a scikit-learn para facilitar su uso. Actualmente, Dabble no admite el aprendizaje activo, el aprendizaje semi-supervisado ni el aprendizaje auto-supervisado. Se basa únicamente en scikit-learn. Se utilizó Light GBM al principio.

Y así, el proyecto todavía se encuentra en una fase temprana. Quiero decir, creo que ahora tiene aproximadamente dos años, pero definitivamente todavía está en sus primeros días. Así que si tienes algún comentario sobre el proyecto, no dudes en comunicarte si quieres contribuir. Eso es muy bienvenido y espero tener noticias tuyas. Gracias.

Hola, Andreas. ¿Cómo estás hoy? Bien. Bien. Estoy bien. ¿Y tú? Estoy espléndido. ¿Te estás uniendo a nosotros desde aquí en los Estados Unidos, verdad? Yo también estoy aquí. Sí, acabo de mudarme a California desde Nueva York. Oh, genial. Bueno, bienvenido a un clima mejor. Bienvenido a un clima mejor. Entonces, una de las principales motivaciones, para ser honesto, perfecto. Muy bien. Bueno, en realidad tenemos algunas preguntas bastante sorprendentes para ti hoy y empecemos con eso. De acuerdo, así que aquí hay una pregunta del público. ¿Dabble admite el aprendizaje activo, el aprendizaje semi-supervisado o el aprendizaje auto-supervisado? Hasta ahora, solo me estoy centrando en la clasificación y la regresión porque son realmente la mayoría de los casos de uso y se trata más de darte una forma rápida de abordar estos casos de uso comunes. Y estos, creo, déjame ver la pregunta. Creo que ninguno de estos está construido sobre scikit-learn. En realidad, ninguno de estos es realmente compatible con scikit-learn en este momento. Entonces, Dabble es más una envoltura alrededor de una interfaz más agradable para facilitar el uso de scikit-learn. Y así, no vamos a hacer ninguno de estos, bueno, scikit-learn tiene algo de aprendizaje semi-supervisado. Pero en realidad no se usa con tanta frecuencia. Así que rara vez recibimos solicitudes de características para eso. ¿Verdad? Entonces, se basa completamente en scikit-learn y en ningún otro módulo o paquete que hayas considerado al construir Dabble por ahora, ¿verdad? Solo para asegurarnos de que, bueno, es más fácil y más manejable usar scikit-learn. ¿Es correcto? Sí, y quiero decir, podría agregar algo más. Solía usar Light GBM al principio.

8. Default Model Recommendation

Short description:

Pero ahora tenemos HistGradientBoosting en scikit-learn, que es básicamente una re-implementación de Light GBM. Y eso es lo que estoy usando. ¿Hay un modelo predeterminado en Dabble que se recomiende usar independientemente de los datos?

Pero ahora tenemos HistGradientBoosting en scikit-learn, que es básicamente una re-implementación de Light GBM. Y eso es lo que estoy usando. ¿Cuál era nuevamente el predeterminado? Sé que tienes esta llamada genérica de clasificador en Dabble, ¿verdad? Y también sé que Dabble puede hacer muchas otras cosas además del aspecto del modelado, pero por curiosidad, ¿hay un modelo predeterminado que Dabble recomendaría usar independientemente de tus datos o crees que, no, necesitamos eso como un parámetro requerido para decir, okay, tal vez para este tipo de problema, un modelo de CatBoost sería bueno. O para este tipo de problema, tal vez algún bosque aleatorio u otro tipo de modelo sería bueno. ¿Hay algo así en Dabble? Entonces, hay dos modelos, uno es el clasificador simple que básicamente se ejecuta con los valores predeterminados que van muy, muy rápido, y luego el clasificador `any` es el que es un poco más complejo y realiza aprendizaje meta, pero no de la forma que describiste, en el aprendizaje meta generalmente intentas decidir en función del conjunto de datos o intentas aprender del pasado sobre qué tipo de conjuntos de datos funcionan bien con qué algoritmos y así, la forma en que lo describiste sería usando algo como meta características, como `oh, este conjunto de datos se ve así`.

9. Model Selection with Successive Halving

Short description:

Dabble utiliza un conjunto diverso de clasificadores y ejecuta successive halving para probar diferentes modelos en un subconjunto de datos. Selecciona modelos basados en su rendimiento en un pequeño subconjunto de datos, en lugar de utilizar una selección inteligente. Este enfoque se basa en la investigación de Matthias Freuer, Frank Hutter y otros, quienes encontraron difícil tomar buenas decisiones basadas en meta características. En cambio, Dabble se enfoca en el conjunto de datos en sí y determina qué modelos funcionan bien en él.

Entonces voy a usar este modelo double no lo hace. Lo que double hace en cambio es decir, oh, hemos analizado estos cien conjuntos de datos. Creo que en realidad fueron 80 y creamos este portafolio, este conjunto diverso de clasificadores y ahora estoy ejecutando successive halving en ellos. Así que va a probar varios clasificadores en un subconjunto de data que incluye random forest, gradient boosting support vector machines y logistic regression y ve cuáles de ellos funcionarán bien en un pequeño subconjunto de data. Así que no se realiza una selección inteligente del portafolio, el portafolio se fija utilizando meta aprendizaje de antemano. Pero luego las decisiones que tomas se hacen utilizando successive halving. Así que básicamente es una búsqueda muy rápida. Esto se basa en este artículo que mencioné de Matthias Freuer y Frank Hutter y otros que, porque en realidad, muchas personas encontraron que es bastante difícil tomar buenas decisiones basadas en meta características. Entonces, basado en cómo se ve el conjunto de datos, es mucho más fácil tomar buenas decisiones basadas en qué tipo de modelos funcionan bien, y simplemente estás probando varios modelos muy rápidamente y decides en base a eso.

10. Enfoque basado en datos y planes futuros

Short description:

Basado en el conjunto de datos, es más fácil tomar decisiones sobre los modelos. Dabble puede proporcionar estadísticas generales para la exploración. Sin embargo, el punto de partida no es impulsado por los datos. Actualmente, Dabble maneja principalmente datos tabulares y planea agregar soporte para datos de texto y series de tiempo en el futuro.

Entonces, basado en cómo se ve el conjunto de datos, es mucho más fácil tomar buenas decisiones basadas en qué tipo de modelos funcionan bien, y simplemente estás probando varios modelos muy rápidamente y decides en base a eso. Muy interesante.

Como seguimiento a eso, sé que por ahora estamos utilizando el aprendizaje meta para determinar básicamente qué tipo de modelado se puede hacer basado en lo que históricamente funciona en varios conjuntos de datos, como los 80 conjuntos de datos que mencionaste. ¿Es este el mismo tipo de lógica que también usarías para determinar qué tipo de gráficos o visualizaciones le interesarían a un usuario? Sería increíble.

El problema es que, por ahora, es en cierto sentido, muchas heurísticas, porque realmente lo que querrías es utilizar los experimentos, pero también lo que querrías es experimentos guiados por el usuario, y esto es realmente difícil de hacer. Entonces, la pregunta es qué quieres aprender sobre el conjunto de datos. Idealmente, tendrías una pregunta específica que quieres responder o quieres ver qué visualizaciones ayudaron al usuario a determinar que hay un valor atípico importante o determinaron que se olvidaron de esto y aquello o determinaron. Y así, quieres encontrar visualizaciones que permitan al usuario responder preguntas rápidamente.

Y así, si quieres hacer un enfoque real basado en datos para esto, debes tener un conjunto de preguntas de referencia. Debes mostrar a los científicos de datos y medir qué tan bien responden a estas con las visualizaciones proporcionadas, y eso es realmente difícil. Es difícil crear las preguntas y luego obtener conjuntos de datos para que un científico de datos participe en tu experimento también es muy difícil. Me preguntaba sobre eso. Sí, porque dabble aún puede ayudarte a obtener estadísticas generales y luego, utilizando eso, podemos determinar el camino en el que podemos profundizar y explorar, ya sabes, qué parte queremos explorar más a fondo y en eso me encargaría de hacer un análisis exploratorio de datos dentro de esa vertical. Entonces, en cierto sentido, nos da un buen punto de partida, ¿dirías?

Sí, pero el punto de partida no es impulsado por los datos al tener cien científicos de datos que lo analicen. Es principalmente que yo lo analice y otros usuarios de dabble. De hecho, esta es la forma en que se crean muchas visualizaciones, es decir, un experto las analiza y dice que esta es una visualización útil. Y así la vamos a utilizar. Entendido. Sí. Tengo otra pregunta que viene de nuestra audiencia. De acuerdo. ¿Dabble maneja el procesamiento de datos de señales o sensores o series de tiempo como entrada? Principalmente se realiza para datos tabulares. Siento que los datos de sensores suelen estar en un formato de datos tabulares, pero no hay soporte para series de tiempo por ahora. Entonces, lo que espero agregar a continuación es el soporte para datos de texto y luego vendrán las series de tiempo. De hecho, actualmente estoy trabajando en algunas visualizaciones de series de tiempo en un proyecto en Microsoft y espero poder incorporarlas pronto a dabble, pero no tengo modelos para series de tiempo, pero sería realmente genial tenerlos. Si tienes algo que quieras, envíame una solicitud de extracción. Este es un proyecto de código abierto.

QnA

Contribuciones y Comparación con Modelos Estadísticos

Short description:

Así que, crezcan con todas sus contribuciones. Dabble se centra más en la predicción, mientras que los modelos estadísticos se centran más en la inferencia. Dabble no admite valores p, y tampoco hay valores p en scikit-learn. El manejo de datos de series de tiempo puede ser diferente, dependiendo de la tarea y el tipo de serie de tiempo. FB profit es una solución integral para series de tiempo, pero está ajustado para datos con periodicidad anual.

Entonces, crezcan con todas sus contribuciones. Así es. Sí, estoy seguro de que hay muchas personas incluso en la audiencia en este momento que tienen muchas ideas maravillosas. Podrían simplemente ir al repositorio principal de Dabble y enviar una solicitud de extracción. Si creen que una función les sería útil a ellos y a su propio espacio de trabajo, puede que también sea útil para toda la comunidad, ¿verdad?

De acuerdo, pasando a otra pregunta, veamos. Creo que ya hice esa pregunta. Muy bien. Entonces, ¿cómo compararías realmente Dabble con los modelos estadísticos? ¿Dirías que? Bueno, es obvio que tal vez Dabble está haciendo mucho más en general, pero ¿dirías que tiene como objetivo ser más bien un superconjunto de modelos estadísticos? ¿O dirías que en el futuro incluso podríamos reemplazar los modelos estadísticos para cosas preliminares como el EDA cuando se determinan las características. Creo que son en su mayoría ortogonales porque los modelos estadísticos realmente te permiten hacer inferencias estadísticas. Y por lo tanto, si comparas esto con un modelo estadístico y scikit-learn, el modelo estadístico se centra realmente en la inferencia, mientras que scikit-learn se centra en la predicción. Y así, scikit-learn se trata de generalizar bien para probar, de esa manera el modelo estadístico se trata de probar una hipótesis y estos son conjuntos de problemas realmente diferentes y Dabble se construyó principalmente sobre scikit-learn y se centra realmente en la predicción. Entonces, el objetivo es hacer buenas predicciones en el conjunto de prueba asumiendo los datos SI ID pero los modelos estadísticos y sí, eso es más, se centra más en la inferencia. Entonces, si usas modelos estadísticos para el EDA y no para la inferencia, entonces tal vez pueda reemplazar algunas de estas partes, pero no hay valores p en Dabble y no tengo la intención de agregar valores p a Dabble. Tampoco hay realmente valores p en scikit-learn. Sí. Sí. También me he dado cuenta de eso.

Entonces, volviendo al punto de que actualmente Dabble no admite el componente secuencial, la información secuencial de las series de tiempo. ¿Qué exactamente es tal vez en la parte frontal del modelado puedo ver que es muy diferente, ¿verdad? El manejo de datos de series de tiempo puede ser bastante diferente, especialmente cuando se utilizan técnicas tradicionales de series de tiempo como ARIMA. Pero, ¿qué pasa desde una perspectiva de visualización de datos? No creo que sea demasiado difícil visualizar datos que no están en ese formato secuencial en comparación con datos que sí están en ese formato secuencial, o ¿me estoy perdiendo algo aquí? Entonces, realmente hay muchos tipos diferentes de datos de series de tiempo. La pregunta es si estás mirando una sola serie de tiempo o si estás mirando series de tiempo de longitud fija que están etiquetadas, como si quisieras clasificar series de tiempo o si quieres clasificar cada punto en una serie de tiempo. ¿Tienes múltiples series de tiempo de diferentes longitudes? ¿Tienes una serie de tiempo lineal donde tienes el mismo paso de tiempo pero diferentes características, como varios precios de acciones diferentes a lo largo del tiempo? ¿Están equiespaciados o tienes algo como lo que se llama proceso puntual en estadísticas donde tienes una marca de tiempo única con eventos? Y así, incluso la tarea es muy diferente para estos tipos de conjuntos de series de tiempo. Creo que lo más común es probablemente que tengas una serie de tiempo donde tengas marcas de tiempo equiespaciadas. Tienes algunas características y luego quieres hacer regresión para cada punto de tiempo. Y hacer algo para esto sería bastante sencillo, supongo depende un poco de lo que estés mirando. Ya hay algunas cosas interesantes en esta área. Por ejemplo, como FB profit trata de ser una especie de solución integral para series de tiempo. Está ajustado explícitamente para cosas que tienen una periodicidad anual. Así que no tiene cosas como días festivos, que son muy importantes para datos de ventas y así sucesivamente. Sí, pero el único problema con usar algo como profit es que, supongo, es un enfoque tradicional de series de tiempo donde no estoy seguro si se pueden utilizar ciertas variables no exóticas que también varían con el tiempo como una especie de característica.

Limitaciones de usar variables variables de series de tiempo

Short description:

Si desea hacer pronósticos de pedidos en el futuro, solo puede utilizar una serie de pronósticos de pedidos en el pasado. Sin embargo, no puede utilizar otras variables variables de series de tiempo como entrada para profit. El caso que intentaría abordar primero es una serie de tiempo multivariable donde desea hacer una regresión en cada paso.

Entonces, si desea hacer pronósticos de pedidos en el futuro, no podría solo puede utilizar una serie de pronósticos de pedidos en el pasado, pero no podría realmente utilizar otras variables variables de series de tiempo como una entrada para profit, ¿verdad? Entonces, lo sé, sí. No estoy familiarizado con eso, si ese es el caso, y eso es un poco, eso es ciertamente limitante. Entonces, supongo que el caso que probablemente intentaría abordar primero es cuando tiene una serie de tiempo multivariable y desea hacer una regresión en cada paso. Entonces eso es como una cosa estándar de pronóstico. Definitivamente, sí, sí, definitivamente veo que sería útil allí. Creo que en este momento, sin embargo, déjame ver si puedo desplazarme para ver algunas preguntas aquí. De acuerdo, entonces esto está relacionado nuevamente con el mismo tipo de tema. Entonces aquí hay una pregunta de la audiencia en la que están preguntando acerca de qué pasa si qué pasa si incluimos el etiquetado pseudo, como nuevamente, creo que se remonta a la charla de aprendizaje semi-supervisado en scikit-learn o dabble, pero ¿tienes alguna idea al respecto? En realidad, no estoy seguro de qué se entiende por etiquetado pseudo. Sí. Tampoco estoy seguro al 100%. Supongo que si puedo hacer clic en el enlace. Sí. De cualquier manera, si alguien pudiera aclarar eso o si pudieran comunicarse contigo en las salas de oradores eso también estaría bien. Entonces está bien. Parece ser una forma de etiquetado propio de datos no supervisados o algo así como autoentrenamiento. Sí, pero supongo que como no está muy integrado en scikit-learn en sí. Dijiste que no sería algo que considerarías en dabble en este momento, ¿verdad? Sí, y en particular, la razón por la que no está en scikit-learn a menudo. Bueno, hay dos razones, a) creemos que está fuera de alcance y tenemos mucho que hacer. Ese es el caso de las series de tiempo. Pero hay una razón por la que aún podría ser bueno para dabble o b) no hay tanta demanda. Realmente no hay tanta demanda de aprendizaje semi-supervisado. Puede ser porque las personas tal vez es como un ciclo porque las personas no lo están haciendo porque no está fácilmente disponible. Y así no hay tanta demanda, pero generalmente si algo funciona muy, muy bien, es realmente aplicable en la práctica, entonces las personas suelen seguir preguntando por eso y luego lo agregaremos en algún momento. Pero para el aprendizaje semi-supervisado, realmente las personas no parecían estar muy emocionadas al respecto. Eso es diferente de las cosas de transferencia de aprendizaje en redes neuronales profundas porque obviamente funciona increíblemente bien, pero creo que las personas no han visto grandes beneficios al hacer este tipo de aprendizaje semi-supervisado en conjuntos de datos de tableau. Sí, bueno, creo que en este momento estamos a punto de terminar las preguntas y respuestas. Entonces, si en la audiencia no has tenido la oportunidad de hacer tu pregunta a Andreas, él estará disponible en su sala de oradores justo después de que nos deje ahora mismo. Y así puedes tener discusiones individuales con él. Y con eso, supongo que nos veremos pronto Andreas. Cuídate. Sí, cuídate.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
ML conf EU 2020ML conf EU 2020
41 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
TensorFlow.js enables machine learning in the browser and beyond, with features like face mesh, body segmentation, and pose estimation. It offers JavaScript prototyping and transfer learning capabilities, as well as the ability to recognize custom objects using the Image Project feature. TensorFlow.js can be used with Cloud AutoML for training custom vision models and provides performance benefits in both JavaScript and Python development. It offers interactivity, reach, scale, and performance, and encourages community engagement and collaboration between the JavaScript and machine learning communities.
Transformers.js: Machine Learning de Última Generación para la Web
JSNation 2025JSNation 2025
27 min
Transformers.js: Machine Learning de Última Generación para la Web
Joshua introduces Transformers JS and Hugging Face, emphasizing community collaboration and pre-trained models. Transformers JS evolution led to 1.4 million monthly users, supporting 155 architectures. The library's browser-based capabilities offer real-time processing, cost-efficiency, and scalability. Integration enhancements include native web GPU execution and React Native implementation. Web ML implementation focuses on Onyx Runtime for device execution and web GPU for resource optimization. Browser-based ML applications cover vision, speech recognition, and text-to-speech. Advanced implementations include multimodal applications and educational tools. Interactive AI demonstrations showcase semantic search and conversational AI scenarios. Model licensing transitions to ECMAScript for efficiency and model redownloading factors are discussed.
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
React Advanced 2021React Advanced 2021
21 min
Uso de MediaPipe para Crear Aplicaciones de Aprendizaje Automático Multiplataforma con React
Top Content
MediaPipe is a cross-platform framework that helps build perception pipelines using machine learning models. It offers ready-to-use solutions for various applications, such as selfie segmentation, face mesh, object detection, hand tracking, and more. MediaPipe can be integrated with React using NPM modules provided by the MediaPipe team. The demonstration showcases the implementation of face mesh and selfie segmentation solutions. MediaPipe enables the creation of amazing applications without needing to understand the underlying computer vision or machine learning processes.
Observabilidad con diagnostics_channel y AsyncLocalStorage
Node Congress 2023Node Congress 2023
21 min
Observabilidad con diagnostics_channel y AsyncLocalStorage
Observability with Diagnostics Channel and async local storage allows for high-performance event tracking and propagation of values through calls, callbacks, and promise continuations. Tracing involves five events and separate channels for each event, capturing errors and return values. The span object in async local storage stores data about the current execution and is reported to the tracer when the end is triggered.
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JSNation Live 2021JSNation Live 2021
39 min
TensorFlow.js 101: Aprendizaje automático en el navegador y más allá
JavaScript with TensorFlow.js allows for machine learning in various environments, enabling the creation of applications like augmented reality and sentiment analysis. TensorFlow.js offers pre-trained models for object detection, body segmentation, and face landmark detection. It also allows for 3D rendering and the combination of machine learning with WebGL. The integration of WebRTC and WebXR enables teleportation and enhanced communication. TensorFlow.js supports transfer learning through Teachable Machine and Cloud AutoML, and provides flexibility and performance benefits in the browser and Node.js environments.

Workshops on related topic

¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
C3 Dev Festival 2024C3 Dev Festival 2024
48 min
¿Pueden los LLM aprender? Personalicemos un LLM para chatear con tus propios datos
WorkshopFree
Andreia Ocanoaia
Andreia Ocanoaia
Sientes las limitaciones de los LLMs? Pueden ser creativos, pero a veces carecen de precisión o se basan en información desactualizada. En esta masterclass, desglosaremos el proceso de construir y desplegar fácilmente un sistema de Generación con Recuperación Mejorada. Este enfoque te permite aprovechar el poder de los LLMs con el beneficio adicional de precisión factual e información actualizada.
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
JSNation 2024JSNation 2024
108 min
Aprovechando LLMs para Construir Experiencias de IA Intuitivas con JavaScript
Workshop
Roy Derks
Shivay Lamba
2 authors
Hoy en día, todos los desarrolladores están utilizando LLMs en diferentes formas y variantes, desde ChatGPT hasta asistentes de código como GitHub CoPilot. Siguiendo esto, muchos productos han introducido capacidades de IA integradas, y en este masterclass haremos que los LLMs sean comprensibles para los desarrolladores web. Y nos adentraremos en la codificación de tu propia aplicación impulsada por IA. No se necesita experiencia previa en trabajar con LLMs o aprendizaje automático. En su lugar, utilizaremos tecnologías web como JavaScript, React que ya conoces y amas, al mismo tiempo que aprendemos sobre algunas nuevas bibliotecas como OpenAI, Transformers.js
Deja que la IA sea tu Documentación
JSNation 2024JSNation 2024
69 min
Deja que la IA sea tu Documentación
Workshop
Jesse Hall
Jesse Hall
Únete a nuestro masterclass dinámico para crear un portal de documentación impulsado por IA. Aprende a integrar ChatGPT de OpenAI con Next.js 14, Tailwind CSS y tecnología de vanguardia para ofrecer soluciones de código e resúmenes instantáneos. Esta sesión práctica te equipará con el conocimiento para revolucionar la forma en que los usuarios interactúan con la documentación, convirtiendo las búsquedas tediosas en descubrimientos eficientes e inteligentes.
Aspectos destacados:
- Experiencia práctica en la creación de un sitio de documentación impulsado por IA.- Comprensión de la integración de la IA en las experiencias de usuario.- Habilidades prácticas con las últimas tecnologías de desarrollo web.- Estrategias para implementar y mantener recursos de documentación inteligente.
Tabla de contenidos:- Introducción a la IA en la documentación- Configuración del entorno- Construcción de la estructura de documentación- Integración de ChatGPT para documentación interactiva
Prácticas con TensorFlow.js
ML conf EU 2020ML conf EU 2020
160 min
Prácticas con TensorFlow.js
Workshop
Jason Mayes
Jason Mayes
Ven y descubre nuestro masterclass que te guiará a través de 3 recorridos comunes al usar TensorFlow.js. Comenzaremos demostrando cómo usar uno de nuestros modelos predefinidos, clases de JS muy fáciles de usar para trabajar rápidamente con ML. Luego veremos cómo volver a entrenar uno de estos modelos en minutos utilizando el aprendizaje por transferencia en el navegador a través de Teachable Machine y cómo se puede usar en tu propio sitio web personalizado. Finalmente, terminaremos con un hola mundo escribiendo tu propio código de modelo desde cero para hacer una regresión lineal simple y predecir los precios ficticios de las casas en función de sus metros cuadrados.
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
ML conf EU 2020ML conf EU 2020
112 min
La Guía del Autoestopista de la Galaxia de Ingeniería de Aprendizaje Automático
Workshop
Alyona Galyeva
Alyona Galyeva
¿Eres un Ingeniero de Software al que se le asignó la tarea de implementar un modelo de aprendizaje automático o aprendizaje profundo por primera vez en tu vida? ¿Te preguntas qué pasos seguir y cómo se diferencia el software impulsado por IA del software tradicional? Entonces este es el masterclass adecuado al que asistir.
Internet ofrece miles de artículos y cursos gratuitos que muestran lo fácil que es entrenar e implementar un modelo de IA simple. Al mismo tiempo, en la realidad es difícil integrar un modelo real en la infraestructura actual, depurarlo, probarlo, implementarlo y monitorearlo correctamente. En este masterclass, te guiaré a través de este proceso compartiendo consejos, trucos y herramientas de código abierto favoritas que te facilitarán mucho la vida. Así que al final del masterclass, sabrás por dónde empezar tu viaje de implementación, qué herramientas utilizar y qué preguntas hacer.
Introducción al Aprendizaje Automático en la Nube
ML conf EU 2020ML conf EU 2020
146 min
Introducción al Aprendizaje Automático en la Nube
Workshop
Dmitry Soshnikov
Dmitry Soshnikov
Este masterclass será tanto una introducción suave al Aprendizaje Automático, como un ejercicio práctico de uso de la nube para entrenar modelos de aprendizaje automático simples y no tan simples. Comenzaremos utilizando ML Automático para entrenar el modelo para predecir la supervivencia en el Titanic, y luego pasaremos a tareas de aprendizaje automático más complejas como la optimización de hiperparámetros y la programación de series de experimentos en el clúster de cómputo. Finalmente, mostraré cómo Azure Machine Learning se puede utilizar para generar pinturas artificiales utilizando Redes Generativas Adversarias, y cómo entrenar un modelo de preguntas y respuestas de lenguaje en documentos de COVID para responder preguntas relacionadas con COVID.